gem-outdated 0.0.1
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/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Rakefile +14 -0
- data/gem-outdated.gemspec +23 -0
- data/lib/gem_outdated.rb +1 -0
- data/lib/gem_outdated/version.rb +3 -0
- data/lib/rubygems/commands/outdated_command.rb +52 -0
- data/lib/rubygems_plugin.rb +4 -0
- data/spec/gem_outdated_spec.rb +7 -0
- data/spec/spec_helper.rb +12 -0
- metadata +93 -0
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ree@gem-outdated
|
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rspec/core'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
11
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
12
|
+
spec.rcov = true
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "gem_outdated/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "gem-outdated"
|
7
|
+
s.version = GemOutdated::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Gert Goet"]
|
10
|
+
s.email = ["gert@thinkcreate.nl"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{A better gem outdated}
|
13
|
+
s.description = %q{A better gem outdated}
|
14
|
+
|
15
|
+
s.rubyforge_project = "gem-outdated"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_development_dependency 'rspec', '~> 2.3.0'
|
23
|
+
end
|
data/lib/gem_outdated.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'rubygems/commands/outdated_command'
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/dependency'
|
3
|
+
|
4
|
+
class Gem::Commands::OutdatedCommand < Gem::Command
|
5
|
+
def initialize(name = 'outdated',
|
6
|
+
summary = 'Display all gems (containing STRING) that need updates')
|
7
|
+
super name, summary, :name => //
|
8
|
+
end
|
9
|
+
|
10
|
+
def arguments # :nodoc:
|
11
|
+
"STRING fragment of gem name to search for"
|
12
|
+
end
|
13
|
+
|
14
|
+
def usage # :nodoc:
|
15
|
+
"#{program_name} [STRING]"
|
16
|
+
end
|
17
|
+
|
18
|
+
def execute
|
19
|
+
string = get_one_optional_argument
|
20
|
+
name = /#{string}/i
|
21
|
+
|
22
|
+
dep = dependency(name)
|
23
|
+
|
24
|
+
outdated(dep).sort.each do |name|
|
25
|
+
local = self.source_index(dep).find_name(name).last
|
26
|
+
|
27
|
+
remote_dep = Gem::Dependency.new local.name, ">= #{local.version}"
|
28
|
+
remotes = Gem::SpecFetcher.fetcher.fetch remote_dep
|
29
|
+
remote = remotes.last.first
|
30
|
+
|
31
|
+
say "#{local.name} (#{local.version} < #{remote.version})"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
def dependency(name)
|
37
|
+
Gem::Dependency.new name, Gem::Requirement.default
|
38
|
+
end
|
39
|
+
|
40
|
+
def specs(dep)
|
41
|
+
Gem.source_index.search(dep)
|
42
|
+
end
|
43
|
+
|
44
|
+
def source_index(dep)
|
45
|
+
name_spec_hash = specs(dep).inject({}){|res,spec| res[spec.name]=spec;res}
|
46
|
+
Gem::SourceIndex.new(name_spec_hash)
|
47
|
+
end
|
48
|
+
|
49
|
+
def outdated(dep)
|
50
|
+
source_index(dep).outdated
|
51
|
+
end
|
52
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'gem_outdated'
|
5
|
+
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
7
|
+
# in ./support/ and its subdirectories.
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gem-outdated
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Gert Goet
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-14 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 3
|
33
|
+
- 0
|
34
|
+
version: 2.3.0
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
description: A better gem outdated
|
38
|
+
email:
|
39
|
+
- gert@thinkcreate.nl
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files: []
|
45
|
+
|
46
|
+
files:
|
47
|
+
- .gitignore
|
48
|
+
- .rvmrc
|
49
|
+
- Gemfile
|
50
|
+
- Rakefile
|
51
|
+
- gem-outdated.gemspec
|
52
|
+
- lib/gem_outdated.rb
|
53
|
+
- lib/gem_outdated/version.rb
|
54
|
+
- lib/rubygems/commands/outdated_command.rb
|
55
|
+
- lib/rubygems_plugin.rb
|
56
|
+
- spec/gem_outdated_spec.rb
|
57
|
+
- spec/spec_helper.rb
|
58
|
+
has_rdoc: true
|
59
|
+
homepage: ""
|
60
|
+
licenses: []
|
61
|
+
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 3
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
version: "0"
|
85
|
+
requirements: []
|
86
|
+
|
87
|
+
rubyforge_project: gem-outdated
|
88
|
+
rubygems_version: 1.3.7
|
89
|
+
signing_key:
|
90
|
+
specification_version: 3
|
91
|
+
summary: A better gem outdated
|
92
|
+
test_files: []
|
93
|
+
|