bumpversion 0.5.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af627449c595232bca1375afd2d3894488b58096ea7101b056f04aca656b0e65
4
- data.tar.gz: c3d74976ec4fc1b00b71f19e7144378044f853e59bc43e49130c1f06a11c33d5
3
+ metadata.gz: 0ee7c37fdf3f69afb4a7b1cf258fc4e19792df1c8cc0d6854d203c951188a33c
4
+ data.tar.gz: c148c731dec29928cb268cd737c558ad82fc8fa36bfe4b252e189e931fc41c32
5
5
  SHA512:
6
- metadata.gz: 21ebff69c512abd92bb0f443ca8a8de7b36e599b4226e6c2cb5f7ba9a011aa06d8aee6c268e95475f29097989c26af696383ca49637ad0f9eff4ceb5c27d1c66
7
- data.tar.gz: b5b4e531fc8d377e87d509addca464128ae8d179e9d62144c05bf24fa4b23932483bf1cd8c85b64c7dd83e62021bd73f1f4fdd086a3cf5a07f43709795577c02
6
+ metadata.gz: fa9c7b28bf7c2cbe6487246e68720b7f052ad30296f8b9e9d9bf88056597eaa4638d8fdcbb4a1d20c57b788f7bebd0d8dfdd0f96446ae913c459021637c8e121
7
+ data.tar.gz: e8254cd6fcb8a3b6711dff7f7d5cd85cb931aeed894d73a0c1463a30d0ea7e32831186d579fcff833f10a655ca7bbe37e07887e9a615428b9005639de59c56c3
data/README.md CHANGED
@@ -8,18 +8,14 @@ Simple command to Bump version your project in shell.
8
8
 
9
9
  # Screencast
10
10
 
11
- [![asciicast](https://asciinema.org/a/c1o6gpp63xggu3w49n3xzte65.png)](https://asciinema.org/a/c1o6gpp63xggu3w49n3xzte65)
11
+ [![asciicast](docs/demo.svg)]()
12
12
 
13
13
  # Code Status
14
14
 
15
15
  Service | Status
16
16
  --------|----------
17
- Issues Ready to Work|[![Waffle.io](https://img.shields.io/waffle/label/dlanileonardo/bumpversion/in%20progress.svg?maxAge=2592000&style=flat-square)](https://waffle.io/dlanileonardo/bumpversion)
18
17
  Gems Version|[![Gem](https://img.shields.io/gem/v/bumpversion.svg?maxAge=2592000&style=flat-square)](http://badge.fury.io/rb/bumpversion)
19
- Code Climate|[![Code Climate](https://img.shields.io/codeclimate/github/kabisaict/flow.svg?maxAge=2592000&style=flat-square)](https://codeclimate.com/github/dlanileonardo/bumpversion)
20
- Coverage|[![Code Climate](https://img.shields.io/codeclimate/coverage/github/dlanileonardo/bumpversion.svg?maxAge=2592000&style=flat-square)](https://codeclimate.com/github/dlanileonardo/bumpversion/coverage)
21
- Build Status|[![Travis](https://img.shields.io/travis/dlanileonardo/bumpversion.svg?maxAge=2592000&style=flat-square)](https://travis-ci.org/dlanileonardo/bumpversion)
22
- Dependencies|[![Gemnasium](https://img.shields.io/gemnasium/dlanileonardo/bumpversion.svg?maxAge=2592000&style=flat-square)]()
18
+ Build Status|[![CI](https://github.com/dlanileonardo/bumpversion/workflows/CI/badge.svg)](https://github.com/dlanileonardo/bumpversion/actions?query=workflow%3ACI)
23
19
 
24
20
  ## Installation
25
21
 
@@ -5,7 +5,7 @@ module Bumpversion
5
5
  end
6
6
 
7
7
  def dictionary
8
- { major: 1, minor: 2, patch: 3 }
8
+ %w[major minor patch build].map { |k| k.to_sym }
9
9
  end
10
10
 
11
11
  def key_part
@@ -13,22 +13,23 @@ module Bumpversion
13
13
  end
14
14
 
15
15
  def pattern
16
- /([0-9]+)\.([0-9]+)\.([0-9]+)/
16
+ /(?<major>\d+).(?<minor>\d+).(?<patch>\d+).?(?<build>\d+)?/
17
+ end
18
+
19
+ def pattern_replace
20
+ /(?<major>\d+)(?<a>.)(?<minor>\d+)(?<b>.)(?<patch>\d+)(?<c>.)?(?<build>\d+)?/
17
21
  end
18
22
 
19
23
  def matched
20
- match = pattern.match(@options[:current_version])
21
- matched = {}
22
- dictionary.each { |part, number| matched[part] = match[number].to_i }
23
- matched
24
+ @match ||= pattern.match(@options[:current_version])
24
25
  end
25
26
 
26
27
  def update_version(matched_version)
27
28
  bumped = false
28
29
  matched_version.each do | part, number |
29
- matched_version[part] = 0 if bumped
30
+ matched_version[part] = 0 if bumped && part.to_sym != :build
30
31
 
31
- if part == key_part
32
+ if part.to_sym == key_part || part.to_sym == :build
32
33
  matched_version[part] += 1
33
34
  bumped = true
34
35
  end
@@ -39,9 +40,12 @@ module Bumpversion
39
40
 
40
41
  def bump
41
42
  unless @options[:new_version]
42
- matched_version = update_version(matched)
43
- new_version_hash = matched_version.map { |_key, value| value.to_s }
44
- @options[:new_version] = new_version_hash.join('.')
43
+ actual_version = matched.named_captures.reject { |k,v| v.nil? }.map { |k, v| [k.to_sym, v.to_i] }.to_h
44
+ matched_version = update_version(actual_version)
45
+ new_version = pattern_replace.match(@options[:current_version]).named_captures.map do |k, v|
46
+ dictionary.include?(k.to_sym) ? "#{matched_version[k.to_sym]}" : v || ""
47
+ end.join("")
48
+ @options[:new_version] = new_version
45
49
  end
46
50
  @options
47
51
  end
@@ -1,4 +1,4 @@
1
- require 'trollop'
1
+ require 'optimist'
2
2
  require 'bumpversion/version'
3
3
 
4
4
  module Bumpversion
@@ -10,7 +10,7 @@ module Bumpversion
10
10
 
11
11
  def mount_banner
12
12
  version_number = VERSION
13
- Trollop::Parser.new do
13
+ Optimist::Parser.new do
14
14
  version "Bumpversion #{version_number} ☺"
15
15
  usage "bumpversion [options] --part [major|minor|patch]
16
16
  where [options] are:"
@@ -48,12 +48,12 @@ Usage:
48
48
 
49
49
  def parse
50
50
  banner = mount_banner
51
- @options = Trollop.with_standard_exception_handling banner do
52
- fail Trollop::HelpNeeded if @args.empty?
51
+ @options = Optimist.with_standard_exception_handling banner do
52
+ fail Optimist::HelpNeeded if @args.empty?
53
53
  banner.parse @args
54
54
  end
55
55
 
56
- Trollop.die if @options[:help]
56
+ Optimist.die if @options[:help]
57
57
 
58
58
  @options
59
59
  end
@@ -1,3 +1,3 @@
1
1
  module Bumpversion
2
- VERSION = '0.5.2'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -74,6 +74,19 @@ describe Bumpversion::Bumpversion do
74
74
  it { is_expected.to include current_version: '1.1.1' }
75
75
  it { is_expected.to include new_version: '1.1.2' }
76
76
  end
77
+ context 'major with build' do
78
+ let(:arguments) { ['--current-version=1.0.1+10', '--part=major'] }
79
+ let(:bump_instance) { Bumpversion::Bumpversion.new arguments }
80
+ subject { bump_instance.instance_variable_get(:@options) }
81
+
82
+ it { expect(bump_instance).to be_a Bumpversion::Bumpversion }
83
+ it { is_expected.to be_a Hash }
84
+ it { is_expected.to include :help }
85
+ it { is_expected.to include :part }
86
+ it { is_expected.to include :file }
87
+ it { is_expected.to include current_version: '1.0.1+10' }
88
+ it { is_expected.to include new_version: '2.0.0+11' }
89
+ end
77
90
  end
78
91
 
79
92
  describe 'with file' do
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bumpversion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dlani Mendes
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2021-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: trollop
14
+ name: optimist
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.1'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.1'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parseconfig
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,62 +72,6 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 1.2.9
75
- - !ruby/object:Gem::Dependency
76
- name: bundler
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '1.10'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '1.10'
89
- - !ruby/object:Gem::Dependency
90
- name: rake
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '10.0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '10.0'
103
- - !ruby/object:Gem::Dependency
104
- name: rspec
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 3.0.0
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: 3.0.0
117
- - !ruby/object:Gem::Dependency
118
- name: rspec-core
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: 3.0.0
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: 3.0.0
131
75
  description: Bump version by params or config file with Hooks! :).
132
76
  email:
133
77
  - dlanileonardo@gmail.com
@@ -158,7 +102,7 @@ homepage: https://github.com/dlanileonardo/bumpversion
158
102
  licenses:
159
103
  - MIT
160
104
  metadata: {}
161
- post_install_message:
105
+ post_install_message:
162
106
  rdoc_options: []
163
107
  require_paths:
164
108
  - lib
@@ -173,9 +117,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
117
  - !ruby/object:Gem::Version
174
118
  version: '0'
175
119
  requirements: []
176
- rubyforge_project:
177
- rubygems_version: 2.7.3
178
- signing_key:
120
+ rubygems_version: 3.1.2
121
+ signing_key:
179
122
  specification_version: 4
180
123
  summary: Auto Bump Version to any project
181
124
  test_files: