Class: Path::URI

Inherits:
Path show all
Defined in:
lib/epitools/path.rb

Overview

A wrapper for URI objects.

Constant Summary

Constants inherited from Path

AUTOGENERATED_CLASS_METHODS, BINARY_EXTENSION, COMPRESSORS, PATH_SEPARATOR

Instance Attribute Summary collapse

Attributes inherited from Path

#base, #dirs, #ext

Instance Method Summary collapse

Methods inherited from Path

#/, #<=>, #==, #=~, [], #[], #[]=, #append, #atime, #atime=, #attrs, #attrs=, #backup!, #backup_file, #broken_symlink?, cd, #cd, #child_of?, #chmod, #chmod_R, #chown, #chown_R, #cp, #cp_p, #cp_r, #ctime, #deflate, #dir, #dir=, #dir?, #each_chunk, #each_line, #endswith, escape, #executable?, #exists?, expand_path, #exts, #file?, #filename, #filename=, getfattr, glob, #grep, #gunzip!, #gzip!, #hash, #hidden?, home, #id3, #inflate, #initialize_copy, ln_s, #ln_s, ls, #ls, #ls_R, #ls_dirs, #ls_files, #ls_r, ls_r, #lstat, #magic, #md5, #mimetype, #mimetype_from_ext, #mode, #mtime, #mtime=, #mv, #mv!, #name, #numbered_backup!, #numbered_backup_file, #owner?, #parent, #parent_of?, #parse, #parse_lines, #path, #path=, popd, pushd, #puts, pwd, #read_bson, #read_csv, #read_html, #read_json, #read_marshal, #read_xml, #read_yaml, #readable?, #realpath, #relative, #relative?, #relative_to, #reload!, #rename, #rename!, #reset!, #rm, setfattr, #sha1, #sha2, #sha256, #siblings, #size, #sort_attrs, #startswith, #symlink?, #symlink_target, #symlink_to, tmpdir, tmpfile, #to_Path, #touch, #truncate, #type, #unmarshal, #update, #url?, which, #writable?, #write, #write_bson, #write_json, #write_marshal, #write_yaml, #zopen

Methods included from Enumerable

#*, #**, #average, #blank?, #combination, #counts, #cross_product, #foldl, #group_neighbours_by, #grouped_to_h, #groups, #map_recursively, #parallel_map, #permutation, #powerset, #reverse, #reverse_each, #rle, #rzip, #select_recursively, #skip, #sort_numerically, #split_after, #split_at, #split_before, #split_between, #sum, #to_iter, #uniq, #unzip

Constructor Details

#initialize(uri, hints = {}) ⇒ URI

TODO: only include certain methods from Path (delegate style)

(eg: remove commands that write)

1589
1590
1591
1592
# File 'lib/epitools/path.rb', line 1589

def initialize(uri, hints={})
  @uri = ::URI.parse(uri)
  self.path = @uri.path
end

Instance Attribute Details

#uriObject (readonly)

Returns the value of attribute uri


1583
1584
1585
# File 'lib/epitools/path.rb', line 1583

def uri
  @uri
end

Instance Method Details

#hostObject

…and this is: 'host.com'


1630
# File 'lib/epitools/path.rb', line 1630

def host; uri.host; end

#http?Boolean

`http?` checks for 'http' OR 'https' schemes


1623
1624
1625
# File 'lib/epitools/path.rb', line 1623

def http?
  super or https?
end

#inspectObject


1607
1608
1609
# File 'lib/epitools/path.rb', line 1607

def inspect
  "#<Path::URI:#{to_s}>"
end

#join(other) ⇒ Object


1648
1649
1650
# File 'lib/epitools/path.rb', line 1648

def join(other)
  Path.new URI.join(path, other).to_s
end

#open(mode = "r", &block) ⇒ Object Also known as: io

…and `path` is /path/filename.ext


1655
1656
1657
1658
1659
1660
1661
1662
# File 'lib/epitools/path.rb', line 1655

def open(mode="r", &block)
  require 'open-uri'
  if block_given?
    Kernel.open(to_s, mode, &block)
  else
    Kernel.open(to_s, mode)
  end
end

#portObject

…and this is: 80


1635
# File 'lib/epitools/path.rb', line 1635

def port; uri.port; end

#queryObject

…and this is: {param1: value1, param2: value2, …etc… }


1640
1641
1642
1643
1644
1645
1646
# File 'lib/epitools/path.rb', line 1640

def query
  if query = uri.query
    query.to_params
  else
    nil
  end
end

#read(*args) ⇒ Object


1666
1667
1668
# File 'lib/epitools/path.rb', line 1666

def read(*args)
  open { |io| io.read(*args) }
end

#schemeObject Also known as: protocol


1611
1612
1613
# File 'lib/epitools/path.rb', line 1611

def scheme
  uri.scheme
end

#to_sObject


1603
1604
1605
# File 'lib/epitools/path.rb', line 1603

def to_s
  uri.to_s
end

#uri?Boolean


1594
1595
1596
# File 'lib/epitools/path.rb', line 1594

def uri?
  true
end