Class: Zenflow::Version
- Inherits:
-
Object
- Object
- Zenflow::Version
- Defined in:
- lib/zenflow/helpers/version.rb
Class Method Summary collapse
Instance Method Summary collapse
- #bump(level) ⇒ Object
-
#initialize(*version) ⇒ Version
constructor
A new instance of Version.
- #major ⇒ Object
- #minor ⇒ Object
- #patch ⇒ Object
- #pre ⇒ Object
- #save(path = "VERSION.yml") ⇒ Object
- #to_a ⇒ Object
- #to_hash ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(*version) ⇒ Version
Returns a new instance of Version.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/zenflow/helpers/version.rb', line 18 def initialize(*version) @version = case version.first when String YAML.load_file(version.first) when Hash version.first else { "major" => version[0], "minor" => version[1], "patch" => version[2], "pre" => version[3] } end end |
Class Method Details
.[](*version) ⇒ Object
4 5 6 |
# File 'lib/zenflow/helpers/version.rb', line 4 def self.[](*version) self.new(*version) end |
.current ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/zenflow/helpers/version.rb', line 8 def self.current file = "#{Dir.pwd}/VERSION.yml" if File.exist?(file) self.new(file) else Zenflow::Log("No version file found (looking for #{file}).", :color => :red) exit(1) end end |
.update(level = :patch) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/zenflow/helpers/version.rb', line 34 def self.update(level=:patch) new_version = Zenflow::Version.current.bump(level) new_version.save Zenflow::Shell["git add VERSION.yml && git commit -a -m 'Bumping version to #{new_version}.'"] new_version end |
Instance Method Details
#bump(level) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/zenflow/helpers/version.rb', line 41 def bump(level) raise "Invalid version part" unless [:major, :minor, :patch].include?(level.to_sym) new_version = case level.to_sym when :major then [major+1, 0, 0] when :minor then [major, minor+1, 0] when :patch then [major, minor, patch+1] end Version[*new_version] end |
#major ⇒ Object
51 52 53 |
# File 'lib/zenflow/helpers/version.rb', line 51 def major @version['major'] end |
#minor ⇒ Object
55 56 57 |
# File 'lib/zenflow/helpers/version.rb', line 55 def minor @version['minor'] end |
#patch ⇒ Object
59 60 61 |
# File 'lib/zenflow/helpers/version.rb', line 59 def patch @version['patch'] end |
#pre ⇒ Object
63 64 65 |
# File 'lib/zenflow/helpers/version.rb', line 63 def pre @version['pre'] end |
#save(path = "VERSION.yml") ⇒ Object
81 82 83 84 85 |
# File 'lib/zenflow/helpers/version.rb', line 81 def save(path="VERSION.yml") File.open(path, 'w') do |out| YAML.dump(@version, out) end end |
#to_a ⇒ Object
71 72 73 |
# File 'lib/zenflow/helpers/version.rb', line 71 def to_a [major, minor, patch, pre] end |
#to_hash ⇒ Object
67 68 69 |
# File 'lib/zenflow/helpers/version.rb', line 67 def to_hash @version.dup end |
#to_s ⇒ Object
75 76 77 78 79 |
# File 'lib/zenflow/helpers/version.rb', line 75 def to_s n = to_a[0..2] n << pre unless pre.nil? n.join(".") end |