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