Your IP : 18.224.73.107
--- !ruby/object:RI::ClassDescription
attributes: []
class_methods:
- !ruby/object:RI::MethodSummary
name: getwd
- !ruby/object:RI::MethodSummary
name: glob
- !ruby/object:RI::MethodSummary
name: new
comment:
- !ruby/struct:SM::Flow::H
level: 2
text: Pathname
- !ruby/struct:SM::Flow::P
body: "Pathname represents a pathname which locates a file in a filesystem. The pathname depends on OS: Unix, Windows, etc. Pathname library works with pathnames of local OS. However non-Unix pathnames are supported experimentally."
- !ruby/struct:SM::Flow::P
body: It does not represent the file itself. A Pathname can be relative or absolute. It's not until you try to reference the file that it even matters whether the file exists or not.
- !ruby/struct:SM::Flow::P
body: Pathname is immutable. It has no method for destructive update.
- !ruby/struct:SM::Flow::P
body: The value of this class is to manipulate file path information in a neater way than standard Ruby provides. The examples below demonstrate the difference. <b>All</b> functionality from File, FileTest, and some from Dir and FileUtils is included, in an unsurprising way. It is essentially a facade for all of these, and more.
- !ruby/struct:SM::Flow::H
level: 2
text: Examples
- !ruby/struct:SM::Flow::H
level: 3
text: "Example 1: Using Pathname"
- !ruby/struct:SM::Flow::VERB
body: " require 'pathname'\n p = Pathname.new("/usr/bin/ruby")\n size = p.size # 27662\n isdir = p.directory? # false\n dir = p.dirname # Pathname:/usr/bin\n base = p.basename # Pathname:ruby\n dir, base = p.split # [Pathname:/usr/bin, Pathname:ruby]\n data = p.read\n p.open { |f| _ }\n p.each_line { |line| _ }\n"
- !ruby/struct:SM::Flow::H
level: 3
text: "Example 2: Using standard Ruby"
- !ruby/struct:SM::Flow::VERB
body: " p = "/usr/bin/ruby"\n size = File.size(p) # 27662\n isdir = File.directory?(p) # false\n dir = File.dirname(p) # "/usr/bin"\n base = File.basename(p) # "ruby"\n dir, base = File.split(p) # ["/usr/bin", "ruby"]\n data = File.read(p)\n File.open(p) { |f| _ }\n File.foreach(p) { |line| _ }\n"
- !ruby/struct:SM::Flow::H
level: 3
text: "Example 3: Special features"
- !ruby/struct:SM::Flow::VERB
body: " p1 = Pathname.new("/usr/lib") # Pathname:/usr/lib\n p2 = p1 + "ruby/1.8" # Pathname:/usr/lib/ruby/1.8\n p3 = p1.parent # Pathname:/usr\n p4 = p2.relative_path_from(p3) # Pathname:lib/ruby/1.8\n pwd = Pathname.pwd # Pathname:/home/gavin\n pwd.absolute? # true\n p5 = Pathname.new "." # Pathname:.\n p5 = p5 + "music/../articles" # Pathname:music/../articles\n p5.cleanpath # Pathname:articles\n p5.realpath # Pathname:/home/gavin/articles\n p5.children # [Pathname:/home/gavin/articles/linux, ...]\n"
- !ruby/struct:SM::Flow::H
level: 2
text: Breakdown of functionality
- !ruby/struct:SM::Flow::H
level: 3
text: Core methods
- !ruby/struct:SM::Flow::P
body: "These methods are effectively manipulating a String, because that's all a path is. Except for #mountpoint?, #children, and #realpath, they don't access the filesystem."
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: +
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#join"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#parent"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#root?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#absolute?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#relative?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#relative_path_from"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#each_filename"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#cleanpath"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#realpath"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#children"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#mountpoint?"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: File status predicate methods
- !ruby/struct:SM::Flow::P
body: "These methods are a facade for FileTest:"
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#blockdev?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#chardev?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#directory?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#executable?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#executable_real?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#exist?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#file?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#grpowned?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#owned?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#pipe?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#readable?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#world_readable?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#readable_real?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#setgid?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#setuid?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#size"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#size?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#socket?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#sticky?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#symlink?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#writable?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#world_writable?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#writable_real?"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#zero?"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: File property and manipulation methods
- !ruby/struct:SM::Flow::P
body: "These methods are a facade for File:"
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#atime"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#ctime"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#mtime"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#chmod(mode)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#lchmod(mode)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#chown(owner, group)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#lchown(owner, group)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#fnmatch(pattern, *args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#fnmatch?(pattern, *args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#ftype"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#make_link(old)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#open(*args, &block)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#readlink"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#rename(to)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#stat"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#lstat"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#make_symlink(old)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#truncate(length)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#utime(atime, mtime)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#basename(*args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#dirname"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#extname"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#expand_path(*args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#split"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: Directory methods
- !ruby/struct:SM::Flow::P
body: "These methods are a facade for Dir:"
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: Pathname.glob(*args)
- !ruby/struct:SM::Flow::LI
label: "-"
body: Pathname.getwd / Pathname.pwd
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#rmdir"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#entries"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#each_entry(&block)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#mkdir(*args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#opendir(*args)"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: IO
- !ruby/struct:SM::Flow::P
body: "These methods are a facade for IO:"
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#each_line(*args, &block)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#read(*args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#readlines(*args)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#sysopen(*args)"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: Utilities
- !ruby/struct:SM::Flow::P
body: "These methods are a mixture of Find, FileUtils, and others:"
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#find(&block)"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#mkpath"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#rmtree"
- !ruby/struct:SM::Flow::LI
label: "-"
body: "#unlink / #delete"
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 2
text: Method documentation
- !ruby/struct:SM::Flow::P
body: As the above section shows, most of the methods in Pathname are facades. The documentation for these methods generally just says, for instance, "See FileTest.writable?", as you should be familiar with the original method anyway, and its documentation (e.g. through <tt>ri</tt>) will contain more information. In some cases, a brief description will follow.
constants:
- !ruby/object:RI::Constant
comment:
name: SEPARATOR_PAT
value: /[#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}]/
- !ruby/object:RI::Constant
comment:
name: SEPARATOR_PAT
value: /#{Regexp.quote File::SEPARATOR}/
full_name: Pathname
includes: []
instance_methods:
- !ruby/object:RI::MethodSummary
name: +
- !ruby/object:RI::MethodSummary
name: <=>
- !ruby/object:RI::MethodSummary
name: ==
- !ruby/object:RI::MethodSummary
name: ===
- !ruby/object:RI::MethodSummary
name: TO_PATH
- !ruby/object:RI::MethodSummary
name: absolute?
- !ruby/object:RI::MethodSummary
name: add_trailing_separator
- !ruby/object:RI::MethodSummary
name: ascend
- !ruby/object:RI::MethodSummary
name: atime
- !ruby/object:RI::MethodSummary
name: basename
- !ruby/object:RI::MethodSummary
name: blockdev?
- !ruby/object:RI::MethodSummary
name: chardev?
- !ruby/object:RI::MethodSummary
name: chdir
- !ruby/object:RI::MethodSummary
name: children
- !ruby/object:RI::MethodSummary
name: chmod
- !ruby/object:RI::MethodSummary
name: chop_basename
- !ruby/object:RI::MethodSummary
name: chown
- !ruby/object:RI::MethodSummary
name: chroot
- !ruby/object:RI::MethodSummary
name: cleanpath
- !ruby/object:RI::MethodSummary
name: cleanpath_aggressive
- !ruby/object:RI::MethodSummary
name: cleanpath_conservative
- !ruby/object:RI::MethodSummary
name: ctime
- !ruby/object:RI::MethodSummary
name: del_trailing_separator
- !ruby/object:RI::MethodSummary
name: delete
- !ruby/object:RI::MethodSummary
name: descend
- !ruby/object:RI::MethodSummary
name: dir_foreach
- !ruby/object:RI::MethodSummary
name: directory?
- !ruby/object:RI::MethodSummary
name: dirname
- !ruby/object:RI::MethodSummary
name: each_entry
- !ruby/object:RI::MethodSummary
name: each_filename
- !ruby/object:RI::MethodSummary
name: each_line
- !ruby/object:RI::MethodSummary
name: entries
- !ruby/object:RI::MethodSummary
name: eql?
- !ruby/object:RI::MethodSummary
name: executable?
- !ruby/object:RI::MethodSummary
name: executable_real?
- !ruby/object:RI::MethodSummary
name: exist?
- !ruby/object:RI::MethodSummary
name: expand_path
- !ruby/object:RI::MethodSummary
name: extname
- !ruby/object:RI::MethodSummary
name: file?
- !ruby/object:RI::MethodSummary
name: find
- !ruby/object:RI::MethodSummary
name: fnmatch
- !ruby/object:RI::MethodSummary
name: fnmatch?
- !ruby/object:RI::MethodSummary
name: foreach
- !ruby/object:RI::MethodSummary
name: foreachline
- !ruby/object:RI::MethodSummary
name: freeze
- !ruby/object:RI::MethodSummary
name: ftype
- !ruby/object:RI::MethodSummary
name: grpowned?
- !ruby/object:RI::MethodSummary
name: has_trailing_separator?
- !ruby/object:RI::MethodSummary
name: join
- !ruby/object:RI::MethodSummary
name: lchmod
- !ruby/object:RI::MethodSummary
name: lchown
- !ruby/object:RI::MethodSummary
name: link
- !ruby/object:RI::MethodSummary
name: lstat
- !ruby/object:RI::MethodSummary
name: make_link
- !ruby/object:RI::MethodSummary
name: make_symlink
- !ruby/object:RI::MethodSummary
name: mkdir
- !ruby/object:RI::MethodSummary
name: mkpath
- !ruby/object:RI::MethodSummary
name: mountpoint?
- !ruby/object:RI::MethodSummary
name: mtime
- !ruby/object:RI::MethodSummary
name: open
- !ruby/object:RI::MethodSummary
name: opendir
- !ruby/object:RI::MethodSummary
name: owned?
- !ruby/object:RI::MethodSummary
name: parent
- !ruby/object:RI::MethodSummary
name: pipe?
- !ruby/object:RI::MethodSummary
name: plus
- !ruby/object:RI::MethodSummary
name: prepend_prefix
- !ruby/object:RI::MethodSummary
name: read
- !ruby/object:RI::MethodSummary
name: readable?
- !ruby/object:RI::MethodSummary
name: readable_real?
- !ruby/object:RI::MethodSummary
name: readlines
- !ruby/object:RI::MethodSummary
name: readlink
- !ruby/object:RI::MethodSummary
name: realpath
- !ruby/object:RI::MethodSummary
name: realpath_rec
- !ruby/object:RI::MethodSummary
name: relative?
- !ruby/object:RI::MethodSummary
name: relative_path_from
- !ruby/object:RI::MethodSummary
name: rename
- !ruby/object:RI::MethodSummary
name: rmdir
- !ruby/object:RI::MethodSummary
name: rmtree
- !ruby/object:RI::MethodSummary
name: root?
- !ruby/object:RI::MethodSummary
name: setgid?
- !ruby/object:RI::MethodSummary
name: setuid?
- !ruby/object:RI::MethodSummary
name: size
- !ruby/object:RI::MethodSummary
name: size?
- !ruby/object:RI::MethodSummary
name: socket?
- !ruby/object:RI::MethodSummary
name: split
- !ruby/object:RI::MethodSummary
name: split_names
- !ruby/object:RI::MethodSummary
name: stat
- !ruby/object:RI::MethodSummary
name: sticky?
- !ruby/object:RI::MethodSummary
name: sub
- !ruby/object:RI::MethodSummary
name: symlink
- !ruby/object:RI::MethodSummary
name: symlink?
- !ruby/object:RI::MethodSummary
name: sysopen
- !ruby/object:RI::MethodSummary
name: taint
- !ruby/object:RI::MethodSummary
name: to_s
- !ruby/object:RI::MethodSummary
name: truncate
- !ruby/object:RI::MethodSummary
name: unlink
- !ruby/object:RI::MethodSummary
name: untaint
- !ruby/object:RI::MethodSummary
name: utime
- !ruby/object:RI::MethodSummary
name: world_readable?
- !ruby/object:RI::MethodSummary
name: world_writable?
- !ruby/object:RI::MethodSummary
name: writable?
- !ruby/object:RI::MethodSummary
name: writable_real?
- !ruby/object:RI::MethodSummary
name: zero?
name: Pathname
superclass: Object