bunup 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aecb6c5b9952bc73f6e059f520a6ffb477869fa5c44f4855e92a0de17ab50d6f
4
- data.tar.gz: d0d5dc8e96c0866cafb55d380ffd3cb6d9602ba7d40a20ff81ba6312ec30e680
3
+ metadata.gz: 63cc322ef7121438476bec3a6fa52b19d5c0b29c0a725ee78245a02c3ab46719
4
+ data.tar.gz: 4d5c02920b1e0dd16e1737bfd0ef035b4127f2326d90033a6da560d2b79b69e4
5
5
  SHA512:
6
- metadata.gz: 85686d9b73831bf4fce8d3d5e6d42ec08011315fef82e5d0ba5eba9c7e9b9541d327e9e3f166699fc2ea4b8fd0cd7d21e17c0caea8094d9574b4e45cef37bcd1
7
- data.tar.gz: f0568922bd09be73673b7e678427d9de957c49c2d3360fbec279c3f037ec1a5b35caf9f7189e00f261d513bdb58c9e48fba243e54874b19afaf23360c98e96ce
6
+ metadata.gz: 4d14817dc2eee80a359a45befc1d3e87acd7ca916780ce5ea056c586fb167c1f585fc09f44e2fe48076479efd31bc972dbd7c8dbffcff6c8c5404799075db971
7
+ data.tar.gz: 7d6ed6b5edc46141d631384da30c45b3651743fe8ef09a8b8ae94c130c54a7cbd55bae8f23b1673cac84f6fe21bc003fb76b3f8a947d7d99a3c0f1f5ad02ff71
data/.gitignore CHANGED
@@ -11,3 +11,5 @@
11
11
  .rspec_status
12
12
 
13
13
  Gemfile.lock
14
+
15
+ .ruby-version
data/.rubocop.yml CHANGED
@@ -1,7 +1,10 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
3
+
1
4
  Gemspec/RequiredRubyVersion:
2
5
  Enabled: false
3
6
 
4
- Layout/AlignParameters:
7
+ Layout/ParameterAlignment:
5
8
  EnforcedStyle: with_fixed_indentation
6
9
 
7
10
  Layout/CaseIndentation:
@@ -23,7 +26,7 @@ Layout/EmptyLinesAroundAccessModifier:
23
26
  Layout/EmptyLinesAroundArguments:
24
27
  Enabled: false
25
28
 
26
- Layout/IndentHeredoc:
29
+ Layout/HeredocIndentation:
27
30
  Enabled: false
28
31
 
29
32
  Layout/MultilineMethodCallIndentation:
@@ -55,10 +58,6 @@ Metrics/ClassLength:
55
58
  Metrics/ModuleLength:
56
59
  Enabled: false
57
60
 
58
- # Status codes or symbols are fine
59
- Rails/HttpStatus:
60
- Enabled: false
61
-
62
61
  # Too subtle to lint. Recommend semantic style, but avoid `end.x`.
63
62
  Style/BlockDelimiters:
64
63
  Enabled: false
@@ -72,6 +71,18 @@ Style/FormatStringToken:
72
71
  Style/GuardClause:
73
72
  Enabled: false
74
73
 
74
+ # New cop opt-in
75
+ Style/HashEachMethods:
76
+ Enabled: true
77
+
78
+ # New cop opt-in
79
+ Style/HashTransformKeys:
80
+ Enabled: true
81
+
82
+ # New cop opt-in
83
+ Style/HashTransformValues:
84
+ Enabled: true
85
+
75
86
  # Too subtle to lint. Avoid the "modifier" (postfix) style except on extremely
76
87
  # short and simple lines.
77
88
  Style/IfUnlessModifier:
data/.travis.yml CHANGED
@@ -3,7 +3,6 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.2
7
6
  - 2.3
8
7
  - 2.4
9
8
  - 2.5
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## Unreleased
8
+
9
+ ## [0.2.0](https://github.com/singlebrook/bunup/releases/tag/v0.2.0)
10
+
11
+ - Support Bundler 2
12
+ - Support gems installed from git sources
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
 
2
2
  [![Build Status](https://travis-ci.org/singlebrook/bunup.svg?branch=master)](https://travis-ci.org/singlebrook/bunup)
3
+ ![Gem](https://img.shields.io/gem/v/bunup.svg)
3
4
 
4
5
  # Bunup
5
6
 
@@ -44,7 +45,7 @@ bunup rake rubocop
44
45
  ### Options
45
46
 
46
47
  * `--all`: Update all outdated gems. This is the default.
47
- * `-y` `--yes` `--assume-yes`: Answer "yes" to major version update prompts and run non-interactively
48
+ * `-y` `--yes` `--assume-yes [major, git]`: Answer "yes" to major version or git version update prompts and run non-interactively. Defaults to all.
48
49
 
49
50
  ## Development
50
51
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
  require 'rubocop/rake_task'
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'bunup'
data/bunup.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'bunup/version'
@@ -22,12 +24,11 @@ Gem::Specification.new do |spec|
22
24
  spec.bindir = 'exe'
23
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
26
  spec.require_paths = ['lib']
25
- spec.required_ruby_version = '>= 2.1'
27
+ spec.required_ruby_version = '>= 2.7'
26
28
 
27
- spec.add_development_dependency 'bundler', '~> 1.16'
28
- spec.add_development_dependency 'byebug', '~> 9.0'
29
- spec.add_development_dependency 'rake', '~> 10.0'
30
- spec.add_development_dependency 'rspec', '~> 3.0'
31
- spec.add_development_dependency 'rubocop', '>= 0.57.2'
32
- spec.add_development_dependency 'simplecov', '~> 0.16.1'
29
+ spec.add_development_dependency 'bundler', '>= 2.4.0' # CVE-2019-3881
30
+ spec.add_development_dependency 'rake', '>= 12.3.3'
31
+ spec.add_development_dependency 'rspec', '~> 3.13'
32
+ spec.add_development_dependency 'rubocop', '>= 1.50'
33
+ spec.add_development_dependency 'simplecov', '~> 0.21.2'
33
34
  end
data/exe/bunup CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require 'bunup'
4
+ require_relative '../lib/bunup'
4
5
  ::Bunup::CLI.new(ARGV).run
data/lib/bunup/bundler.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
 
3
5
  module Bunup
@@ -11,15 +13,17 @@ module Bunup
11
13
  (?<name>.*)\s
12
14
  \(newest\s(?<newest>.*),\s
13
15
  installed\s(?<installed>.*?)
14
- (,\srequested.*)?
16
+ (?:,\srequested.*)?
15
17
  \)
16
18
  /x.freeze
17
19
 
18
20
  # Expected output format:
19
21
  # "\ngem-name (newest 1.0.0, installed 2.0.0)\n"
20
- def self.outdated(gem_names)
22
+ def self.outdated(gem_names, only_explicit: false)
23
+ args = %w[--parseable --strict]
24
+ args << '--only-explicit' if only_explicit
21
25
  stdout, stderr, status = Open3.capture3(
22
- "bundler outdated #{gem_names.join(' ')} --parseable --strict"
26
+ "bundler outdated #{gem_names.join(' ')} #{args.join(' ')}"
23
27
  )
24
28
  validate_output(stdout, stderr, status)
25
29
  stdout.strip
@@ -35,7 +39,7 @@ module Bunup
35
39
  unless status.to_i == 256
36
40
  raise ::SystemExit.new(
37
41
  status.to_i,
38
- (stderr == '' ? stdout : stderr).chomp + "\n"
42
+ "#{(stderr == '' ? stdout : stderr).chomp}\n"
39
43
  )
40
44
  end
41
45
  end
data/lib/bunup/cli.rb CHANGED
@@ -1,16 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bunup
2
4
  # Parse args, run services, handle output, and handle exits
3
5
  class CLI
4
- COMMITING_MSG = 'Commiting Gemfile and Gemfile.lock changes'.freeze
6
+ COMMITING_MSG = 'Commiting Gemfile and Gemfile.lock changes'
5
7
  E_DIRTY_GEMFILE = 'Gemfile and/or Gemfile.lock has changes that would ' \
6
8
  'be overwritten. Please stash or commit your changes before running ' \
7
- 'bunup.'.freeze
9
+ 'bunup.'
10
+ GIT_REF_UPDATE_WARNING = 'WARNING: %<gem_name>s is installed from a git ' \
11
+ 'repo and is being updated from %<installed_version>s to ' \
12
+ '%<newest_version>s. This update could include breaking changes. ' \
13
+ 'Continue? [y/N] '
8
14
  MAJOR_VERSION_UPDATE_WARNING_FMT = 'WARNING: %<gem_name>s is being ' \
9
15
  'updated from %<installed_version>s to %<newest_version>s. This is ' \
10
16
  'a major version update with possible breaking changes. ' \
11
- 'Continue? [y/N] '.freeze
17
+ 'Continue? [y/N] '
12
18
  UPDATING_MSG_FMT = '(%<remaining>s) Updating %<gem_name>s ' \
13
- '%<installed_version>s -> %<newest_version>s'.freeze
19
+ '%<installed_version>s -> %<newest_version>s'
14
20
 
15
21
  def initialize(args)
16
22
  @options = ::Bunup::Options.parse!(args)
@@ -36,17 +42,17 @@ module Bunup
36
42
  end
37
43
 
38
44
  def build_gems
39
- bundle_outdated.split("\n").map do |line|
45
+ bundle_outdated.split("\n").map.with_object([]) do |line, gems|
40
46
  next unless Bundler::OUTDATED_PATTERN =~ line
41
47
 
42
48
  match_data = Bundler::OUTDATED_PATTERN.match(line)
43
- build_gem(match_data)
44
- end.compact
49
+ gems << build_gem(match_data)
50
+ end
45
51
  end
46
52
 
47
53
  def bundle_outdated
48
54
  puts 'Checking for updates'
49
- Bundler.outdated(bunup_all? ? [] : @args)
55
+ Bundler.outdated(bunup_all? ? [] : @args, only_explicit: @options[:only_explicit])
50
56
  rescue ::SystemExit => e
51
57
  handle_system_exit(e)
52
58
  ''
@@ -69,16 +75,33 @@ module Bunup
69
75
  msg = []
70
76
  msg << 'ERROR:' unless exception.success?
71
77
  msg << exception.message
72
- puts msg.join(' ') + "\n"
78
+ puts "#{msg.join(' ')}\n"
73
79
  raise exception unless bunup_many?
74
80
  end
75
81
 
76
82
  def major_version_update?
77
83
  return false if @gem.newest_version.nil? || @gem.installed_version.nil?
78
84
 
79
- major_version = ->(version) { version.split('.')[0].to_i }
80
- major_version.call(@gem.newest_version) >
81
- major_version.call(@gem.installed_version)
85
+ @gem.newest_version.major > @gem.installed_version.major
86
+ end
87
+
88
+ # A major version update has breaking changes, according to Semantic
89
+ # Versioning (https://semver.org/spec/v2.0.0.html). Let's make sure the
90
+ # user is aware of that.
91
+ def prompt_for_git_ref_update
92
+ print format(
93
+ GIT_REF_UPDATE_WARNING,
94
+ gem_name: @gem.name,
95
+ installed_version: @gem.installed_version,
96
+ newest_version: @gem.newest_version
97
+ )
98
+ if @options[:assume_yes_for_git_update]
99
+ print "assuming yes\n"
100
+ else
101
+ unless $stdin.gets.chomp.casecmp('y').zero?
102
+ raise ::SystemExit.new(true, 'No update performed')
103
+ end
104
+ end
82
105
  end
83
106
 
84
107
  # A major version update has breaking changes, according to Semantic
@@ -91,10 +114,10 @@ module Bunup
91
114
  installed_version: @gem.installed_version,
92
115
  newest_version: @gem.newest_version
93
116
  )
94
- if @options.assume_yes
117
+ if @options[:assume_yes_for_major_version_update]
95
118
  print "assuming yes\n"
96
119
  else
97
- unless STDIN.gets.chomp.casecmp('y').zero?
120
+ unless $stdin.gets.chomp.casecmp('y').zero?
98
121
  raise ::SystemExit.new(true, 'No update performed')
99
122
  end
100
123
  end
@@ -116,6 +139,7 @@ module Bunup
116
139
  @gem = gem
117
140
  begin
118
141
  prompt_for_major_update if major_version_update?
142
+ prompt_for_git_ref_update if @gem.installed_from_git?
119
143
  update
120
144
  commit
121
145
  rescue ::SystemExit => e
data/lib/bunup/gem.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ostruct'
2
4
 
3
5
  module Bunup
@@ -5,28 +7,32 @@ module Bunup
5
7
  class Gem
6
8
  # Gem name patterns taken from
7
9
  # https://github.com/rubygems/rubygems.org/blob/master/lib/patterns.rb
8
- SPECIAL_CHARACTERS = '.-_'.freeze
10
+ SPECIAL_CHARACTERS = '.-_'
9
11
  ALLOWED_CHARACTERS = '[A-Za-z0-9' \
10
- "#{Regexp.escape(SPECIAL_CHARACTERS)}]+".freeze
12
+ "#{Regexp.escape(SPECIAL_CHARACTERS)}]+"
11
13
  NAME_PATTERN = /\A#{ALLOWED_CHARACTERS}\Z/.freeze
12
14
 
13
15
  attr_accessor :name, :installed_version, :newest_version
14
16
 
15
17
  def initialize(name: nil, installed_version: nil, newest_version: nil)
16
18
  @name = name
17
- @installed_version = installed_version
18
- @newest_version = newest_version
19
+ @installed_version = Values::Version.new(installed_version)
20
+ @newest_version = Values::Version.new(newest_version)
19
21
  validate
20
22
  end
21
23
 
24
+ def installed_from_git?
25
+ installed_version.from_git? || newest_version.from_git?
26
+ end
27
+
22
28
  private
23
29
 
24
30
  def validate
25
31
  abort "Invalid gem name: #{name}" unless valid_name?
26
- unless valid_version?(installed_version)
32
+ unless installed_version.valid?
27
33
  abort "Invalid version for #{name}: #{installed_version}"
28
34
  end
29
- unless valid_version?(newest_version)
35
+ unless newest_version.valid?
30
36
  abort "Invalid version for #{name}: #{newest_version}"
31
37
  end
32
38
  end
@@ -34,9 +40,5 @@ module Bunup
34
40
  def valid_name?
35
41
  name =~ NAME_PATTERN
36
42
  end
37
-
38
- def valid_version?(version_string)
39
- ::Gem::Version.correct?(version_string)
40
- end
41
43
  end
42
44
  end
data/lib/bunup/options.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'optionparser'
2
4
  require 'ostruct'
3
5
 
@@ -16,10 +18,29 @@ module Bunup
16
18
  options.all = true
17
19
  end
18
20
 
19
- assume_yes_msg = 'Answer "yes" to major version update prompts ' \
20
- 'and run non-interactively'
21
- opts.on('-y', '--yes', '--assume-yes', assume_yes_msg) do
22
- options.assume_yes = true
21
+ assume_yes_msg = 'Answer "yes" to all major or git version update ' \
22
+ 'prompts, or all, and run non-interactively. Defaults to all.'
23
+ opts.on(
24
+ '-y', '--yes', '--assume-yes [major, git]',
25
+ Array,
26
+ assume_yes_msg
27
+ ) do |list|
28
+ if list.nil?
29
+ options[:assume_yes_for_major_version_update] = true
30
+ options[:assume_yes_for_git_update] = true
31
+ else
32
+ list.each do |version_type|
33
+ case version_type.strip
34
+ when 'major'
35
+ options[:assume_yes_for_major_version_update] = true
36
+ when 'git' then options[:assume_yes_for_git_update] = true
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ opts.on('--only-explicit') do
43
+ options[:only_explicit] = true
23
44
  end
24
45
 
25
46
  opts.on('-h', '--help', 'Prints this help') do
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bunup
2
4
  module Services
3
5
  # Commit changes to Gemfile and Gemfile.lock to git
4
6
  class Commiter
5
7
  COMMIT_MESSAGE_FMT = '%<gem_name>s %<newest_version>s ' \
6
- '(was %<installed_version>s)'.freeze
8
+ '(was %<installed_version>s)'
7
9
 
8
10
  def self.clean_gemfile?
9
11
  `git status -s Gemfile Gemfile.lock` == ''
@@ -30,9 +32,9 @@ module Bunup
30
32
 
31
33
  def message
32
34
  format COMMIT_MESSAGE_FMT,
33
- gem_name: @gem.name,
34
- newest_version: @gem.newest_version,
35
- installed_version: @gem.installed_version
35
+ gem_name: @gem.name,
36
+ newest_version: @gem.newest_version,
37
+ installed_version: @gem.installed_version
36
38
  end
37
39
  end
38
40
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bunup
2
4
  module Services
3
5
  # Use bundler to update the gem and the Gemfile
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bunup
4
+ module Services
5
+ # Validate that version of gem installed from a git source is valid
6
+ class ValidateGitVersion
7
+ # https://stackoverflow.com/questions/468370/a-regex-to-match-a-sha1#468378
8
+ SHA_REGEX = /\b[0-9a-f]{5,40}\b/.freeze
9
+
10
+ def initialize(version_string)
11
+ @version_string = version_string
12
+ end
13
+
14
+ def perform
15
+ version, sha = @version_string.split(' ')
16
+ return false if sha.nil?
17
+
18
+ ::Gem::Version.correct?(version) &&
19
+ !sha.match(SHA_REGEX).nil?
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bunup
4
+ module Values
5
+ # Parse and handle version strings
6
+ class Version
7
+ def initialize(version_string)
8
+ @version_string = version_string
9
+ end
10
+
11
+ def to_s
12
+ @version_string
13
+ end
14
+
15
+ def major
16
+ if from_git?
17
+ # '6.0.0.rc2 b6f1d19' => 6
18
+ @version_string.split(' ')[0].split('.')[0].to_i
19
+ else
20
+ # '6.0.0.rc2' => 6
21
+ @version_string.split('.')[0].to_i
22
+ end
23
+ end
24
+
25
+ def from_git?
26
+ Services::ValidateGitVersion.new(@version_string).perform
27
+ end
28
+
29
+ def nil?
30
+ @version_string == '' || @version_string.nil?
31
+ end
32
+
33
+ def valid?
34
+ ::Gem::Version.correct?(@version_string) ||
35
+ Services::ValidateGitVersion.new(@version_string).perform
36
+ end
37
+ end
38
+ end
39
+ end
data/lib/bunup/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bunup
2
- VERSION = '0.1.0'.freeze
4
+ VERSION = '0.3.0'
3
5
  end
data/lib/bunup.rb CHANGED
@@ -1,4 +1,8 @@
1
- Dir.glob(File.dirname(__FILE__) + '/bunup/**/*.rb').each { |file| require file }
1
+ # frozen_string_literal: true
2
2
 
3
- # Out top-level namespace
3
+ Dir.glob("#{File.dirname(__FILE__)}/bunup/**/*.rb").sort.each do |file|
4
+ require file
5
+ end
6
+
7
+ # Our top-level namespace
4
8
  module Bunup; end
metadata CHANGED
@@ -1,102 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bunup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Beck
8
8
  - Shane Cavanaugh
9
9
  - Leon Miller-Out
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-11-02 00:00:00.000000000 Z
13
+ date: 2024-05-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '1.16'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '1.16'
29
- - !ruby/object:Gem::Dependency
30
- name: byebug
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
19
+ - - ">="
34
20
  - !ruby/object:Gem::Version
35
- version: '9.0'
21
+ version: 2.4.0
36
22
  type: :development
37
23
  prerelease: false
38
24
  version_requirements: !ruby/object:Gem::Requirement
39
25
  requirements:
40
- - - "~>"
26
+ - - ">="
41
27
  - !ruby/object:Gem::Version
42
- version: '9.0'
28
+ version: 2.4.0
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: rake
45
31
  requirement: !ruby/object:Gem::Requirement
46
32
  requirements:
47
- - - "~>"
33
+ - - ">="
48
34
  - !ruby/object:Gem::Version
49
- version: '10.0'
35
+ version: 12.3.3
50
36
  type: :development
51
37
  prerelease: false
52
38
  version_requirements: !ruby/object:Gem::Requirement
53
39
  requirements:
54
- - - "~>"
40
+ - - ">="
55
41
  - !ruby/object:Gem::Version
56
- version: '10.0'
42
+ version: 12.3.3
57
43
  - !ruby/object:Gem::Dependency
58
44
  name: rspec
59
45
  requirement: !ruby/object:Gem::Requirement
60
46
  requirements:
61
47
  - - "~>"
62
48
  - !ruby/object:Gem::Version
63
- version: '3.0'
49
+ version: '3.13'
64
50
  type: :development
65
51
  prerelease: false
66
52
  version_requirements: !ruby/object:Gem::Requirement
67
53
  requirements:
68
54
  - - "~>"
69
55
  - !ruby/object:Gem::Version
70
- version: '3.0'
56
+ version: '3.13'
71
57
  - !ruby/object:Gem::Dependency
72
58
  name: rubocop
73
59
  requirement: !ruby/object:Gem::Requirement
74
60
  requirements:
75
61
  - - ">="
76
62
  - !ruby/object:Gem::Version
77
- version: 0.57.2
63
+ version: '1.50'
78
64
  type: :development
79
65
  prerelease: false
80
66
  version_requirements: !ruby/object:Gem::Requirement
81
67
  requirements:
82
68
  - - ">="
83
69
  - !ruby/object:Gem::Version
84
- version: 0.57.2
70
+ version: '1.50'
85
71
  - !ruby/object:Gem::Dependency
86
72
  name: simplecov
87
73
  requirement: !ruby/object:Gem::Requirement
88
74
  requirements:
89
75
  - - "~>"
90
76
  - !ruby/object:Gem::Version
91
- version: 0.16.1
77
+ version: 0.21.2
92
78
  type: :development
93
79
  prerelease: false
94
80
  version_requirements: !ruby/object:Gem::Requirement
95
81
  requirements:
96
82
  - - "~>"
97
83
  - !ruby/object:Gem::Version
98
- version: 0.16.1
99
- description:
84
+ version: 0.21.2
85
+ description:
100
86
  email:
101
87
  - jared@jaredbeck.com
102
88
  - shane@shanecav.net
@@ -109,6 +95,7 @@ files:
109
95
  - ".gitignore"
110
96
  - ".rubocop.yml"
111
97
  - ".travis.yml"
98
+ - CHANGELOG.md
112
99
  - CODE_OF_CONDUCT.md
113
100
  - Gemfile
114
101
  - LICENSE.txt
@@ -125,12 +112,14 @@ files:
125
112
  - lib/bunup/options.rb
126
113
  - lib/bunup/services/commiter.rb
127
114
  - lib/bunup/services/updater.rb
115
+ - lib/bunup/services/validate_git_version.rb
116
+ - lib/bunup/values/version.rb
128
117
  - lib/bunup/version.rb
129
118
  homepage: https://github.com/singlebrook/bunup
130
119
  licenses:
131
120
  - MIT
132
121
  metadata: {}
133
- post_install_message:
122
+ post_install_message:
134
123
  rdoc_options: []
135
124
  require_paths:
136
125
  - lib
@@ -138,16 +127,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
127
  requirements:
139
128
  - - ">="
140
129
  - !ruby/object:Gem::Version
141
- version: '2.1'
130
+ version: '2.7'
142
131
  required_rubygems_version: !ruby/object:Gem::Requirement
143
132
  requirements:
144
133
  - - ">="
145
134
  - !ruby/object:Gem::Version
146
135
  version: '0'
147
136
  requirements: []
148
- rubyforge_project:
149
- rubygems_version: 2.7.6
150
- signing_key:
137
+ rubygems_version: 3.1.6
138
+ signing_key:
151
139
  specification_version: 4
152
140
  summary: Bundle update and commit to git with one command
153
141
  test_files: []