drg 0.9.0 → 0.9.2

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: 5ece4e76fe57c0056130e3a1809bd13b200ad294
4
- data.tar.gz: 943bbc7a72cf482778304b1eeeedaf5f0efad396
3
+ metadata.gz: aafc2fa37170cfe295d443356e3485e3c6269cdf
4
+ data.tar.gz: 5015aaa620204cee4db82f98e60fed0dedf531fe
5
5
  SHA512:
6
- metadata.gz: 1ad6230949e7d2e883c6203732a92d0a74cd19143bb5a89bac327afc591b1673ede60db4a24e5b9cbb27fbd47385c5f3fcdb79a107cd42318113babf7c10d7ba
7
- data.tar.gz: 669c61428c0ef3b0f8206b29520b45523e023010e4d32ae0e525a96724794eaa10ea06e2bbc0a67a97e6a2e8724967801eec114b805a1924e39b992ce1f9dba7
6
+ metadata.gz: c8a049b8b3b1bff5ac9c14555ecf3d1aca85eaa8e944ffe8f7feefe34c851b7fdff4d57a02ca691ad295ec821289b9cbf0a3f18cef02a39a62e01141086d2cfd
7
+ data.tar.gz: 3e4ddf9f4b52824174b574eb621580988906894ae235522482637ad3c343c6166f60269222a0f07430462282575fc152f8f44fd4882fcb7601f24fe7d68c4ad5
@@ -1,6 +1,6 @@
1
1
  module DRG
2
2
  module Tasks
3
- class ProgessivePinner
3
+ class ActivePinnner
4
4
  include Log
5
5
 
6
6
  attr_reader :gemfile, :type, :updated_gems
@@ -16,13 +16,11 @@ module DRG
16
16
 
17
17
  def perform(gem_name = nil)
18
18
  if gem_name
19
- update ::Bundler.locked_gems.specs.find { |spec| spec.name == gem_name }
19
+ update gem_name
20
20
  else
21
21
  Updater.new.perform do |gems|
22
- load_versions gems.map &:name
23
- gems.each do |gem|
24
- update ::Bundler.locked_gems.specs.find { |spec| spec.name == gem.name }
25
- end
22
+ load_versions gems
23
+ gems.each &method(:update)
26
24
  end
27
25
  end
28
26
  gemfile.write if gemfile.saved_lines.any?
@@ -30,8 +28,9 @@ module DRG
30
28
  end
31
29
 
32
30
  # @note calls #latest_minor_version and #latest_patch_version
33
- def update(spec)
34
- gem = gemfile.find_by_name spec.name
31
+ def update(gem_name)
32
+ spec = ::Bundler.locked_gems.specs.find { |spec| spec.name == gem_name }
33
+ gem = spec && gemfile.find_by_name(spec.name)
35
34
  if gem
36
35
  latest_version = public_send("latest_#{type}_version", spec.name, spec.version)
37
36
  if latest_version
@@ -96,7 +95,6 @@ module DRG
96
95
  end
97
96
 
98
97
  def load_gem_versions(gems)
99
- gems.reject! { |gem_name| gemfile.find_by_name(gem_name).nil? }
100
98
  log %Q(Searching for latest #{type} versions of #{gems.join(' ')} ...)
101
99
  `gem query -ra #{gems.join(' ')}`
102
100
  end
@@ -3,6 +3,12 @@ module DRG
3
3
  class Updater
4
4
  include Log
5
5
 
6
+ attr_reader :gemfile
7
+
8
+ def initialize
9
+ @gemfile = Gemfile.new
10
+ end
11
+
6
12
  # Loads the current version of outdated gems
7
13
  #
8
14
  # @note `bundle outdated` returns lines that look like 'slop (newest 4.2.0, installed 3.6.0) in group "default"'
@@ -10,7 +16,10 @@ module DRG
10
16
  def perform
11
17
  log 'Searching for outdated gems ....'
12
18
  outdated = `bundle outdated`.scan(/\s\*\s(.+)\s/).flatten
13
- gems = outdated.map { |item| OpenStruct.new(name: item[/([\-\w0-9]+)\s/, 1]) }
19
+ gems = outdated.map { |item|
20
+ name = item[/([\-\w0-9]+)\s/, 1]
21
+ name if gemfile.find_by_name(name)
22
+ }.compact
14
23
  if gems.any?
15
24
  yield gems
16
25
  else
data/lib/drg/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DRG
2
- VERSION = '0.9.0'.freeze
2
+ VERSION = '0.9.2'.freeze
3
3
  end
data/lib/drg.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require 'ostruct'
2
2
  require 'set'
3
3
  require 'bundler'
4
- require 'bundler/cli'
5
4
  require 'drg/version'
6
5
  require 'duck_puncher'
7
6
  require 'highline/import'
@@ -18,7 +17,7 @@ module DRG
18
17
  module Tasks
19
18
  autoload :Updater, 'drg/tasks/updater'
20
19
  autoload :Pinner, 'drg/tasks/pinner'
21
- autoload :ProgessivePinner, 'drg/tasks/progressive_pinner'
20
+ autoload :ActivePinnner, 'drg/tasks/active_pinner'
22
21
  autoload :Gemfile, 'drg/tasks/gemfile'
23
22
  autoload :GemfileLine, 'drg/tasks/gemfile_line'
24
23
  autoload :Log, 'drg/tasks/log'
data/lib/tasks/drg.rake CHANGED
@@ -29,17 +29,17 @@ namespace :drg do
29
29
 
30
30
  desc 'Pins all gems [or the requested gem] to the latest version'
31
31
  task :latest, [:gem_name] do |_, options|
32
- DRG::Tasks::ProgessivePinner.new(:available).perform(options[:gem_name])
32
+ DRG::Tasks::ActivePinnner.new(:available).perform(options[:gem_name])
33
33
  end
34
34
 
35
35
  desc 'Pins all gems [or the requested gem] to the latest available patch version'
36
36
  task :minor_latest, [:gem_name] do |_, options|
37
- DRG::Tasks::ProgessivePinner.new(:minor).perform(options[:gem_name])
37
+ DRG::Tasks::ActivePinnner.new(:minor).perform(options[:gem_name])
38
38
  end
39
39
 
40
40
  desc 'Pins all gems [or the requested gem] to the latest available minor version'
41
41
  task :patch_latest, [:gem_name] do |_, options|
42
- DRG::Tasks::ProgessivePinner.new(:patch).perform(options[:gem_name])
42
+ DRG::Tasks::ActivePinnner.new(:patch).perform(options[:gem_name])
43
43
  end
44
44
  end
45
45
  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.9.0
4
+ version: 0.9.2
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-20 00:00:00.000000000 Z
11
+ date: 2015-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,11 +110,11 @@ files:
110
110
  - lib/drg/judge.rb
111
111
  - lib/drg/let.rb
112
112
  - lib/drg/scanner.rb
113
+ - lib/drg/tasks/active_pinner.rb
113
114
  - lib/drg/tasks/gemfile.rb
114
115
  - lib/drg/tasks/gemfile_line.rb
115
116
  - lib/drg/tasks/log.rb
116
117
  - lib/drg/tasks/pinner.rb
117
- - lib/drg/tasks/progressive_pinner.rb
118
118
  - lib/drg/tasks/updater.rb
119
119
  - lib/drg/version.rb
120
120
  - lib/tasks/drg.rake