gem-orphaned 0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 483e6a07e953233a2271c0ef1c6742c778f53d80aa43bd857c3ad9d0679ab12d
4
+ data.tar.gz: b8cf5816de0f017727efcc4bbc2dd7c703fb428a8236f581b8beb4f7d8f51fa3
5
+ SHA512:
6
+ metadata.gz: bb09b64986cbea962a5f7e67e249ff5bf12340741efa62431cefa7ca1ff1a72a4799d9a71c859782c9de1a3ca8cd351bb0f90e1fc62e133c6c2e979cded3d025
7
+ data.tar.gz: ccb36f1ae3535de427b5c12c5a60b68ec830ad6c0242d0cb00a3c7377842def47a55849692db3953941d9cd39763a19ec46bf77b74cd6e5057b4a2ea5c7e1ee4
@@ -0,0 +1,2 @@
1
+ .DS_Store
2
+ *.gem
@@ -0,0 +1,2 @@
1
+ require 'rubygems/tasks'
2
+ Gem::Tasks.new
@@ -0,0 +1,22 @@
1
+ #encoding: utf-8
2
+
3
+ require 'rubygems/command'
4
+ require_relative 'lib/gem-orphaned/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'gem-orphaned'
8
+ s.version = Gem::Commands::OrphanedCommand::VERSION
9
+ s.summary = %q{Show orphaned gems}
10
+ s.description = %q{A Ruby gem which shows orphaned gems.}
11
+ s.author = 'John Labovitz'
12
+ s.email = 'johnl@johnlabovitz.com'
13
+ s.homepage = 'https://github.com/jslabovitz/gem-orphaned.git'
14
+ s.license = 'MIT'
15
+ s.files = `git ls-files`.split($/)
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_path = 'lib'
19
+
20
+ s.add_development_dependency 'rake', '~> 12.3'
21
+ s.add_development_dependency 'rubygems-tasks', '~> 0.2'
22
+ end
@@ -0,0 +1,69 @@
1
+ require 'set'
2
+
3
+ class Gem::Commands::OrphanedCommand < Gem::Command
4
+
5
+ PreferredGemsFile = File.expand_path('~/.preferred_gems')
6
+ DefaultPreferredGems = %w{
7
+ bundler
8
+ gem-orphaned
9
+ rubygems-update
10
+ }
11
+
12
+ def initialize
13
+ super 'orphaned', 'Show orphaned gems'
14
+ end
15
+
16
+ def execute
17
+ read_gems
18
+ read_preferred_gems
19
+ check_preferred_gems
20
+ show_orphaned_gems
21
+ end
22
+
23
+ def read_gems
24
+ @gems = {}
25
+ Gem::Specification.each do |spec|
26
+ @gems[spec.name] ||= []
27
+ @gems[spec.name] << spec
28
+ end
29
+ end
30
+
31
+ def read_preferred_gems
32
+ @preferred_gems = DefaultPreferredGems
33
+ @preferred_gems += default_gems
34
+ if File.exist?(PreferredGemsFile)
35
+ data = File.read(PreferredGemsFile)
36
+ lines = data.split("\n").map { |s| s.sub(/#.*/, '').strip }.reject(&:empty?)
37
+ @preferred_gems += lines
38
+ end
39
+ @preferred_gems.uniq!
40
+ end
41
+
42
+ def check_preferred_gems
43
+ @preferred_gems.each do |name|
44
+ unless @gems[name]
45
+ puts "#{name}: in preferred list but not installed"
46
+ end
47
+ end
48
+ end
49
+
50
+ def show_orphaned_gems
51
+ orphaned_gems.each do |spec|
52
+ puts "#{spec.name} (#{spec.version}): orphaned"
53
+ end
54
+ end
55
+
56
+ def default_gems
57
+ @gems.select do |name, specs|
58
+ specs.find(&:default_gem?)
59
+ end.keys
60
+ end
61
+
62
+ def orphaned_gems
63
+ names = @gems.keys - @preferred_gems
64
+ @gems.values_at(*names).map do |specs|
65
+ specs.select { |s| s.dependent_gems.empty? }
66
+ end.flatten
67
+ end
68
+
69
+ end
@@ -0,0 +1,5 @@
1
+ class Gem::Commands::OrphanedCommand
2
+
3
+ VERSION = '0.4'
4
+
5
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems/command_manager'
2
+ require 'rubygems/command'
3
+ require 'rubygems/uninstaller'
4
+
5
+ require 'gem-orphaned/orphaned_command'
6
+ require 'gem-orphaned/version'
7
+
8
+ Gem::CommandManager.instance.register_command(:orphaned)
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gem-orphaned
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.4'
5
+ platform: ruby
6
+ authors:
7
+ - John Labovitz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-03-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '12.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '12.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubygems-tasks
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
41
+ description: A Ruby gem which shows orphaned gems.
42
+ email: johnl@johnlabovitz.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - ".gitignore"
48
+ - Rakefile
49
+ - gem-orphaned.gemspec
50
+ - lib/gem-orphaned/orphaned_command.rb
51
+ - lib/gem-orphaned/version.rb
52
+ - lib/rubygems_plugin.rb
53
+ homepage: https://github.com/jslabovitz/gem-orphaned.git
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.7.6
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Show orphaned gems
77
+ test_files: []