Class: Klenod::Build::ModuleId
- Inherits:
-
Object
- Object
- Klenod::Build::ModuleId
- Defined in:
- lib/klenod/build/module_id.rb
Constant Summary collapse
- SCHEME_PATTERN =
/\A[A-Za-z][A-Za-z0-9+.-]*:/
Instance Attribute Summary collapse
-
#host ⇒ Object
readonly
Returns the value of attribute host.
-
#query ⇒ Object
readonly
Returns the value of attribute query.
-
#scheme ⇒ Object
readonly
Returns the value of attribute scheme.
-
#uri_path ⇒ Object
readonly
Returns the value of attribute uri_path.
Class Method Summary collapse
Instance Method Summary collapse
- #dirname ⇒ Object
- #eql?(other) ⇒ Boolean (also: #==)
- #extname ⇒ Object
- #hash ⇒ Object
-
#initialize(value, query = nil) ⇒ ModuleId
constructor
A new instance of ModuleId.
- #merge(specifier) ⇒ Object
- #path ⇒ Object
- #relative_path ⇒ Object (also: #bare_path)
- #to_s ⇒ Object
Constructor Details
#initialize(value, query = nil) ⇒ ModuleId
Returns a new instance of ModuleId.
14 15 16 17 18 19 20 21 22 |
# File 'lib/klenod/build/module_id.rb', line 14 def initialize(value, query = nil) @url = absolute_url_for(value.to_s) @url = @url.with(query: query) if query @scheme = @url.scheme.to_sym @host = @url. @uri_path = absolute_uri_path(@url.path) @query = @url.query end |
Instance Attribute Details
#host ⇒ Object (readonly)
Returns the value of attribute host.
24 25 26 |
# File 'lib/klenod/build/module_id.rb', line 24 def host @host end |
#query ⇒ Object (readonly)
Returns the value of attribute query.
24 25 26 |
# File 'lib/klenod/build/module_id.rb', line 24 def query @query end |
#scheme ⇒ Object (readonly)
Returns the value of attribute scheme.
24 25 26 |
# File 'lib/klenod/build/module_id.rb', line 24 def scheme @scheme end |
#uri_path ⇒ Object (readonly)
Returns the value of attribute uri_path.
24 25 26 |
# File 'lib/klenod/build/module_id.rb', line 24 def uri_path @uri_path end |
Class Method Details
.parse(value) ⇒ Object
10 11 12 |
# File 'lib/klenod/build/module_id.rb', line 10 def self.parse(value) new(value) end |
Instance Method Details
#dirname ⇒ Object
53 54 55 |
# File 'lib/klenod/build/module_id.rb', line 53 def dirname File.dirname(relative_path) end |
#eql?(other) ⇒ Boolean Also known as: ==
61 62 63 |
# File 'lib/klenod/build/module_id.rb', line 61 def eql?(other) other.is_a?(self.class) && to_s == other.to_s end |
#extname ⇒ Object
57 58 59 |
# File 'lib/klenod/build/module_id.rb', line 57 def extname File.extname(uri_path) end |
#hash ⇒ Object
66 67 68 |
# File 'lib/klenod/build/module_id.rb', line 66 def hash to_s.hash end |
#merge(specifier) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/klenod/build/module_id.rb', line 26 def merge(specifier) specifier = specifier.to_s return self.class.parse(specifier) if explicit_scheme?(specifier) self.class.parse((@url + Protocol::URL[specifier]).to_s) end |
#path ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/klenod/build/module_id.rb', line 37 def path case scheme when :app relative_path when :virtual "virtual:#{relative_path}" else host ? "#{scheme}://#{host}#{uri_path}" : "#{scheme}:#{relative_path}" end end |
#relative_path ⇒ Object Also known as: bare_path
48 49 50 |
# File 'lib/klenod/build/module_id.rb', line 48 def relative_path uri_path.delete_prefix("/") end |
#to_s ⇒ Object
33 34 35 |
# File 'lib/klenod/build/module_id.rb', line 33 def to_s @url.to_s end |