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. :reek:PrimaDonnaMethod
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.
32 33 34 35 36 37 38 |
# File 'lib/gemsmith/gem/requirement.rb', line 32 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.
30 31 32 |
# File 'lib/gemsmith/gem/requirement.rb', line 30 def operator @operator end |
#raw_version ⇒ Object (readonly)
Returns the value of attribute raw_version.
30 31 32 |
# File 'lib/gemsmith/gem/requirement.rb', line 30 def raw_version @raw_version end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
30 31 32 |
# File 'lib/gemsmith/gem/requirement.rb', line 30 def version @version end |
#version_segments ⇒ Object (readonly)
Returns the value of attribute version_segments.
30 31 32 |
# File 'lib/gemsmith/gem/requirement.rb', line 30 def version_segments @version_segments end |
Class Method Details
.for(object) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/gemsmith/gem/requirement.rb', line 19 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
11 12 13 |
# File 'lib/gemsmith/gem/requirement.rb', line 11 def self.operators [">", ">=", "=", "!=", "<", "<=", "~>"] end |
.version_segments(version) ⇒ Object
15 16 17 |
# File 'lib/gemsmith/gem/requirement.rb', line 15 def self.version_segments version String(version).split(Versionaire::Version.delimiter).map(&:to_i) end |
Instance Method Details
#to_s ⇒ Object
40 41 42 |
# File 'lib/gemsmith/gem/requirement.rb', line 40 def to_s "#{operator} #{version}" end |