Class: Gemsmith::Gem::Requirement
- Inherits:
-
Object
- Object
- Gemsmith::Gem::Requirement
- Defined in:
- lib/gemsmith/gem/requirement.rb
Overview
Defines a gem requirement. This is a partial, cleaner implementation of the RubyGems ‘Gem::Requirement` object.
Instance Attribute Summary collapse
-
#operator ⇒ Object
readonly
Returns the value of attribute operator.
-
#raw_version ⇒ Object
readonly
Returns the value of attribute raw_version.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
-
#version_segments ⇒ Object
readonly
Returns the value of attribute version_segments.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(operator: ">=", raw_version: "0") ⇒ Requirement
constructor
A new instance of Requirement.
- #to_s ⇒ Object
Constructor Details
#initialize(operator: ">=", raw_version: "0") ⇒ Requirement
Returns a new instance of Requirement.
29 30 31 32 33 34 35 |
# File 'lib/gemsmith/gem/requirement.rb', line 29 def initialize operator: ">=", raw_version: "0" @operator = operator @raw_version = raw_version @version_segments = self.class.version_segments raw_version @version = Versionaire::Version version_segments validate! end |
Instance Attribute Details
#operator ⇒ Object (readonly)
Returns the value of attribute operator.
27 28 29 |
# File 'lib/gemsmith/gem/requirement.rb', line 27 def operator @operator end |
#raw_version ⇒ Object (readonly)
Returns the value of attribute raw_version.
27 28 29 |
# File 'lib/gemsmith/gem/requirement.rb', line 27 def raw_version @raw_version end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
27 28 29 |
# File 'lib/gemsmith/gem/requirement.rb', line 27 def version @version end |
#version_segments ⇒ Object (readonly)
Returns the value of attribute version_segments.
27 28 29 |
# File 'lib/gemsmith/gem/requirement.rb', line 27 def version_segments @version_segments end |
Class Method Details
.for(object) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/gemsmith/gem/requirement.rb', line 17 def self.for object case object when String operator, version = object.split " " new operator: operator, raw_version: version else fail Errors::RequirementConversion, %(Invalid string conversion. Use: "<operator> <version>".) end end |
.operators ⇒ Object
9 10 11 |
# File 'lib/gemsmith/gem/requirement.rb', line 9 def self.operators [">", ">=", "=", "!=", "<", "<=", "~>"] end |
.version_segments(version) ⇒ Object
13 14 15 |
# File 'lib/gemsmith/gem/requirement.rb', line 13 def self.version_segments version String(version).split(Versionaire::Version.delimiter).map(&:to_i) end |
Instance Method Details
#to_s ⇒ Object
37 38 39 |
# File 'lib/gemsmith/gem/requirement.rb', line 37 def to_s "#{operator} #{version}" end |