drg 0.2.1 → 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
  SHA1:
3
- metadata.gz: 972f0293a9e9eb8e473ac7268bf750340df7636a
4
- data.tar.gz: 793af08f5e2602c17f1c7cfc32ff6638bd91b715
3
+ metadata.gz: 8a225b05622730e75686a1128aed86ca6670044d
4
+ data.tar.gz: bfafb71e3ead992a670f928004d2c4d948e1017c
5
5
  SHA512:
6
- metadata.gz: 8b7588a1983e25fc7eacec0973b71ed685e6987fe6f4424594b8adcf263f235658e7acc1fea5db3451f694c7e85dab6b708cb3d460b02a83dd2073c329d93dad
7
- data.tar.gz: d0e143c490e2bff35ff4fd849afc0904bf55e1dbbde92d6854eed80ce389a00f5146120a9a94256d61d865244558718f6b8416ed80d6ef3684891efdb94988db
6
+ metadata.gz: 0bd3f7928f75664c1a66b2c01e0053c803780167c852b4b5f7fe215d3957ef41523cf2d085ef59e8c52ebd403a46d42e9b65cc6c670568bf165303f0ff200a75
7
+ data.tar.gz: 6318a1728ff781d47a03e149d0b728c5508c6a9fdda5263796ef9510acd7dc09c26c677fcb23ab088035e050da6443d7d46fdba547528cb1e8ef0e6a0fb3e4ee
data/README.md CHANGED
@@ -28,7 +28,14 @@ DRG can help you manage your project's gems by updating your Gemfile with pinned
28
28
  rake drg:pin
29
29
  ```
30
30
 
31
- Will also try to update all your gems to the most recent version (coming soon).
31
+ ### Updating Gems
32
+
33
+ DRG can also try to update all outdated gems to the most recent version. It'll update the gem and run your tests. If your
34
+ tests pass, then it'll update your gemfile with the current version. Similar to what Gemnasium offers.
35
+
36
+ ```bash
37
+ rake drg:update
38
+ ```
32
39
 
33
40
  ## Development
34
41
 
data/drg.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_dependency 'ruby_parser', '>= 3.7.0', '< 4.0.0'
20
20
  spec.add_dependency 'ruby2ruby', '>= 2.2.0', '< 3.0.0'
21
- spec.add_dependency 'bundler', '~> 1.7'
21
+ spec.add_dependency 'bundler', '~> 1.10'
22
22
 
23
23
  spec.add_development_dependency 'rake', '~> 10.0'
24
24
  spec.add_development_dependency 'rspec', '>= 3.2', '< 4'
@@ -6,17 +6,22 @@ module DRG
6
6
  def initialize
7
7
  @gemfile = Gemfile.new
8
8
  @versions = {}
9
+ @failures = Set.new
9
10
  end
10
11
 
11
- def perform
12
+ def perform(tries = 2)
12
13
  `bundle outdated`.scan(/\s\*\s(.+)\s/).flatten.each &method(:try_update)
14
+ perform(tries -= 1) if @failures.any? && tries > 1
15
+ gemfile.write
16
+ `bundle` # Install all new dependencies for updated gems
13
17
  end
14
18
 
15
19
  # @param [Item] item from the `bundle outdated` command (e.g. 'slop (newest 4.2.0, installed 3.6.0) in group "default"')
16
20
  def try_update(item)
17
- name = item[/(\w+)\s/, 1]
21
+ name = item[/([\-\w0-9]+)\s/, 1]
18
22
  gem = gemfile.find_by_name(name)
19
23
  return unless gem
24
+ `bundle` # make sure current list is up-to-date
20
25
  latest_version = item[/newest\s([\d.]+)/, 1]
21
26
  log(%Q(Trying to update gem "#{name}" to #{latest_version}))
22
27
  if system("bundle update #{name}")
@@ -24,12 +29,13 @@ module DRG
24
29
  if system('rake')
25
30
  log(%Q(Tests passed after updating "#{name}" to version #{latest_version}))
26
31
  gemfile.update(gem, latest_version)
27
- gemfile.write
28
32
  else
29
33
  log(%Q(Tests failed after updating "#{name}" to version #{latest_version}))
34
+ @failures << name
30
35
  end
31
36
  else
32
37
  log(%Q[Failed to install "#{name}" (#{latest_version})])
38
+ @failures << name
33
39
  end
34
40
  end
35
41
 
data/lib/drg/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Drg
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Buckley
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-16 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby_parser
@@ -56,14 +56,14 @@ dependencies:
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '1.7'
59
+ version: '1.10'
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '1.7'
66
+ version: '1.10'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: rake
69
69
  requirement: !ruby/object:Gem::Requirement