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 +4 -4
- data/lib/drg/tasks/{progressive_pinner.rb → active_pinner.rb} +7 -9
- data/lib/drg/tasks/updater.rb +10 -1
- data/lib/drg/version.rb +1 -1
- data/lib/drg.rb +1 -2
- data/lib/tasks/drg.rake +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aafc2fa37170cfe295d443356e3485e3c6269cdf
|
4
|
+
data.tar.gz: 5015aaa620204cee4db82f98e60fed0dedf531fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8a049b8b3b1bff5ac9c14555ecf3d1aca85eaa8e944ffe8f7feefe34c851b7fdff4d57a02ca691ad295ec821289b9cbf0a3f18cef02a39a62e01141086d2cfd
|
7
|
+
data.tar.gz: 3e4ddf9f4b52824174b574eb621580988906894ae235522482637ad3c343c6166f60269222a0f07430462282575fc152f8f44fd4882fcb7601f24fe7d68c4ad5
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module DRG
|
2
2
|
module Tasks
|
3
|
-
class
|
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
|
19
|
+
update gem_name
|
20
20
|
else
|
21
21
|
Updater.new.perform do |gems|
|
22
|
-
load_versions gems
|
23
|
-
gems.each
|
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(
|
34
|
-
|
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
|
data/lib/drg/tasks/updater.rb
CHANGED
@@ -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|
|
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
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 :
|
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::
|
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::
|
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::
|
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.
|
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-
|
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
|