Class: Cask::DSL::Version Private
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
Class corresponding to the version
stanza.
Constant Summary collapse
- DIVIDERS =
This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.
{ "." => :dots, "-" => :hyphens, "_" => :underscores, }.freeze
- DIVIDER_REGEX =
This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.
/(#{DIVIDERS.keys.map { |v| Regexp.quote(v) }.join("|")})/
- MAJOR_MINOR_PATCH_REGEX =
This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.
/^([^.,:]+)(?:.([^.,:]+)(?:.([^.,:]+))?)?/
- INVALID_CHARACTERS =
This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.
/[^0-9a-zA-Z.,:\-_+ ]/
Constants inherited from String
String::BLANK_RE, String::ENCODED_BLANKS_
Instance Attribute Summary collapse
- #raw_version ⇒ Object readonly private
Instance Method Summary collapse
-
#after_comma ⇒ T.self_type
The version part after the first comma.
-
#before_comma ⇒ T.self_type
The version part before the first comma.
-
#chomp(separator = T.unsafe(nil)) ⇒ T.self_type
The version with the given record separator removed from the end.
-
#csv ⇒ Array<Version>
The comma separated values of the version as array.
- #initialize(raw_version) ⇒ void constructor private
- #invalid_characters ⇒ Object private
- #latest? ⇒ Boolean private
-
#major ⇒ T.self_type
The major version.
-
#major_minor ⇒ T.self_type
The major and minor version.
-
#major_minor_patch ⇒ T.self_type
The major, minor and patch version.
-
#minor ⇒ T.self_type
The minor version.
-
#minor_patch ⇒ T.self_type
The minor and patch version.
-
#no_dividers ⇒ T.self_type
The version without any dividers.
-
#patch ⇒ T.self_type
The patch version.
- #unstable? ⇒ Boolean private
Methods inherited from String
Constructor Details
#initialize(raw_version) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
66 67 68 69 70 71 72 |
# File 'cask/dsl/version.rb', line 66 def initialize(raw_version) @raw_version = raw_version super(raw_version.to_s) invalid = invalid_characters raise TypeError, "#{raw_version} contains invalid characters: #{invalid.uniq.join}!" if invalid.present? end |
Instance Attribute Details
#raw_version ⇒ Object (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
63 64 65 |
# File 'cask/dsl/version.rb', line 63 def raw_version @raw_version end |
Instance Method Details
#after_comma ⇒ T.self_type
The version part after the first comma.
165 166 167 |
# File 'cask/dsl/version.rb', line 165 def after_comma version { split(",", 2).second } end |
#before_comma ⇒ T.self_type
The version part before the first comma.
157 158 159 |
# File 'cask/dsl/version.rb', line 157 def before_comma version { split(",", 2).first } end |
#chomp(separator = T.unsafe(nil)) ⇒ T.self_type
The version with the given record separator removed from the end.
183 184 185 |
# File 'cask/dsl/version.rb', line 183 def chomp(separator = T.unsafe(nil)) version { to_s.chomp(separator) } end |
#csv ⇒ Array<Version>
The comma separated values of the version as array.
149 150 151 |
# File 'cask/dsl/version.rb', line 149 def csv split(",").map { self.class.new(_1) } end |
#invalid_characters ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
74 75 76 77 78 |
# File 'cask/dsl/version.rb', line 74 def invalid_characters return [] if raw_version.blank? || latest? raw_version.scan(INVALID_CHARACTERS) end |
#latest? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
93 94 95 |
# File 'cask/dsl/version.rb', line 93 def latest? to_s == "latest" end |
#major ⇒ T.self_type
The major version.
101 102 103 |
# File 'cask/dsl/version.rb', line 101 def major version { slice(MAJOR_MINOR_PATCH_REGEX, 1) } end |
#major_minor ⇒ T.self_type
The major and minor version.
125 126 127 |
# File 'cask/dsl/version.rb', line 125 def major_minor version { [major, minor].reject(&:empty?).join(".") } end |
#major_minor_patch ⇒ T.self_type
The major, minor and patch version.
133 134 135 |
# File 'cask/dsl/version.rb', line 133 def major_minor_patch version { [major, minor, patch].reject(&:empty?).join(".") } end |
#minor ⇒ T.self_type
The minor version.
109 110 111 |
# File 'cask/dsl/version.rb', line 109 def minor version { slice(MAJOR_MINOR_PATCH_REGEX, 2) } end |
#minor_patch ⇒ T.self_type
The minor and patch version.
141 142 143 |
# File 'cask/dsl/version.rb', line 141 def minor_patch version { [minor, patch].reject(&:empty?).join(".") } end |
#no_dividers ⇒ T.self_type
The version without any dividers.
174 175 176 |
# File 'cask/dsl/version.rb', line 174 def no_dividers version { gsub(DIVIDER_REGEX, "") } end |
#patch ⇒ T.self_type
The patch version.
117 118 119 |
# File 'cask/dsl/version.rb', line 117 def patch version { slice(MAJOR_MINOR_PATCH_REGEX, 3) } end |
#unstable? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
81 82 83 84 85 86 87 88 89 90 |
# File 'cask/dsl/version.rb', line 81 def unstable? return false if latest? s = downcase.delete(".").gsub(/[^a-z\d]+/, "-") return true if s.match?(/(\d+|\b)(alpha|beta|preview|rc|dev|canary|snapshot)(\d+|\b)/i) return true if s.match?(/\A[a-z\d]+(-\d+)*-?(a|b|pre)(\d+|\b)/i) false end |