gem-prune 2.0.1 → 2.1.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.
- data/lib/gem-prune.rb +1 -3
- data/lib/gem/commands/keep_command.rb +9 -46
- data/lib/gem/commands/prune_command.rb +9 -54
- data/lib/gem/prune/util.rb +30 -0
- data/lib/gem_prune.rb +3 -0
- metadata +6 -4
data/lib/gem-prune.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "rubygems/command"
|
2
|
+
require "rubygems/command_manager"
|
3
|
+
require "gem/prune/util"
|
3
4
|
|
4
5
|
class Gem::Commands::KeepCommand < Gem::Command
|
5
6
|
|
7
|
+
include Gem::Prune::Util
|
8
|
+
|
6
9
|
def initialize
|
7
10
|
super 'keep', 'Mark a gem for keeping'
|
8
11
|
|
@@ -13,54 +16,14 @@ class Gem::Commands::KeepCommand < Gem::Command
|
|
13
16
|
end
|
14
17
|
|
15
18
|
def execute
|
16
|
-
|
19
|
+
keep_gem = get_one_gem_name
|
17
20
|
load_configuration
|
18
|
-
gems_to_keep
|
19
|
-
|
20
|
-
|
21
|
+
entry = gems_to_keep.detect { |(gem, versions)| gem == keep_gem }
|
22
|
+
entry[1] << options[:version]
|
23
|
+
entry[1] = entry[1].uniq.compact
|
21
24
|
save_configuration
|
22
25
|
end
|
23
26
|
|
24
27
|
private ######################################################################
|
25
28
|
|
26
|
-
def load_configuration
|
27
|
-
@configuration ||= begin
|
28
|
-
config = YAML::load_file(settings_filename)
|
29
|
-
config = upgrade_configuration(config) if config.first.first == "keep"
|
30
|
-
unpack_configuration(config)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def save_configuration
|
35
|
-
File.open(settings_filename, "w") do |file|
|
36
|
-
file.puts(YAML::dump(pack_configuration(@configuration)))
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def unpack_configuration(config)
|
41
|
-
config.inject({}) do |memo, (gem, keep)|
|
42
|
-
memo.update(gem => keep)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def pack_configuration(config)
|
47
|
-
config.map do |gem, keep|
|
48
|
-
[gem, keep]
|
49
|
-
end.sort_by(&:first)
|
50
|
-
end
|
51
|
-
|
52
|
-
def upgrade_configuration(config)
|
53
|
-
config["keep"].map do |gem|
|
54
|
-
[gem, []]
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def gems_to_keep
|
59
|
-
@configuration
|
60
|
-
end
|
61
|
-
|
62
|
-
def settings_filename
|
63
|
-
File.expand_path('~/.gem-prune')
|
64
|
-
end
|
65
|
-
|
66
29
|
end
|
@@ -1,11 +1,14 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require "rubygems/command"
|
2
|
+
require "rubygems/command_manager"
|
3
|
+
require "rubygems/uninstaller"
|
4
|
+
require "gem/prune/gem"
|
5
|
+
require "gem/prune/version"
|
6
|
+
require "gem/prune/util"
|
6
7
|
|
7
8
|
class Gem::Commands::PruneCommand < Gem::Command
|
8
9
|
|
10
|
+
include Gem::Prune::Util
|
11
|
+
|
9
12
|
def initialize
|
10
13
|
super 'prune', 'Identify and remove old gems'
|
11
14
|
end
|
@@ -51,42 +54,6 @@ private ######################################################################
|
|
51
54
|
end
|
52
55
|
end
|
53
56
|
|
54
|
-
def load_configuration
|
55
|
-
@configuration ||= begin
|
56
|
-
config = YAML::load_file(settings_filename)
|
57
|
-
config = upgrade_configuration(config) if config.first.first == "keep"
|
58
|
-
unpack_configuration(config)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def save_configuration
|
63
|
-
File.open(settings_filename, "w") do |file|
|
64
|
-
file.puts(YAML::dump(pack_configuration(@configuration)))
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def unpack_configuration(config)
|
69
|
-
config.inject({}) do |memo, (gem, keep)|
|
70
|
-
memo.update(gem => keep)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def pack_configuration(config)
|
75
|
-
config.map do |gem, keep|
|
76
|
-
[gem, keep]
|
77
|
-
end.sort_by(&:first)
|
78
|
-
end
|
79
|
-
|
80
|
-
def upgrade_configuration(config)
|
81
|
-
config["keep"].map do |gem|
|
82
|
-
[gem, []]
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def gems_to_keep
|
87
|
-
@configuration
|
88
|
-
end
|
89
|
-
|
90
57
|
def mark_kept_versions
|
91
58
|
gems.each do |name, gem|
|
92
59
|
mark_kept(gem.versions.sort.last)
|
@@ -110,20 +77,8 @@ private ######################################################################
|
|
110
77
|
version.dependencies.each { |v| mark_kept(v) }
|
111
78
|
end
|
112
79
|
|
113
|
-
def versions_to_keep
|
114
|
-
versions_with_kept_flag(true)
|
115
|
-
end
|
116
|
-
|
117
80
|
def versions_to_prune
|
118
|
-
|
119
|
-
end
|
120
|
-
|
121
|
-
def versions_with_kept_flag(value)
|
122
|
-
gems.map { |name, gem| gem.versions }.flatten.select { |v| v.keep == value }
|
123
|
-
end
|
124
|
-
|
125
|
-
def settings_filename
|
126
|
-
File.expand_path('~/.gem-prune')
|
81
|
+
gems.map { |name, gem| gem.versions }.flatten.select { |v| v.keep == false }
|
127
82
|
end
|
128
83
|
|
129
84
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Gem; module Prune; module Util
|
2
|
+
|
3
|
+
def settings_filename
|
4
|
+
File.expand_path('~/.gem-prune')
|
5
|
+
end
|
6
|
+
|
7
|
+
def gems_to_keep
|
8
|
+
@configuration
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_configuration
|
12
|
+
@configuration ||= File.read(settings_filename).split("\n").map do |line|
|
13
|
+
gem, versions = line.split(' ', 2)
|
14
|
+
versions = versions.to_s.gsub(/[\(\)]/, '').split(', ')
|
15
|
+
[gem, versions]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def save_configuration
|
20
|
+
File.open(settings_filename, "w") do |file|
|
21
|
+
formatted = @configuration.map do |gem, versions|
|
22
|
+
version_string = versions.length.zero? ? "" : " (%s)" % versions.join(", ")
|
23
|
+
"#{gem}#{version_string}"
|
24
|
+
end.join("\n")
|
25
|
+
|
26
|
+
file.puts formatted
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end; end; end
|
data/lib/gem_prune.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem-prune
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 2.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- |
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-
|
20
|
+
date: 2010-10-02 00:00:00 -04:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,9 @@ files:
|
|
97
97
|
- lib/gem/commands/keep_command.rb
|
98
98
|
- lib/gem/commands/prune_command.rb
|
99
99
|
- lib/gem/prune/gem.rb
|
100
|
+
- lib/gem/prune/util.rb
|
100
101
|
- lib/gem/prune/version.rb
|
102
|
+
- lib/gem_prune.rb
|
101
103
|
- lib/rubygems_plugin.rb
|
102
104
|
- spec/gem-prune_spec.rb
|
103
105
|
- spec/spec_helper.rb
|