drg 0.2.1 → 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
  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