gem-orphaned 0.4

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.
@@ -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: []