lib/ronin/path.rb in ronin-0.2.4 vs lib/ronin/path.rb in ronin-0.3.0
- old
+ new
@@ -1,9 +1,7 @@
#
-#--
-# Ronin - A Ruby platform designed for information security and data
-# exploration tasks.
+# Ronin - A Ruby platform for exploit development and security research.
#
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,52 +14,74 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#++
#
require 'pathname'
module Ronin
class Path < Pathname
#
- # Creates a new Path object with _n_ number of <tt>..</tt> directories.
+ # Creates a new path object for upward directory traversal.
#
+ # @param [Integer, Array, Range] n
+ # The number of directories to go up.
+ #
+ # @return [Path]
+ # The new path object.
+ #
+ # @example Generate a relative path that goes up 7 directories.
# Path.up(7)
# # => #<Ronin::Path:../../../../../../..>
#
+ # @example Generate multiple relative paths, going up 1 to 3 directories.
# Path.up(1..3)
- # # => [#<Ronin::Path:..>, #<Ronin::Path:../..>, #<Ronin::Path:../../..>]
+ # # => [#<Ronin::Path:..>, #<Ronin::Path:../..>,
+ # #<Ronin::Path:../../..>]
#
def self.up(n)
if n.kind_of?(Integer)
return self.new(File.join(['..'] * n))
else
return n.map { |i| self.up(i) }
end
end
#
- # Joins the _names_ with the path, but does not resolve the resulting
- # path.
+ # Joins directory names together with the path, but does not resolve
+ # the resulting path.
#
+ # @param [Array] names
+ # The names to join together.
+ #
+ # @return [Path]
+ # The joined path.
+ #
+ # @example
# Path.up(7).join('etc/passwd')
# # => #<Ronin::Path:../../../../../../../etc/passwd>
#
def join(*names)
names = names.map { |name| name.to_s }
return self.class.new(File.join(self,*names))
end
#
- # Joins _name_ with the path, but does not resolve the resulting path.
+ # Joins a directory name to the path, but does not resolve the resulting
+ # path.
#
+ # @param [String] name
+ # A directory name.
+ #
+ # @example
# Path.up(7) / 'etc' / 'passwd'
# # => #<Ronin::Path:../../../../../../../etc/passwd>
+ #
+ # @see join
#
def /(name)
join(name)
end