Class: Lapidarius::Gem
- Inherits:
-
Object
- Object
- Lapidarius::Gem
- Extended by:
- Forwardable
- Defined in:
- lib/lapidarius/gem.rb
Defined Under Namespace
Classes: KindError, NotInstalledError
Instance Attribute Summary collapse
-
#deps ⇒ Object
readonly
Returns the value of attribute deps.
-
#dev_count ⇒ Object
Returns the value of attribute dev_count.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
- #<<(dep) ⇒ Object
- #==(gem) ⇒ Object
- #count ⇒ Object
-
#initialize(name:, version:, deps: []) ⇒ Gem
constructor
A new instance of Gem.
- #to_s ⇒ Object
Constructor Details
#initialize(name:, version:, deps: []) ⇒ Gem
Returns a new instance of Gem.
28 29 30 31 32 |
# File 'lib/lapidarius/gem.rb', line 28 def initialize(name:, version:, deps: []) @name = name @version = version @deps = deps end |
Instance Attribute Details
#deps ⇒ Object (readonly)
Returns the value of attribute deps.
25 26 27 |
# File 'lib/lapidarius/gem.rb', line 25 def deps @deps end |
#dev_count ⇒ Object
Returns the value of attribute dev_count.
26 27 28 |
# File 'lib/lapidarius/gem.rb', line 26 def dev_count @dev_count end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
25 26 27 |
# File 'lib/lapidarius/gem.rb', line 25 def name @name end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
25 26 27 |
# File 'lib/lapidarius/gem.rb', line 25 def version @version end |
Class Method Details
.factory(token) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/lapidarius/gem.rb', line 13 def self.factory(token) token.match(/^No gems found matching/) do |m| fail NotInstalledError, token end token.match(/Gem ([a-zA-Z0-9\-_]+)-(.+)/) do |m| return new(name: m[1], version: m[2]) end token.match(/([a-zA-Z0-9\-_]+) \(([0-9~<>=, \.]+)\)/) do |m| return new(name: m[1], version: m[2]) end end |
Instance Method Details
#<<(dep) ⇒ Object
34 35 36 37 |
# File 'lib/lapidarius/gem.rb', line 34 def <<(dep) fail KindError, "#{dep.inspect} is not a valid gem" unless gem?(dep) @deps << dep end |
#==(gem) ⇒ Object
39 40 41 42 |
# File 'lib/lapidarius/gem.rb', line 39 def ==(gem) return false unless gem?(gem) gem.name == name && gem.version == version end |
#count ⇒ Object
48 49 50 |
# File 'lib/lapidarius/gem.rb', line 48 def count flatten_deps.size end |
#to_s ⇒ Object
44 45 46 |
# File 'lib/lapidarius/gem.rb', line 44 def to_s "#{name} (#{version})" end |