Class: Path::URI

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

Overview

A wrapper for URI objects.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri, **hints) ⇒ URI

TODO: only include certain methods from Path (delegate style) (eg: remove commands that write)



1651
1652
1653
1654
# File 'lib/epitools/path.rb', line 1651

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

Instance Attribute Details

#uri ⇒ Object (readonly)

Returns the value of attribute uri.



1645
1646
1647
# File 'lib/epitools/path.rb', line 1645

def uri
  @uri
end

Instance Method Details

#host ⇒ Object

...and this is: 'host.com'



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

def host; uri.host; end

#http? ⇒ Boolean

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

Returns:

  • (Boolean)


1685
1686
1687
# File 'lib/epitools/path.rb', line 1685

def http?
  super or https?
end

#inspect ⇒ Object



1669
1670
1671
# File 'lib/epitools/path.rb', line 1669

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

#join(other) ⇒ Object



1710
1711
1712
# File 'lib/epitools/path.rb', line 1710

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



1717
1718
1719
1720
1721
1722
1723
1724
# File 'lib/epitools/path.rb', line 1717

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

#port ⇒ Object

...and this is: 80



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

def port; uri.port; end

#query ⇒ Object

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



1702
1703
1704
1705
1706
1707
1708
# File 'lib/epitools/path.rb', line 1702

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

#read(*args) ⇒ Object



1728
1729
1730
# File 'lib/epitools/path.rb', line 1728

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

#scheme ⇒ Object Also known as: protocol



1673
1674
1675
# File 'lib/epitools/path.rb', line 1673

def scheme
  uri.scheme
end

#to_path ⇒ Object



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

def to_path; to_s; end

#to_s ⇒ Object



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

def to_s; uri.to_s; end

#to_str ⇒ Object



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

def to_str; to_s; end

#uri? ⇒ Boolean

Returns:

  • (Boolean)


1656
1657
1658
# File 'lib/epitools/path.rb', line 1656

def uri?
  true
end