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 ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.org
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm ree@gem-outdated
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gem-outdated.gemspec
4
+ gemspec
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
@@ -0,0 +1 @@
1
+ require 'rubygems/commands/outdated_command'
@@ -0,0 +1,3 @@
1
+ module GemOutdated
2
+ VERSION = "0.0.1"
3
+ end
@@ -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
@@ -0,0 +1,4 @@
1
+ require 'rubygems/command_manager'
2
+ require 'gem_outdated'
3
+
4
+ Gem::CommandManager.instance.register_command :outdated
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "GemOutdated" do
4
+ it "passes" do
5
+ true.should == true
6
+ end
7
+ end
@@ -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
+