Class: SemverStringer::Semver
- Inherits:
-
Object
- Object
- SemverStringer::Semver
- Includes:
- Comparable
- Defined in:
- lib/semver_stringer/semver.rb
Defined Under Namespace
Classes: Substring
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
All the semver.org comparison rules are expressed by this operator.
- #get_build_string ⇒ Object
- #get_pre_string ⇒ Object
- #get_version_string ⇒ Object
-
#initialize(params = {}) ⇒ Semver
constructor
Creates a new Semver instance.
-
#to_s ⇒ String
Returns a string representation of the SemVer.
Constructor Details
#initialize(params = {}) ⇒ Semver
Creates a new Semver instance.
63 64 65 66 67 |
# File 'lib/semver_stringer/semver.rb', line 63 def initialize(params={}) @major, @minor, @patch = get_version_numbers_from params @build = get_build_string_from params @pre = get_pre_string_from params end |
Instance Method Details
#<=>(other) ⇒ Object
All the semver.org comparison rules are expressed by this operator
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/semver_stringer/semver.rb', line 71 def <=>(other) versionComparison = Substring.new(get_version_string) <=> Substring.new(other.get_version_string) (return versionComparison) if versionComparison != 0 other_pre = other.instance_variable_get('@pre') if @pre != nil and other_pre == nil return -1 elsif @pre == nil and other_pre != nil return 1 elsif @pre != nil and other_pre != nil pre_comparison = Substring.new(@pre) <=> Substring.new(other_pre) (return pre_comparison) if pre_comparison != 0 end other_build = other.instance_variable_get('@build') if @build == nil and other_build != nil return -1 elsif @build != nil and other_build == nil return 1 elsif @build != nil and other_build != nil build_comparison = Substring.new(@build) <=> Substring.new(other_build) (return build_comparison) if build_comparison != 0 end return 0 end |
#get_build_string ⇒ Object
107 108 109 |
# File 'lib/semver_stringer/semver.rb', line 107 def get_build_string @build end |
#get_pre_string ⇒ Object
103 104 105 |
# File 'lib/semver_stringer/semver.rb', line 103 def get_pre_string @pre end |
#get_version_string ⇒ Object
99 100 101 |
# File 'lib/semver_stringer/semver.rb', line 99 def get_version_string "#{@major}.#{@minor}.#{@patch}" end |
#to_s ⇒ String
Returns a string representation of the SemVer
117 118 119 120 121 122 |
# File 'lib/semver_stringer/semver.rb', line 117 def to_s version = get_version_string version << "-#{get_pre_string}" unless @pre == nil version << "+#{get_build_string}" unless @build == nil version end |