drg 0.9.0 → 0.9.2

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: 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