appraiser 0.1.5 → 0.1.6
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/CHANGELOG +5 -0
- data/README.md +2 -0
- data/Rakefile +8 -0
- data/appraiser.gemspec +2 -0
- data/lib/appraiser/version.rb +1 -1
- data/lib/rubygems/commands/appraiser_command.rb +23 -12
- data/spec/.travis.yml +4 -0
- data/spec/appraiser_spec.rb +220 -2
- data/spec/spec_helper.rb +1 -0
- metadata +85 -62
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Appraiser = a simple rubygems subcommand for Gemfile
|
2
2
|
====================================================
|
3
3
|
|
4
|
+
[](http://travis-ci.org/juno/appraiser)
|
5
|
+
|
4
6
|
`appraiser` displays gem information from `./Gemfile`.
|
5
7
|
|
6
8
|
Like this:
|
data/Rakefile
CHANGED
data/appraiser.gemspec
CHANGED
@@ -36,5 +36,7 @@ appraiser installed as a rubygems subcommand.
|
|
36
36
|
s.add_dependency('colored', ['~> 1.2'])
|
37
37
|
s.add_dependency('json')
|
38
38
|
|
39
|
+
s.add_development_dependency('rake', ['~> 0.9'])
|
39
40
|
s.add_development_dependency('rspec', ['~> 2.3'])
|
41
|
+
s.add_development_dependency('webmock', ['~> 1.7'])
|
40
42
|
end
|
data/lib/appraiser/version.rb
CHANGED
@@ -6,13 +6,17 @@ require 'bundler'
|
|
6
6
|
require 'colored'
|
7
7
|
require 'json'
|
8
8
|
require 'open-uri'
|
9
|
+
require 'stringio'
|
9
10
|
|
10
11
|
require 'appraiser/version'
|
11
12
|
|
12
13
|
class Gem::Commands::AppraiserCommand < Gem::Command
|
14
|
+
|
13
15
|
RUBY_GEMS_URL = 'http://rubygems.org/api/v1/gems/%s.json'
|
16
|
+
|
14
17
|
LINE = '-' * 60
|
15
18
|
|
19
|
+
|
16
20
|
def initialize
|
17
21
|
super 'appraiser', 'Display gem information in ./Gemfile'
|
18
22
|
|
@@ -26,14 +30,22 @@ class Gem::Commands::AppraiserCommand < Gem::Command
|
|
26
30
|
end
|
27
31
|
|
28
32
|
def execute
|
33
|
+
process($stdout)
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
# @param [IO] output
|
40
|
+
def process(output)
|
29
41
|
group = (options[:group] || :default).to_sym
|
30
42
|
|
31
43
|
dependencies_for(group).each do |dependency|
|
32
44
|
json = load_json(dependency.name)
|
33
45
|
|
34
46
|
if json.empty?
|
35
|
-
puts dependency.name.green
|
36
|
-
puts "Source : #{dependency.source.to_s.cyan.underline}"
|
47
|
+
output.puts dependency.name.green
|
48
|
+
output.puts "Source : #{dependency.source.to_s.cyan.underline}"
|
37
49
|
else
|
38
50
|
name = json['name']
|
39
51
|
authors = json['authors']
|
@@ -43,20 +55,18 @@ class Gem::Commands::AppraiserCommand < Gem::Command
|
|
43
55
|
src_uri = json['source_code_uri']
|
44
56
|
info = json['info'].split("\n").first.strip
|
45
57
|
|
46
|
-
puts "#{name.green} (by #{authors})"
|
47
|
-
puts "Downloads: #{downloads.blue}"
|
48
|
-
puts "Project : #{project_uri.cyan.underline}" if project_uri
|
49
|
-
puts "Document : #{doc_uri.cyan.underline}" if doc_uri
|
50
|
-
puts "Source : #{src_uri.cyan.underline}" if src_uri
|
51
|
-
puts info
|
58
|
+
output.puts "#{name.green} (by #{authors})"
|
59
|
+
output.puts "Downloads: #{downloads.blue}"
|
60
|
+
output.puts "Project : #{project_uri.cyan.underline}" if project_uri
|
61
|
+
output.puts "Document : #{doc_uri.cyan.underline}" if doc_uri
|
62
|
+
output.puts "Source : #{src_uri.cyan.underline}" if src_uri
|
63
|
+
output.puts info
|
52
64
|
end
|
53
65
|
|
54
|
-
puts LINE
|
66
|
+
output.puts LINE
|
55
67
|
end
|
56
68
|
end
|
57
69
|
|
58
|
-
private
|
59
|
-
|
60
70
|
# @param [String] gem_name
|
61
71
|
# @return [Hash]
|
62
72
|
def load_json(gem_name)
|
@@ -68,7 +78,7 @@ class Gem::Commands::AppraiserCommand < Gem::Command
|
|
68
78
|
# @param [Symbol] group
|
69
79
|
# @return [Array<Bundler::Dependency>]
|
70
80
|
def dependencies_for(group)
|
71
|
-
Bundler.definition.dependencies.select{ |i| i.groups.include? group }
|
81
|
+
Bundler.definition.dependencies.select { |i| i.groups.include? group }
|
72
82
|
end
|
73
83
|
|
74
84
|
# @param [Integer] number
|
@@ -82,4 +92,5 @@ class Gem::Commands::AppraiserCommand < Gem::Command
|
|
82
92
|
rescue
|
83
93
|
number.to_s
|
84
94
|
end
|
95
|
+
|
85
96
|
end
|
data/spec/.travis.yml
ADDED
data/spec/appraiser_spec.rb
CHANGED
@@ -2,6 +2,224 @@
|
|
2
2
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
4
4
|
|
5
|
-
describe
|
6
|
-
|
5
|
+
describe Gem::Commands::AppraiserCommand do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@rails_json = <<-EOD
|
9
|
+
{"dependencies":{"runtime":[{"name":"actionmailer","requirements":"= 3.0.9"},{"name":"actionpack","requirements":"= 3.0.9"},{"name":"activerecord","requirements":"= 3.0.9"},{"name":"activeresource","requirements":"= 3.0.9"},{"name":"activesupport","requirements":"= 3.0.9"},{"name":"bundler","requirements":"~> 1.0"},{"name":"railties","requirements":"= 3.0.9"}],"development":[]},"name":"rails","downloads":4977205,"info":"Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.","version_downloads":306973,"version":"3.0.9","homepage_uri":"http://www.rubyonrails.org","bug_tracker_uri":"http://rails.lighthouseapp.com/projects/8994-ruby-on-rails","source_code_uri":"http://github.com/rails/rails","gem_uri":"http://rubygems.org/gems/rails-3.0.9.gem","project_uri":"http://rubygems.org/gems/rails","authors":"David Heinemeier Hansson","mailing_list_uri":"http://groups.google.com/group/rubyonrails-talk","documentation_uri":"http://api.rubyonrails.org","wiki_uri":"http://wiki.rubyonrails.org"}
|
10
|
+
EOD
|
11
|
+
|
12
|
+
@empty_json = '{}'
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "Constants" do
|
16
|
+
describe "RUBY_GEMS_URL" do
|
17
|
+
subject { Gem::Commands::AppraiserCommand::RUBY_GEMS_URL }
|
18
|
+
it { should eq('http://rubygems.org/api/v1/gems/%s.json') }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "LINE" do
|
22
|
+
subject { Gem::Commands::AppraiserCommand::LINE }
|
23
|
+
it { should eq('-' * 60) }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# Instance methods
|
29
|
+
|
30
|
+
describe "#usage" do
|
31
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
32
|
+
subject { command.usage }
|
33
|
+
it { should eq('gem appraiser [-g group]') }
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#execute" do
|
37
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
38
|
+
|
39
|
+
it "call #process with STDOUT as output" do
|
40
|
+
command.should_receive(:process).with($stdout)
|
41
|
+
command.execute
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
# private methods
|
47
|
+
|
48
|
+
describe "#process(output)" do
|
49
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
50
|
+
let(:output) { stub(IO).as_null_object }
|
51
|
+
|
52
|
+
context "response body is not empty json" do
|
53
|
+
before do
|
54
|
+
dependencies = []
|
55
|
+
dependencies << stub(Bundler::Dependency, :groups => [:default], :name => 'rails')
|
56
|
+
dependencies << stub(Bundler::Dependency, :groups => [:test], :name => 'rspec')
|
57
|
+
Bundler.stub_chain(:definition, :dependencies) { dependencies }
|
58
|
+
end
|
59
|
+
|
60
|
+
it "retrieves :default group dependency json from RubyGems API" do
|
61
|
+
stub_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').
|
62
|
+
to_return(:status => 200, :body => @rails_json)
|
63
|
+
command.send(:process, output)
|
64
|
+
a_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').should have_been_made.once
|
65
|
+
end
|
66
|
+
|
67
|
+
it "not retrieves :test group dependency json from RubyGems API" do
|
68
|
+
stub_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').
|
69
|
+
to_return(:status => 200, :body => @rails_json)
|
70
|
+
command.send(:process, output)
|
71
|
+
a_request(:get, 'http://rubygems.org/api/v1/gems/rspec.json').should_not have_been_made
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "response body is empty json" do
|
76
|
+
before do
|
77
|
+
@dependency = stub(Bundler::Dependency,
|
78
|
+
:groups => [:default],
|
79
|
+
:name => 'rails',
|
80
|
+
:source => 'git://github.com/tenderlove/nokogiri.git')
|
81
|
+
Bundler.stub_chain(:definition, :dependencies) { [@dependency] }
|
82
|
+
|
83
|
+
stub_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').
|
84
|
+
to_return(:status => 200, :body => @empty_json)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "not raises exception" do
|
88
|
+
expect {
|
89
|
+
command.send(:process, output)
|
90
|
+
}.should_not raise_error
|
91
|
+
end
|
92
|
+
|
93
|
+
it "puts dependency source" do
|
94
|
+
@dependency.should_receive(:source) { 'git://github.com/tenderlove/nokogiri.git' }
|
95
|
+
command.send(:process, output)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "#load_json(gem_name)" do
|
101
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
102
|
+
let(:gem_name) { 'rails' }
|
103
|
+
|
104
|
+
context "open() raises OpenURI::HTTPError exception" do
|
105
|
+
before do
|
106
|
+
stub_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').
|
107
|
+
to_raise(OpenURI::HTTPError.new('error', stub(StringIO)))
|
108
|
+
end
|
109
|
+
|
110
|
+
subject { command.send(:load_json, gem_name) }
|
111
|
+
it { should be_kind_of(Hash) }
|
112
|
+
it { should be_empty }
|
113
|
+
end
|
114
|
+
|
115
|
+
context "open() returns JSON response" do
|
116
|
+
before do
|
117
|
+
stub_request(:get, 'http://rubygems.org/api/v1/gems/rails.json').
|
118
|
+
to_return(:status => 200, :body => @rails_json)
|
119
|
+
|
120
|
+
@result = command.send(:load_json, gem_name)
|
121
|
+
end
|
122
|
+
|
123
|
+
it "have key 'name'" do
|
124
|
+
@result.should have_key('name')
|
125
|
+
@result['name'].should eq('rails')
|
126
|
+
end
|
127
|
+
|
128
|
+
it "have key 'authors'" do
|
129
|
+
@result.should have_key('authors')
|
130
|
+
@result['authors'].should eq('David Heinemeier Hansson')
|
131
|
+
end
|
132
|
+
|
133
|
+
it "have key 'downloads'" do
|
134
|
+
@result.should have_key('downloads')
|
135
|
+
@result['downloads'].should eq(4977205)
|
136
|
+
end
|
137
|
+
|
138
|
+
it "have key 'project_uri'" do
|
139
|
+
@result.should have_key('project_uri')
|
140
|
+
@result['project_uri'].should eq('http://rubygems.org/gems/rails')
|
141
|
+
end
|
142
|
+
|
143
|
+
it "have key 'documentation_uri'" do
|
144
|
+
@result.should have_key('documentation_uri')
|
145
|
+
@result['documentation_uri'].should eq('http://api.rubyonrails.org')
|
146
|
+
end
|
147
|
+
|
148
|
+
it "have key 'source_code_uri'" do
|
149
|
+
@result.should have_key('source_code_uri')
|
150
|
+
@result['source_code_uri'].should eq('http://github.com/rails/rails')
|
151
|
+
end
|
152
|
+
|
153
|
+
it "have key 'info'" do
|
154
|
+
@result.should have_key('info')
|
155
|
+
@result['info'].should eq("Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.")
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe "#dependencies_for(group)" do
|
161
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
162
|
+
let(:group) { :development }
|
163
|
+
|
164
|
+
it "should call Bundler.definition.dependencies.select" do
|
165
|
+
dependencies = []
|
166
|
+
dependencies << stub(Bundler::Dependency, :groups => [:default])
|
167
|
+
dependencies << stub(Bundler::Dependency, :groups => [:development])
|
168
|
+
dependencies << stub(Bundler::Dependency, :groups => [:development, :test])
|
169
|
+
Bundler.stub_chain(:definition, :dependencies) { dependencies }
|
170
|
+
|
171
|
+
result = command.send(:dependencies_for, group)
|
172
|
+
result.should have(2).dependencies
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
describe "#number_with_delimiter(number, delimiter = ',', separator = '.')" do
|
177
|
+
let(:command) { Gem::Commands::AppraiserCommand.new }
|
178
|
+
|
179
|
+
context "number is 0" do
|
180
|
+
let(:number) { 0 }
|
181
|
+
subject { command.send(:number_with_delimiter, number) }
|
182
|
+
it { should eq('0') }
|
183
|
+
end
|
184
|
+
|
185
|
+
context "number is 100" do
|
186
|
+
let(:number) { 100 }
|
187
|
+
subject { command.send(:number_with_delimiter, number) }
|
188
|
+
it { should eq('100') }
|
189
|
+
end
|
190
|
+
|
191
|
+
context "number is 1000" do
|
192
|
+
let(:number) { 1000 }
|
193
|
+
subject { command.send(:number_with_delimiter, number) }
|
194
|
+
it { should eq('1,000') }
|
195
|
+
end
|
196
|
+
|
197
|
+
context "number is 10000.99" do
|
198
|
+
let(:number) { 10000.99 }
|
199
|
+
subject { command.send(:number_with_delimiter, number) }
|
200
|
+
it { should eq('10,000.99') }
|
201
|
+
end
|
202
|
+
|
203
|
+
context "number is 1000000" do
|
204
|
+
let(:number) { 1000000 }
|
205
|
+
subject { command.send(:number_with_delimiter, number) }
|
206
|
+
it { should eq('1,000,000') }
|
207
|
+
end
|
208
|
+
|
209
|
+
context "number is 1000000, delimiter is '_'" do
|
210
|
+
let(:number) { 1000000 }
|
211
|
+
let(:delimiter) { '_' }
|
212
|
+
subject { command.send(:number_with_delimiter, number, delimiter) }
|
213
|
+
it { should eq('1_000_000') }
|
214
|
+
end
|
215
|
+
|
216
|
+
context "number is '1000000 00', delimiter is '_', separator is ' '" do
|
217
|
+
let(:number) { 1000000 }
|
218
|
+
let(:delimiter) { '_' }
|
219
|
+
let(:separator) { ' ' }
|
220
|
+
subject { command.send(:number_with_delimiter, number, delimiter, separator) }
|
221
|
+
it { should eq('1_000_000') }
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
7
225
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
5
|
|
6
6
|
require 'rspec'
|
7
|
+
require 'webmock/rspec'
|
7
8
|
require 'rubygems/commands/appraiser_command'
|
8
9
|
|
9
10
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
metadata
CHANGED
@@ -1,72 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: appraiser
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.6
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.5
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Junya Ogura
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-16 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: bundler
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70340450938180 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
18
|
+
requirements:
|
22
19
|
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: colored
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70340450938180
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: colored
|
27
|
+
requirement: &70340450937280 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
29
|
+
requirements:
|
33
30
|
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
36
33
|
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: json
|
40
34
|
prerelease: false
|
41
|
-
|
35
|
+
version_requirements: *70340450937280
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: json
|
38
|
+
requirement: &70340450936480 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version:
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
47
44
|
type: :runtime
|
48
|
-
|
49
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70340450936480
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &70340450935120 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.9'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70340450935120
|
58
|
+
- !ruby/object:Gem::Dependency
|
50
59
|
name: rspec
|
60
|
+
requirement: &70340450934240 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '2.3'
|
66
|
+
type: :development
|
51
67
|
prerelease: false
|
52
|
-
|
68
|
+
version_requirements: *70340450934240
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: &70340450933340 !ruby/object:Gem::Requirement
|
53
72
|
none: false
|
54
|
-
requirements:
|
73
|
+
requirements:
|
55
74
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.7'
|
58
77
|
type: :development
|
59
|
-
|
60
|
-
|
61
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70340450933340
|
80
|
+
description: ! '`appraiser` is a rubygems subcommand which displays gem information
|
81
|
+
in `./Gemfile`.'
|
82
|
+
email:
|
62
83
|
- junyaogura@gmail.com
|
63
84
|
executables: []
|
64
|
-
|
65
85
|
extensions: []
|
66
|
-
|
67
86
|
extra_rdoc_files: []
|
68
|
-
|
69
|
-
files:
|
87
|
+
files:
|
70
88
|
- .gitignore
|
71
89
|
- .rspec
|
72
90
|
- CHANGELOG
|
@@ -78,37 +96,42 @@ files:
|
|
78
96
|
- lib/appraiser/version.rb
|
79
97
|
- lib/rubygems/commands/appraiser_command.rb
|
80
98
|
- lib/rubygems_plugin.rb
|
99
|
+
- spec/.travis.yml
|
81
100
|
- spec/appraiser_spec.rb
|
82
101
|
- spec/spec_helper.rb
|
83
|
-
has_rdoc: true
|
84
102
|
homepage: https://github.com/juno/appraiser
|
85
|
-
licenses:
|
103
|
+
licenses:
|
86
104
|
- MIT
|
87
|
-
post_install_message: "\n\
|
88
|
-
|
105
|
+
post_install_message: ! "\nappraiser installed as a rubygems subcommand.\n\n (basic)\n
|
106
|
+
\ $ gem appraiser\n\n (shorthand)\n $ gem a\n\n (\"group\" option)\n $ gem a
|
107
|
+
-g test\n\n"
|
89
108
|
rdoc_options: []
|
90
|
-
|
91
|
-
require_paths:
|
109
|
+
require_paths:
|
92
110
|
- lib
|
93
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
112
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version:
|
99
|
-
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
segments:
|
118
|
+
- 0
|
119
|
+
hash: 2701355711312284477
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
121
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version:
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
hash: 2701355711312284477
|
105
129
|
requirements: []
|
106
|
-
|
107
130
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.6
|
131
|
+
rubygems_version: 1.8.6
|
109
132
|
signing_key:
|
110
133
|
specification_version: 3
|
111
|
-
summary: `appraiser` is a simple rubygems subcommand for Gemfile.
|
112
|
-
test_files:
|
134
|
+
summary: ! '`appraiser` is a simple rubygems subcommand for Gemfile.'
|
135
|
+
test_files:
|
113
136
|
- spec/appraiser_spec.rb
|
114
137
|
- spec/spec_helper.rb
|