bunup 0.1.0 → 0.3.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: 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: []