gem-search 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a808ed1d9a953aeb810b77ce422aa6540ae111dd
4
+ data.tar.gz: f3eaa15d3276792420103a670b318dc3ef90cc1d
5
+ SHA512:
6
+ metadata.gz: 4cae323278b375959825d1dcb76af2714327e8872e8ae50b03520ad0ad98e372fa18b68693dbf37b2e141547be8d873b191b767282fdc84feed2bc8055bb174f
7
+ data.tar.gz: 29c0b9ab724445931b78dee6753709294555ebfc91bea9ada7a822248f4977b804005f6779173c38864f5ccd2ec41f32bfc27d42d46724585ed27488f87c5a24
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.rbc
3
+ .DS_Store
3
4
  .bundle
4
5
  .config
5
6
  .yardoc
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format d
3
+ --warnings
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
1
  [![Build Status](https://secure.travis-ci.org/rochefort/gem-search.png)](http://travis-ci.org/rochefort/gem-search)
2
+ [![Dependency Status](https://gemnasium.com/rochefort/gem-search.png)](https://gemnasium.com/rochefort/gem-search)
3
+ [![Code Climate](https://codeclimate.com/github/rochefort/gem-search.png)](https://codeclimate.com/github/rochefort/gem-search)
4
+ [![Gem Version](https://badge.fury.io/rb/gem-search.svg)](http://badge.fury.io/rb/gem-search)
2
5
 
3
6
  # gem-search
4
7
 
data/Rakefile CHANGED
@@ -1,12 +1,6 @@
1
1
  #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
3
5
 
4
6
  task :default => [:spec]
5
- begin
6
- require 'rspec/core/rake_task'
7
- RSpec::Core::RakeTask.new(:spec) do |spec|
8
- spec.pattern = 'spec/**/*_spec.rb'
9
- spec.rspec_opts = ['-cfs']
10
- end
11
- rescue LoadError => e
12
- end
@@ -1,36 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- require 'slop'
3
-
4
- def opt_description(msgs)
5
- ind = ' ' * 22
6
- msgs.inject { |rtn, msg| rtn << "\n#{ind}#{msg}" }
7
- end
8
-
9
- opts = Slop.parse(help: true) do
10
- banner "Usage: gem-search gem_name [options]\n"
11
- on :s, :sort, opt_description([
12
- 'Sort by the item.',
13
- ' [n]ame :default eg. gem-search webkit',
14
- ' [v]er :DL(ver) eg. gem-search webkit -s v',
15
- ' [a]ll :DL(all) eg. gem-search webkit -s a'
16
- ]), :argument => :optional
17
- on :v, :version, 'Display the version.'
18
- end
19
-
20
- OPT_SORT = {
21
- 'v' => 'version_downloads',
22
- 'a' => 'downloads',
23
- }
24
-
25
- puts opts and exit if (ARGV.size == 0) && (!opts.to_hash.values.include?(true))
26
- exit if opts['h']
27
-
28
- $:.unshift File.dirname(__FILE__) + '/../lib'
2
+ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
29
3
  require 'gem-search'
30
- if opts['v']
31
- puts "gem-search #{Gem::Search::VERSION}"
32
- exit
33
- end
34
4
 
35
- gs = Gem::Search::CLI.new
36
- gs.search(ARGV[0], OPT_SORT[opts['sort']])
5
+ Gem::Search::Command.new.run
6
+
@@ -1,4 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
1
  require File.expand_path('../lib/gem-search/version', __FILE__)
3
2
 
4
3
  Gem::Specification.new do |gem|
@@ -15,10 +14,12 @@ Gem::Specification.new do |gem|
15
14
  gem.require_paths = ["lib"]
16
15
  gem.version = Gem::Search::VERSION
17
16
 
18
- gem.add_dependency 'slop'
19
- gem.add_dependency 'json'
17
+ gem.add_dependency 'slop', '~>3.5.0'
18
+ gem.add_dependency 'json', '~>1.8.1'
20
19
 
21
- gem.add_development_dependency 'webmock'
22
- gem.add_development_dependency 'rake', '~> 0.9.2.2'
23
- gem.add_development_dependency 'rdoc', '~> 3.12'
20
+ gem.add_development_dependency 'webmock', '~>1.17.4'
21
+ gem.add_development_dependency 'rake', '~> 0.9.2.2'
22
+
23
+ gem.add_development_dependency 'rspec', '~> 2.14.1'
24
+ gem.add_development_dependency 'simplecov', '~> 0.8.2'
24
25
  end
@@ -1,2 +1,9 @@
1
- require 'gem-search/version'
2
- require 'gem-search/cli'
1
+ module Gem
2
+ module Search
3
+ class LibraryNotFound < StandardError; end
4
+ autoload :Command , 'gem-search/command'
5
+ autoload :Executor , 'gem-search/executor'
6
+ autoload :Rendering, 'gem-search/rendering'
7
+ autoload :VERSION , 'gem-search/version'
8
+ end
9
+ end
@@ -0,0 +1,61 @@
1
+ require 'slop'
2
+
3
+ class Slop
4
+ def opt_description(msgs)
5
+ ind = ' ' * 22
6
+ msgs.inject { |rtn, msg| rtn << "\n#{ind}#{msg}" }
7
+ end
8
+ end
9
+
10
+ module Gem::Search
11
+ class Command
12
+ ENABLE_SORT_OPT = {
13
+ 'v' => 'version_downloads',
14
+ 'a' => 'downloads',
15
+ }
16
+
17
+ OPTS = Slop.parse(help: true) do
18
+ banner "Usage: gem-search gem_name [options]\n"
19
+ on :s, :sort, opt_description([
20
+ 'Sort by the item.',
21
+ ' [n]ame :default eg. gem-search webkit',
22
+ ' [v]er :DL(ver) eg. gem-search webkit -s v',
23
+ ' [a]ll :DL(all) eg. gem-search webkit -s a'
24
+ ]), :argument => :optional
25
+ on :v, :version, 'Display the version.'
26
+ end
27
+
28
+ def run
29
+ version if OPTS['v']
30
+ validate
31
+
32
+ gs = Executor.new
33
+ gs.search(ARGV[0], ENABLE_SORT_OPT[OPTS['sort']])
34
+ rescue LibraryNotFound => e
35
+ puts e.message
36
+ abort
37
+ rescue => e
38
+ puts "An unexpected #{e.class} has occurred."
39
+ puts e.message
40
+ abort
41
+ end
42
+
43
+ private
44
+ def version
45
+ puts "gem-search #{Gem::Search::VERSION}"
46
+ exit
47
+ end
48
+
49
+ def validate
50
+ if (ARGV.size == 0)
51
+ puts OPTS
52
+ abort
53
+ end
54
+
55
+ if ARGV.any? { |arg| arg.match(/\A-/) }
56
+ puts OPTS
57
+ exit
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,49 @@
1
+ require 'json'
2
+ require 'open-uri'
3
+
4
+ module Gem::Search
5
+ class Executor
6
+ include Gem::Search::Rendering
7
+ BASE_URL = 'https://rubygems.org'
8
+ SEARCH_URL = "#{BASE_URL}/api/v1/search.json?query=%s&page=%d"
9
+ MAX_REQUEST_COUNT = 20
10
+
11
+ def search(query, opt_sort='name')
12
+ return unless query
13
+
14
+ print 'Searching '
15
+ gems = []
16
+ (1..MAX_REQUEST_COUNT).each do |n|
17
+ print '.'
18
+ url = SEARCH_URL % [query, n]
19
+ gems_by_page = search_rubygems(url)
20
+ break if gems_by_page.size.zero?
21
+ gems += gems_by_page
22
+ end
23
+ puts
24
+
25
+ raise Gem::Search::LibraryNotFound, 'We did not find results.' if gems.size.zero?
26
+ gems_sort!(gems, opt_sort)
27
+ Executor.render(gems)
28
+ end
29
+
30
+ private
31
+ def search_rubygems(url)
32
+ option = {}
33
+ proxy = URI.parse(url).find_proxy
34
+ if proxy && proxy.user && proxy.password
35
+ option[:proxy_http_basic_authentication] = [proxy, proxy.user, proxy.password]
36
+ end
37
+ JSON.parse(open(url, option).read)
38
+ end
39
+
40
+ def gems_sort!(gems, opt_sort)
41
+ if opt_sort == 'name'
42
+ gems.sort!{ |x,y| x[opt_sort] <=> y[opt_sort] }
43
+ else
44
+ gems.sort!{ |x,y| y[opt_sort] <=> x[opt_sort] }
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,42 @@
1
+ module Gem::Search
2
+ module Rendering
3
+ DEFAULT_RULED_LINE_SIZE = [50, 8, 9]
4
+
5
+ def self.included(base)
6
+ base.extend(self)
7
+ end
8
+
9
+ def render(gems)
10
+ set_ruled_line_size(gems)
11
+ render_to_header
12
+ render_to_body(gems)
13
+ end
14
+
15
+ private
16
+ def set_ruled_line_size(gems)
17
+ max_name_size = gems.map { |gem| "#{gem['name'] } (#{gem['version']})".size }.max
18
+ if max_name_size > DEFAULT_RULED_LINE_SIZE[0]
19
+ DEFAULT_RULED_LINE_SIZE[0] = max_name_size
20
+ end
21
+ end
22
+
23
+ def render_to_header
24
+ f=DEFAULT_RULED_LINE_SIZE
25
+ fmt = "%-#{f[0]}s %#{f[1]}s %#{f[2]}s"
26
+ puts fmt % ['NAME', 'DL(ver)', 'DL(all)']
27
+ puts fmt % ['-'*f[0], '-'*f[1], '-'*f[2]]
28
+ end
29
+
30
+ def render_to_body(gems)
31
+ f=DEFAULT_RULED_LINE_SIZE
32
+ fmt = "%-#{f[0]}s %#{f[1]}d %#{f[2]}d"
33
+ gems.each do |gem|
34
+ puts fmt % [
35
+ "#{gem['name']} (#{gem['version']})",
36
+ gem['version_downloads'],
37
+ gem['downloads']
38
+ ]
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,3 @@
1
1
  module Gem::Search
2
- VERSION = "0.0.8"
2
+ VERSION = '0.0.9'
3
3
  end
@@ -30,6 +30,12 @@ describe 'bin/gem-search' do
30
30
  it_behaves_like 'display an usage'
31
31
  end
32
32
 
33
+ # non-exisitng option: -x
34
+ context 'with -x' do
35
+ subject { `#{BIN} -x` }
36
+ it_behaves_like 'display an usage'
37
+ end
38
+
33
39
  context 'with -v' do
34
40
  subject { `#{BIN} -v` }
35
41
  it 'should display an usage' do
@@ -0,0 +1,293 @@
1
+ require 'spec_helper'
2
+
3
+ include Gem::Search
4
+
5
+ describe Executor do
6
+ describe '#search' do
7
+ before do
8
+ @executor = Gem::Search::Executor.new
9
+ end
10
+
11
+ context 'when a network error occurred' do
12
+ before do
13
+ stub_request(:get, build_search_uri(query, 1)).
14
+ to_return(:status => 500, :body => '[]')
15
+ end
16
+ let(:query) {'network_error_orccurred'}
17
+ it { expect{ @executor.search(query) }.to raise_error(Exception) }
18
+ end
19
+
20
+ context 'when no matching gem' do
21
+ before { stub_request_no_result_with_page(1) }
22
+ let(:query) {'no_match_gem_name'}
23
+ it { expect{ @executor.search(query) }.to raise_error(LibraryNotFound) }
24
+ end
25
+
26
+ describe 'sorting' do
27
+ before do
28
+ stub_request_search(1, dummy_search_result)
29
+ stub_request_no_result_with_page(2)
30
+ end
31
+ let(:query) {'factory_girl'}
32
+
33
+ context 'with no sort option' do
34
+ it 'should display rubygems ordering by name' do
35
+ capture(:stdout) { @executor.search(query) }.should == <<-'EOS'.unindent
36
+ |Searching ..
37
+ |NAME DL(ver) DL(all)
38
+ |-------------------------------------------------- -------- ---------
39
+ |factory_girl (3.6.0) 541 2042859
40
+ |factory_girl_generator (0.0.3) 8015 15547
41
+ |factory_girl_rails (3.5.0) 39724 1238780
42
+ EOS
43
+ end
44
+ end
45
+
46
+ context 'with sort option: [v]version_downloads' do
47
+ it "should display rubygems ordering by name" do
48
+ capture(:stdout) { @executor.search(query, 'version_downloads') }.should == <<-'EOS'.unindent
49
+ |Searching ..
50
+ |NAME DL(ver) DL(all)
51
+ |-------------------------------------------------- -------- ---------
52
+ |factory_girl_rails (3.5.0) 39724 1238780
53
+ |factory_girl_generator (0.0.3) 8015 15547
54
+ |factory_girl (3.6.0) 541 2042859
55
+ EOS
56
+ end
57
+ end
58
+
59
+ context 'with sort option: [a]download' do
60
+ it "should display rubygems ordering by name" do
61
+ capture(:stdout) { @executor.search(query, 'download') }.should == <<-'EOS'.unindent
62
+ |Searching ..
63
+ |NAME DL(ver) DL(all)
64
+ |-------------------------------------------------- -------- ---------
65
+ |factory_girl (3.6.0) 541 2042859
66
+ |factory_girl_rails (3.5.0) 39724 1238780
67
+ |factory_girl_generator (0.0.3) 8015 15547
68
+ EOS
69
+ end
70
+ end
71
+ end
72
+
73
+ describe 'multiple page' do
74
+ before do
75
+ stub_request_search(1, load_http_stubs('cucumber-_1.json'))
76
+ stub_request_search(2, load_http_stubs('cucumber-_2.json'))
77
+ stub_request_search(3, load_http_stubs('cucumber-_3.json'))
78
+ stub_request_no_result_with_page(4)
79
+ end
80
+ let(:query) { 'cucumber-' }
81
+ it 'should display rubygems ordering by name' do
82
+ capture(:stdout) { @executor.search(query) }.should == <<-'EOS'.unindent
83
+ |Searching ....
84
+ |NAME DL(ver) DL(all)
85
+ |-------------------------------------------------- -------- ---------
86
+ |autotest-cucumber-notification (0.0.6) 1027 3607
87
+ |calabash-cucumber-cn (0.0.6) 88 88
88
+ |cucumber-ajaxer (0.0.4) 1875 4966
89
+ |cucumber-api-steps (0.13) 1783 36587
90
+ |cucumber-blanket (0.3.0) 324 1674
91
+ |cucumber-cafe (0.0.1) 295 295
92
+ |cucumber-chef (3.0.8) 1545 28881
93
+ |cucumber-cinema (0.8.0) 1309 9294
94
+ |cucumber-core (0.2.0) 316 683
95
+ |cucumber-core (0.2.0) 316 683
96
+ |cucumber-debug (0.0.1) 1702 1702
97
+ |cucumber-en_snippet (0.0.2) 295 565
98
+ |cucumber-farmer (1.0.3) 1573 4398
99
+ |cucumber-formatter-oneline (0.1.0) 413 413
100
+ |cucumber-in-the-yard (1.7.8) 2107 33260
101
+ |cucumber-java (0.0.2) 2113 3656
102
+ |cucumber-jira (0.0.1.beta) 166 166
103
+ |cucumber-json (0.0.2) 2199 3697
104
+ |cucumber-jvm (1.1.6) 204 20913
105
+ |cucumber-loggly (0.3.1) 903 4869
106
+ |cucumber-mingle (1.0.0) 1539 1539
107
+ |cucumber-nagios (0.9.2) 27094 75277
108
+ |cucumber-nc (0.0.2) 162 1362
109
+ |cucumber-newrelic (0.0.2) 1694 3201
110
+ |cucumber-notify (0.0.5) 1168 3348
111
+ |cucumber-openerpscenario (0.1.9.1) 1110 11064
112
+ |cucumber-peel (0.0.1) 1000 1000
113
+ |cucumber-pride (0.0.2) 1272 2321
114
+ |cucumber-profiler (1.0.0) 1171 1171
115
+ |cucumber-puppet (0.3.7) 2974 24374
116
+ |cucumber-rails (1.4.0) 286328 2700475
117
+ |cucumber-rails-training-wheels (1.0.0) 109001 109001
118
+ |cucumber-rails2 (0.3.5) 10776 13172
119
+ |cucumber-rapid7 (0.0.1.beta.1) 101 430
120
+ |cucumber-rapid7 (0.0.1.beta.1) 101 430
121
+ |cucumber-relizy (0.0.2) 1433 2502
122
+ |cucumber-salad (0.4.0) 488 5326
123
+ |cucumber-salad (0.4.0) 488 5326
124
+ |cucumber-scout (0.0.2) 1634 3124
125
+ |cucumber-screenshot (0.3.4) 2241 15704
126
+ |cucumber-selenium-standalone (0.0.3) 1322 3593
127
+ |cucumber-sinatra (0.5.0) 8463 28042
128
+ |cucumber-slice (0.0.2) 629 1199
129
+ |cucumber-slices (0.0.4) 172 649
130
+ |cucumber-sshd (0.1.0) 152 152
131
+ |cucumber-standalone (0.0.1) 1665 1665
132
+ |cucumber-step_writer (0.1.2) 1251 3229
133
+ |cucumber-table (0.0.1) 527 527
134
+ |cucumber-the (1.0.0) 1209 1209
135
+ |cucumber-timecop (0.0.3) 445 820
136
+ |cucumber-timed_formatter (0.1.1) 1066 2165
137
+ |cucumber-to-rally (0.1.3) 1001 3894
138
+ |cucumber-usual_suspects (0.0.1) 1378 1378
139
+ |cucumber-value (0.0.1) 1233 1233
140
+ |cucumber-vimscript (0.0.3) 1097 3316
141
+ |cucumber-voip (0.1.0) 1244 1244
142
+ |cucumber-websteps (0.10.0) 18583 22129
143
+ |cucumber-wordpress (1.3.1) 1346 7458
144
+ |guard-cucumber-js (0.0.2) 1039 1935
145
+ |mattscilipoti-cucumber-rails (0.2.4.2) 1394 3989
146
+ |mattscilipoti_cucumber-rails (0.2.4) 1401 1401
147
+ |tasty-cucumber-client (0.1.10) 1504 11518
148
+ |vagrant-cucumber-host (0.1.14) 163 163
149
+ EOS
150
+ end
151
+ end
152
+
153
+ describe 'ruled NAME line' do
154
+ context 'NAME size is 42' do
155
+ before do
156
+ stub_request_search(1, dummy_search_result_name_size_is_42)
157
+ stub_request_no_result_with_page(2)
158
+ end
159
+ let(:query) {'size_is_42_2345678901234567890123456789012'}
160
+ it "should be 50 characters" do
161
+ capture(:stdout) { @executor.search(query) }.should == <<-'EOS'.unindent
162
+ |Searching ..
163
+ |NAME DL(ver) DL(all)
164
+ |-------------------------------------------------- -------- ---------
165
+ |size_is_42_2345678901234567890123456789012 (0.0.1) 100 1000
166
+ EOS
167
+ end
168
+ end
169
+
170
+ context 'NAME size is 43' do
171
+ before do
172
+ stub_request_search(1, dummy_search_result_name_size_is_43)
173
+ stub_request_no_result_with_page(2)
174
+ end
175
+ let(:query) {'size_is_43_23456789012345678901234567890123'}
176
+ it "should be 51 characters" do
177
+ capture(:stdout) { @executor.search(query) }.should == <<-'EOS'.unindent
178
+ |Searching ..
179
+ |NAME DL(ver) DL(all)
180
+ |--------------------------------------------------- -------- ---------
181
+ |size_is_43_23456789012345678901234567890123 (0.0.2) 200 2000
182
+ EOS
183
+ end
184
+ end
185
+ end
186
+ end
187
+
188
+ private
189
+ def stub_request_search(page, body)
190
+ stub_request(:get, build_search_uri(query, page)).to_return(:status => 200, :body => body)
191
+ end
192
+
193
+ def stub_request_no_result_with_page(page)
194
+ stub_request(:get, build_search_uri(query, page)).to_return(:status => 200, :body => '[]')
195
+ end
196
+
197
+ def build_search_uri(query, page)
198
+ Executor::SEARCH_URL % [query, page]
199
+ end
200
+
201
+ def dummy_search_result
202
+ # top 3 gems searching with 'factory_girl'
203
+ # https://rubygems.org/api/v1/search.json?query=factory_girl
204
+ [{"name"=>"factory_girl",
205
+ "downloads"=>2042859,
206
+ "version"=>"3.6.0",
207
+ "version_downloads"=>541,
208
+ "platform"=>"ruby",
209
+ "authors"=>"Josh Clayton, Joe Ferris",
210
+ "info"=>
211
+ "factory_girl provides a framework and DSL for defining and\n using factories - less error-prone, more explicit, and\n all-around easier to work with than fixtures.",
212
+ "project_uri"=>"http://rubygems.org/gems/factory_girl",
213
+ "gem_uri"=>"http://rubygems.org/gems/factory_girl-3.6.0.gem",
214
+ "homepage_uri"=>"https://github.com/thoughtbot/factory_girl",
215
+ "wiki_uri"=>"",
216
+ "documentation_uri"=>"",
217
+ "mailing_list_uri"=>"",
218
+ "source_code_uri"=>"https://github.com/thoughtbot/factory_girl",
219
+ "bug_tracker_uri"=>"",
220
+ "dependencies"=>
221
+ {"development"=>
222
+ [{"name"=>"appraisal", "requirements"=>"~> 0.4"},
223
+ {"name"=>"aruba", "requirements"=>">= 0"},
224
+ {"name"=>"bourne", "requirements"=>">= 0"},
225
+ {"name"=>"cucumber", "requirements"=>"~> 1.1"},
226
+ {"name"=>"mocha", "requirements"=>">= 0"},
227
+ {"name"=>"rspec", "requirements"=>"~> 2.0"},
228
+ {"name"=>"simplecov", "requirements"=>">= 0"},
229
+ {"name"=>"sqlite3-ruby", "requirements"=>">= 0"},
230
+ {"name"=>"timecop", "requirements"=>">= 0"},
231
+ {"name"=>"yard", "requirements"=>">= 0"}],
232
+ "runtime"=>[{"name"=>"activesupport", "requirements"=>">= 3.0.0"}]}},
233
+ {"name"=>"factory_girl_rails",
234
+ "downloads"=>1238780,
235
+ "version"=>"3.5.0",
236
+ "version_downloads"=>39724,
237
+ "platform"=>"ruby",
238
+ "authors"=>"Joe Ferris",
239
+ "info"=>
240
+ "factory_girl_rails provides integration between\n factory_girl and rails 3 (currently just automatic factory definition\n loading)",
241
+ "project_uri"=>"http://rubygems.org/gems/factory_girl_rails",
242
+ "gem_uri"=>"http://rubygems.org/gems/factory_girl_rails-3.5.0.gem",
243
+ "homepage_uri"=>"http://github.com/thoughtbot/factory_girl_rails",
244
+ "wiki_uri"=>nil,
245
+ "documentation_uri"=>nil,
246
+ "mailing_list_uri"=>nil,
247
+ "source_code_uri"=>nil,
248
+ "bug_tracker_uri"=>nil,
249
+ "dependencies"=>
250
+ {"development"=>
251
+ [{"name"=>"aruba", "requirements"=>">= 0"},
252
+ {"name"=>"cucumber", "requirements"=>"~> 1.0.0"},
253
+ {"name"=>"rails", "requirements"=>"= 3.0.7"},
254
+ {"name"=>"rake", "requirements"=>">= 0"},
255
+ {"name"=>"rspec", "requirements"=>"~> 2.6.0"}],
256
+ "runtime"=>
257
+ [{"name"=>"factory_girl", "requirements"=>"~> 3.5.0"},
258
+ {"name"=>"railties", "requirements"=>">= 3.0.0"}]}},
259
+ {"name"=>"factory_girl_generator",
260
+ "downloads"=>15547,
261
+ "version"=>"0.0.3",
262
+ "version_downloads"=>8015,
263
+ "platform"=>"ruby",
264
+ "authors"=>"Les Hill",
265
+ "info"=>"Rails 3 generator for factory_girl",
266
+ "project_uri"=>"http://rubygems.org/gems/factory_girl_generator",
267
+ "gem_uri"=>"http://rubygems.org/gems/factory_girl_generator-0.0.3.gem",
268
+ "homepage_uri"=>"http://github.com/leshill/factory_girl_generator",
269
+ "wiki_uri"=>nil,
270
+ "documentation_uri"=>nil,
271
+ "mailing_list_uri"=>nil,
272
+ "source_code_uri"=>nil,
273
+ "bug_tracker_uri"=>nil,
274
+ "dependencies"=>{"development"=>[], "runtime"=>[]}}
275
+ ].to_json
276
+ end
277
+
278
+ def dummy_search_result_name_size_is_42
279
+ [{"name"=>"size_is_42_2345678901234567890123456789012",
280
+ "downloads"=>1000,
281
+ "version"=>"0.0.1",
282
+ "version_downloads"=>100}
283
+ ].to_json
284
+ end
285
+
286
+ def dummy_search_result_name_size_is_43
287
+ [{"name"=>"size_is_43_23456789012345678901234567890123",
288
+ "downloads"=>2000,
289
+ "version"=>"0.0.2",
290
+ "version_downloads"=>200}
291
+ ].to_json
292
+ end
293
+ end
@@ -0,0 +1 @@
1
+ [{"name":"cucumber-rails","downloads":2700475,"version":"1.4.0","version_downloads":286328,"platform":"ruby","authors":"Aslak Helles\u00f8y, Dennis Bl\u00f6te, Rob Holland","info":"Cucumber Generator and Runtime for Rails","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-rails","gem_uri":"http://rubygems.org/gems/cucumber-rails-1.4.0.gem","homepage_uri":"http://cukes.info","wiki_uri":"http://wiki.github.com/cucumber/cucumber-rails","documentation_uri":"http://cukes.info/","mailing_list_uri":"http://groups.google.com/group/cukes","source_code_uri":"http://github.com/cucumber/cucumber-rails","bug_tracker_uri":"http://github.com/cucumber/cucumber-rails/issues","dependencies":{"development":[{"name":"ammeter","requirements":">= 0.2.9"},{"name":"appraisal","requirements":"~> 0.5.1"},{"name":"aruba","requirements":">= 0.4.11"},{"name":"bcat","requirements":"~> 0.6.2"},{"name":"bundler","requirements":"~> 1.3.5"},{"name":"database_cleaner","requirements":">= 0.7.2"},{"name":"factory_girl","requirements":">= 3.2.0"},{"name":"rake","requirements":">= 0.9.2.2"},{"name":"rdiscount","requirements":"~> 2.0.7"},{"name":"rdoc","requirements":"~> 3.12.2"},{"name":"rspec","requirements":">= 2.2"},{"name":"yard","requirements":"~> 0.8.5.2"}],"runtime":[{"name":"capybara","requirements":">= 1.1.2"},{"name":"cucumber","requirements":">= 1.2.0"},{"name":"nokogiri","requirements":">= 1.5.0"},{"name":"rails","requirements":">= 3.0.0"}]}},{"name":"cucumber-nagios","downloads":75277,"version":"0.9.2","version_downloads":27094,"platform":"ruby","authors":"Lindsay Holmwood","info":"cucumber-nagios helps you write behavioural tests for your systems and infrastructure, that can be plugged into Nagios.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-nagios","gem_uri":"http://rubygems.org/gems/cucumber-nagios-0.9.2.gem","homepage_uri":"http://cucumber-nagios.org/","wiki_uri":"","documentation_uri":"","mailing_list_uri":"","source_code_uri":"http://github.com/auxesis/cucumber-nagios","bug_tracker_uri":"http://github.com/auxesis/cucumber-nagios/issues","dependencies":{"development":[{"name":"rake","requirements":">= 0.8.3"}],"runtime":[{"name":"amqp","requirements":"= 0.6.7"},{"name":"bundler","requirements":"~> 1.0.7"},{"name":"cucumber","requirements":">= 0.10.0"},{"name":"mechanize","requirements":"= 1.0.0"},{"name":"net-ssh","requirements":"~> 2.1.0"},{"name":"rspec","requirements":">= 2.3.0"},{"name":"templater","requirements":">= 1.0.0"},{"name":"webrat","requirements":"= 0.7.2"}]}},{"name":"cucumber-rails-training-wheels","downloads":109001,"version":"1.0.0","version_downloads":109001,"platform":"ruby","authors":"Aslak Helles\u00f8y","info":"Training Wheels for Cucumber-Rails","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-rails-training-wheels","gem_uri":"http://rubygems.org/gems/cucumber-rails-training-wheels-1.0.0.gem","homepage_uri":"http://cukes.info","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"aruba","requirements":">= 0.4.6"},{"name":"database_cleaner","requirements":">= 0.6.7"},{"name":"rails","requirements":">= 3.1.0"},{"name":"rspec","requirements":">= 2.6.0"},{"name":"rspec-rails","requirements":">= 2.6.1"}],"runtime":[{"name":"cucumber-rails","requirements":">= 1.1.1"}]}},{"name":"cucumber-api-steps","downloads":36587,"version":"0.13","version_downloads":1783,"platform":"ruby","authors":"Jay Zeschin","info":"Cucumber steps to easily test REST-based XML and JSON APIs","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-api-steps","gem_uri":"http://rubygems.org/gems/cucumber-api-steps-0.13.gem","homepage_uri":"http://github.com/jayzes/cucumber-api-steps","wiki_uri":"","documentation_uri":"","mailing_list_uri":"","source_code_uri":"http://github.com/jayzes/cucumber-api-steps","bug_tracker_uri":"","dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 1.2.1"},{"name":"jsonpath","requirements":">= 0.1.2"},{"name":"rspec","requirements":">= 2.12.0"}]}},{"name":"cucumber-in-the-yard","downloads":33260,"version":"1.7.8","version_downloads":2107,"platform":"ruby","authors":"Franklin Webber","info":" \n Cucumber-In-The-Yard is a YARD extension that processes Cucumber Features, Scenarios, Steps,\n Step Definitions, Transforms, and Tags and provides a documentation interface that allows you\n easily view and investigate the test suite. This tools hopes to bridge the gap of being able\n to provide your feature descriptions to your Product Owners and Stakeholders. ","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-in-the-yard","gem_uri":"http://rubygems.org/gems/cucumber-in-the-yard-1.7.8.gem","homepage_uri":"http://github.com/burtlo/Cucumber-In-The-Yard","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0.7.5"},{"name":"gherkin","requirements":">= 2.2.9"},{"name":"yard","requirements":">= 0.6.3"}]}},{"name":"cucumber-sinatra","downloads":28042,"version":"0.5.0","version_downloads":8463,"platform":"ruby","authors":"Bernd Ahlers","info":"This little gem will help you to initialize a cucumber environment for a sinatra application. It will generate the required files from templates.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-sinatra","gem_uri":"http://rubygems.org/gems/cucumber-sinatra-0.5.0.gem","homepage_uri":"http://github.com/bernd/cucumber-sinatra","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"templater","requirements":">= 1.0.0"}]}},{"name":"cucumber-puppet","downloads":24374,"version":"0.3.7","version_downloads":2974,"platform":"ruby","authors":"Nikolay Sturm","info":"cucumber-puppet is a tool for behavioral testing of Puppet catalogs","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-puppet","gem_uri":"http://rubygems.org/gems/cucumber-puppet-0.3.7.gem","homepage_uri":"http://projects.puppetlabs.com/projects/cucumber-puppet","wiki_uri":"","documentation_uri":"","mailing_list_uri":"","source_code_uri":"http://github.com/nistude/cucumber-puppet","bug_tracker_uri":"http://github.com/nistude/cucumber-puppet/issues","dependencies":{"development":[{"name":"facter","requirements":"= 1.5.9"},{"name":"puppet","requirements":">= 0"},{"name":"ronn","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"gem-man","requirements":">= 0"},{"name":"templater","requirements":">= 0"}]}},{"name":"cucumber-screenshot","downloads":15704,"version":"0.3.4","version_downloads":2241,"platform":"ruby","authors":"Joel Chippindale","info":"Extension for Cucumber (http://cukes.info/) that makes it easy to take HTML snapshots and also to use Webkit to capture PNG screenshots of your web application during tests","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-screenshot","gem_uri":"http://rubygems.org/gems/cucumber-screenshot-0.3.4.gem","homepage_uri":"http://github.com/mocoso/cucumber-screenshot","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rspec","requirements":"~> 1.3"}],"runtime":[{"name":"cucumber","requirements":"~> 0.9"},{"name":"webrat","requirements":"~> 0.7"}]}},{"name":"cucumber-chef","downloads":28881,"version":"3.0.8","version_downloads":1545,"platform":"ruby","authors":"Stephen Nelson-Smith, Zachary Patten","info":"Framework for test-driven infrastructure development.","licenses":["Apache 2.0"],"project_uri":"http://rubygems.org/gems/cucumber-chef","gem_uri":"http://rubygems.org/gems/cucumber-chef-3.0.8.gem","homepage_uri":"http://www.cucumber-chef.org","wiki_uri":"https://github.com/Atalanta/cucumber-chef/blob/master/WIKI.md","documentation_uri":"","mailing_list_uri":"https://groups.google.com/d/forum/cucumber-chef","source_code_uri":"https://github.com/Atalanta/cucumber-chef","bug_tracker_uri":"","dependencies":{"development":[{"name":"pry","requirements":">= 0"},{"name":"redcarpet","requirements":">= 0"},{"name":"simplecov","requirements":">= 0"},{"name":"yard","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"fog","requirements":">= 1.3.1"},{"name":"mixlib-config","requirements":">= 1.1.2"},{"name":"rake","requirements":">= 0.9.2"},{"name":"rspec","requirements":">= 0"},{"name":"thor","requirements":">= 0.15.2"},{"name":"ubuntu_ami","requirements":">= 0.4.0"},{"name":"ztk","requirements":">= 1.0.9"}]}},{"name":"tasty-cucumber-client","downloads":11518,"version":"0.1.10","version_downloads":1504,"platform":"ruby","authors":"Ivan Schneider, Jessy Bernal","info":"Remote feature management for Cucumber designed to work with the Tasty Cucumber service","licenses":null,"project_uri":"http://rubygems.org/gems/tasty-cucumber-client","gem_uri":"http://rubygems.org/gems/tasty-cucumber-client-0.1.10.gem","homepage_uri":"http://tasty-cucumber.com","wiki_uri":"","documentation_uri":"","mailing_list_uri":"","source_code_uri":"http://github.com/octo-technology/tasty-cucumber-client","bug_tracker_uri":"","dependencies":{"development":[],"runtime":[{"name":"httparty","requirements":">= 0.4.3"}]}},{"name":"cucumber-websteps","downloads":22129,"version":"0.10.0","version_downloads":18583,"platform":"ruby","authors":"kucaahbe","info":"cucumber web steps, designed to work with any of capybara's drivers. Test framework agnostic (you can use them with rspec-1, rspec-2, test/unit and minitest).","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-websteps","gem_uri":"http://rubygems.org/gems/cucumber-websteps-0.10.0.gem","homepage_uri":"http://relishapp.com/kucaahbe/cucumber-websteps","wiki_uri":"https://github.com/kucaahbe/cucumber-websteps/wiki","documentation_uri":"http://relishapp.com/kucaahbe/cucumber-websteps","mailing_list_uri":"","source_code_uri":"https://github.com/kucaahbe/cucumber-websteps","bug_tracker_uri":"https://github.com/kucaahbe/cucumber-websteps/issues","dependencies":{"development":[{"name":"cucumber-sinatra","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":">= 0"},{"name":"sinatra","requirements":">= 0"}],"runtime":[{"name":"capybara","requirements":">= 1.1.2"},{"name":"cucumber","requirements":">= 1.1.1"},{"name":"launchy","requirements":">= 0"}]}},{"name":"cucumber-jvm","downloads":20913,"version":"1.1.6","version_downloads":204,"platform":"java","authors":"Aslak Helles\u00f8y","info":"Cucumber-JVM for JRuby","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-jvm","gem_uri":"http://rubygems.org/gems/cucumber-jvm-1.1.6-java.gem","homepage_uri":"http://github.com/cucumber/cucumber-jvm","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[]}},{"name":"cucumber-rails2","downloads":13172,"version":"0.3.5","version_downloads":10776,"platform":"ruby","authors":"Dennis Bl\u00f6te, Aslak Helles\u00f8y, Rob Holland","info":"Cucumber Generators and Runtime for Rails","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-rails2","gem_uri":"http://rubygems.org/gems/cucumber-rails2-0.3.5.gem","homepage_uri":"https://github.com/Vanuan/cucumber-rails","wiki_uri":"","documentation_uri":"","mailing_list_uri":"","source_code_uri":"https://github.com/Vanuan/cucumber-rails","bug_tracker_uri":"https://github.com/cucumber/cucumber-rails/pull/213","dependencies":{"development":[{"name":"aruba","requirements":">= 0.1.9"}],"runtime":[{"name":"capybara","requirements":"~> 1.1.0"},{"name":"cucumber","requirements":"~> 1.1.0"}]}},{"name":"cucumber-cinema","downloads":9294,"version":"0.8.0","version_downloads":1309,"platform":"ruby","authors":"Ilya Katz","info":"Take a series of screenshots while running your cucumber test suite","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-cinema","gem_uri":"http://rubygems.org/gems/cucumber-cinema-0.8.0.gem","homepage_uri":"http://github.com/ilyakatz/cucumber-cinema","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.2"},{"name":"rcov","requirements":">= 0"},{"name":"shoulda","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"imgkit","requirements":">= 0"},{"name":"mini_magick","requirements":">= 0"}]}},{"name":"cucumber-wordpress","downloads":7458,"version":"1.3.1","version_downloads":1346,"platform":"ruby","authors":"Tom Adams","info":"Environment setup and step definitions for testing WordPress with Cucumber","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-wordpress","gem_uri":"http://rubygems.org/gems/cucumber-wordpress-1.3.1.gem","homepage_uri":"http://github.com/dxw/cucumber-wordpress","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"mechanize","requirements":">= 0"},{"name":"mysql","requirements":">= 0"},{"name":"webrat","requirements":">= 0"}]}},{"name":"cucumber-openerpscenario","downloads":11064,"version":"0.1.9.1","version_downloads":1110,"platform":"ruby","authors":"Nicolas Bessi - Camptocamp","info":"cucumber on OpenERP","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-openerpscenario","gem_uri":"http://rubygems.org/gems/cucumber-openerpscenario-0.1.9.1.gem","homepage_uri":null,"wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"ooor","requirements":">= 1.6.5"},{"name":"ooor-finders","requirements":">= 0"},{"name":"parseconfig","requirements":">= 0"},{"name":"rspec-rails","requirements":">= 0"}]}},{"name":"mattscilipoti-cucumber-rails","downloads":3989,"version":"0.2.4.2","version_downloads":1394,"platform":"ruby","authors":"Dennis Bl\u00f6te, Aslak Helles\u00f8y, Rob Holland","info":"Cucumber Generators and Runtime for Rails","licenses":null,"project_uri":"http://rubygems.org/gems/mattscilipoti-cucumber-rails","gem_uri":"http://rubygems.org/gems/mattscilipoti-cucumber-rails-0.2.4.2.gem","homepage_uri":"http://github.com/aslakhellesoy/cucumber-rails","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0.6.2"}]}},{"name":"cucumber-farmer","downloads":4398,"version":"1.0.3","version_downloads":1573,"platform":"ruby","authors":"Matt Scilipoti","info":"A library of cucumber step definitions, which allow you to use a human to assert conditions during acceptance tests.\n Some requirements are simple for a human to confirm, but are very difficult to assert using automation.\n Farmer allows us to include human confirmation into our normal testing flow.\n For example, we needed to verify that certain portions of an image were 'blacked out'.\n ","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-farmer","gem_uri":"http://rubygems.org/gems/cucumber-farmer-1.0.3.gem","homepage_uri":"http://github.com/mattscilipoti/cucumber-farmer","wiki_uri":"","documentation_uri":"http://github.com/mattscilipoti/cucumber-farmer","mailing_list_uri":"","source_code_uri":"http://github.com/mattscilipoti/cucumber-farmer","bug_tracker_uri":"http://github.com/mattscilipoti/cucumber-farmer/issues","dependencies":{"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"ci_reporter","requirements":"~> 1.6.2"},{"name":"cucumber","requirements":"~> 0.6"},{"name":"jeweler","requirements":"~> 1.4.0"},{"name":"rack-test","requirements":"~> 0.5.0"},{"name":"shoulda","requirements":"~> 2.10"},{"name":"sinatra","requirements":"~> 1.0"},{"name":"webrat","requirements":">= 0"}],"runtime":[{"name":"mattscilipoti-rdialog","requirements":"~> 0.6.1"}]}},{"name":"cucumber-json","downloads":3697,"version":"0.0.2","version_downloads":2199,"platform":"ruby","authors":"Jesse Newland","info":"A cucumber formatter that outputs JSON","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-json","gem_uri":"http://rubygems.org/gems/cucumber-json-0.0.2.gem","homepage_uri":"http://github.com/jnewland/cucumber-json","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":"~> 0.7.3"},{"name":"json_pure","requirements":"~> 1.4.3"}]}},{"name":"cucumber-java","downloads":3656,"version":"0.0.2","version_downloads":2113,"platform":"ruby","authors":"Aslak Helles\u00c3\u0192\u00c2\u00b8y","info":"Cucumber for Java","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-java","gem_uri":"http://rubygems.org/gems/cucumber-java-0.0.2.gem","homepage_uri":"http://cukes.info","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"hoe","requirements":">= 1.11.0"}],"runtime":[{"name":"cucumber","requirements":">= 0.3.0"},{"name":"hoe","requirements":">= 1.11.0"}]}},{"name":"cucumber-ajaxer","downloads":4966,"version":"0.0.4","version_downloads":1875,"platform":"ruby","authors":"Chalo Fernandez","info":"Cucumber should wait for AJAX calls in @javascript Scenarios","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-ajaxer","gem_uri":"http://rubygems.org/gems/cucumber-ajaxer-0.0.4.gem","homepage_uri":"http://github.com/chalofa/cucumber-ajaxer","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"}]}},{"name":"cucumber-newrelic","downloads":3201,"version":"0.0.2","version_downloads":1694,"platform":"ruby","authors":"Jesse Newland","info":"Cucumber steps for verifing metrics from NewRelic's API","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-newrelic","gem_uri":"http://rubygems.org/gems/cucumber-newrelic-0.0.2.gem","homepage_uri":"http://github.com/jnewland/cucumber-newrelic","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"activeresource","requirements":"~> 2.3.8"},{"name":"newrelic_rpm","requirements":"~> 2.10.6"}]}},{"name":"cucumber-scout","downloads":3124,"version":"0.0.2","version_downloads":1634,"platform":"ruby","authors":"Jesse Newland","info":"Cucumber steps for verifing metrics from Scout's API","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-scout","gem_uri":"http://rubygems.org/gems/cucumber-scout-0.0.2.gem","homepage_uri":"http://github.com/jnewland/cucumber-scout","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"scout_scout","requirements":"~> 0.0.4"}]}},{"name":"cucumber-selenium-standalone","downloads":3593,"version":"0.0.3","version_downloads":1322,"platform":"ruby","authors":"Nick Zalabak","info":"generates directory and required files for any type of project needing to test with Cucumber/Capybara/Selenium","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-selenium-standalone","gem_uri":"http://rubygems.org/gems/cucumber-selenium-standalone-0.0.3.gem","homepage_uri":"http://github.com/techwhizbang/cucumber-selenium-standalone","wiki_uri":"","documentation_uri":"http://github.com/techwhizbang/cucumber-selenium-standalone","mailing_list_uri":"","source_code_uri":"http://github.com/techwhizbang/cucumber-selenium-standalone","bug_tracker_uri":"","dependencies":{"development":[],"runtime":[{"name":"bundler","requirements":"~> 1.0.15"},{"name":"capybara","requirements":"= 1.0"},{"name":"cucumber","requirements":"= 1.0.2"},{"name":"cucumber-rails","requirements":"= 1.0.2"},{"name":"nokogiri","requirements":"= 1.5.0"},{"name":"rake","requirements":"= 0.9.2"},{"name":"rspec","requirements":"= 2.6.0"},{"name":"selenium-webdriver","requirements":"= 0.2.2"},{"name":"thor","requirements":"= 0.14.6"}]}},{"name":"cucumber-vimscript","downloads":3316,"version":"0.0.3","version_downloads":1097,"platform":"ruby","authors":"Andrew Radev","info":"Provides step definitions to spawn and command a vim instance","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-vimscript","gem_uri":"http://rubygems.org/gems/cucumber-vimscript-0.0.3.gem","homepage_uri":"http://github.com/AndrewRadev/cucumber-vimscript","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 1.0.2"},{"name":"vimrunner","requirements":">= 0"}]}},{"name":"cucumber-notify","downloads":3348,"version":"0.0.5","version_downloads":1168,"platform":"ruby","authors":"Pavel Argentov","info":"This is now a meta-gem which is only delegating all functionality to 'autotest-cucumber-notification' gem/module.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-notify","gem_uri":"http://rubygems.org/gems/cucumber-notify-0.0.5.gem","homepage_uri":"https://github.com/argent-smith/autotest-cucumber-notification/tree/deprecated","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"gemcutter","requirements":">= 0"}],"runtime":[{"name":"autotest-cucumber-notification","requirements":">= 0"}]}},{"name":"cucumber-to-rally","downloads":3894,"version":"0.1.3","version_downloads":1001,"platform":"ruby","authors":"Pablo Menezes","info":"A gem to make a bridge between Rally and Cucumber Steps","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-to-rally","gem_uri":"http://rubygems.org/gems/cucumber-to-rally-0.1.3.gem","homepage_uri":null,"wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"activeresource","requirements":"= 2.3.4"},{"name":"logger","requirements":">= 1.2.8"},{"name":"rally_rest_api","requirements":">= 1.0.3"}]}},{"name":"cucumber-step_writer","downloads":3229,"version":"0.1.2","version_downloads":1251,"platform":"ruby","authors":"John Bintz","info":"Write out step files for undefined Cucumber steps.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-step_writer","gem_uri":"http://rubygems.org/gems/cucumber-step_writer-0.1.2.gem","homepage_uri":"","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[]}},{"name":"autotest-cucumber-notification","downloads":3607,"version":"0.0.6","version_downloads":1027,"platform":"ruby","authors":"Pavel Argentov","info":"This is an autotest plugin that will notify you about the results of your Cucumber features run.","licenses":null,"project_uri":"http://rubygems.org/gems/autotest-cucumber-notification","gem_uri":"http://rubygems.org/gems/autotest-cucumber-notification-0.0.6.gem","homepage_uri":"https://github.com/evrone/autotest-cucumber-notification","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"gemcutter","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"},{"name":"ZenTest","requirements":">= 0"}]}},{"name":"cucumber-pride","downloads":2321,"version":"0.0.2","version_downloads":1272,"platform":"ruby","authors":"Peter Vandenberk","info":"Mimics the functionality of minitest/pride for Cucumber","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-pride","gem_uri":"http://rubygems.org/gems/cucumber-pride-0.0.2.gem","homepage_uri":"https://github.com/pvdb/cucumber-pride","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rspec","requirements":"~> 2.9.0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.1.1"}]}}]
@@ -0,0 +1 @@
1
+ [{"name":"cucumber-standalone","downloads":1665,"version":"0.0.1","version_downloads":1665,"platform":"ruby","authors":"Jesse Newland","info":"generator for standalone cuke projects","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-standalone","gem_uri":"http://rubygems.org/gems/cucumber-standalone-0.0.1.gem","homepage_uri":"http://github.com/jnewland/cucumber-standalone","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0.9.3"},{"name":"mechanize","requirements":">= 1.0.0"},{"name":"thor","requirements":">= 0.14.4"},{"name":"webrat","requirements":">= 0.7.2"}]}},{"name":"cucumber-relizy","downloads":2502,"version":"0.0.2","version_downloads":1433,"platform":"ruby","authors":"wynst","info":"Patch your cucumber html output with features navigation","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-relizy","gem_uri":"http://rubygems.org/gems/cucumber-relizy-0.0.2.gem","homepage_uri":"https://github.com/wynst/cucumber-relizy","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"coffee-script","requirements":">= 0"},{"name":"nokogiri","requirements":">= 0"}]}},{"name":"cucumber-loggly","downloads":4869,"version":"0.3.1","version_downloads":903,"platform":"ruby","authors":"Brett Weaver","info":"Cucumber log searching pluging for Loggly.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-loggly","gem_uri":"http://rubygems.org/gems/cucumber-loggly-0.3.1.gem","homepage_uri":"https://github.com/brettweavnet/cucumber-loggly","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rspec","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.2.1"},{"name":"loggly-ruby-client","requirements":"~> 0.2.1"},{"name":"rspec","requirements":"~> 2.11.0"},{"name":"trollop","requirements":"= 2.0"}]}},{"name":"mattscilipoti_cucumber-rails","downloads":1401,"version":"0.2.4","version_downloads":1401,"platform":"ruby","authors":"Dennis Bl\u00f6te, Aslak Helles\u00f8y, Rob Holland","info":"Cucumber Generators and Runtime for Rails","licenses":null,"project_uri":"http://rubygems.org/gems/mattscilipoti_cucumber-rails","gem_uri":"http://rubygems.org/gems/mattscilipoti_cucumber-rails-0.2.4.gem","homepage_uri":"http://github.com/aslakhellesoy/cucumber-rails","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":">= 0.6.2"}]}},{"name":"cucumber-mingle","downloads":1539,"version":"1.0.0","version_downloads":1539,"platform":"ruby","authors":"Vincent Xu","info":"Cucumber Mingle Integration","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-mingle","gem_uri":"http://rubygems.org/gems/cucumber-mingle-1.0.0.gem","homepage_uri":null,"wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rake","requirements":"~> 0.8.7"}],"runtime":[{"name":"activeresource","requirements":"~> 3.0.1"},{"name":"cucumber","requirements":"~> 0.9.2"}]}},{"name":"cucumber-timed_formatter","downloads":2165,"version":"0.1.1","version_downloads":1066,"platform":"ruby","authors":"Matthias Viehweger","info":"A progress-formatter with a little more info: Each Scenario is one line and the time is measured.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-timed_formatter","gem_uri":"http://rubygems.org/gems/cucumber-timed_formatter-0.1.1.gem","homepage_uri":"http://github.com/kronn/cucumber-timed_formatter","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":"~> 1.2"}]}},{"name":"guard-cucumber-js","downloads":1935,"version":"0.0.2","version_downloads":1039,"platform":"ruby","authors":"James Harton","info":"Guard gem for cucumber.js","licenses":null,"project_uri":"http://rubygems.org/gems/guard-cucumber-js","gem_uri":"http://rubygems.org/gems/guard-cucumber-js-0.0.2.gem","homepage_uri":"","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":">= 1.0"}],"runtime":[{"name":"guard","requirements":">= 0.10.0"}]}},{"name":"cucumber-usual_suspects","downloads":1378,"version":"0.0.1","version_downloads":1378,"platform":"ruby","authors":"Matt Wynne","info":"Identities for Cucumber step definitions","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-usual_suspects","gem_uri":"http://rubygems.org/gems/cucumber-usual_suspects-0.0.1.gem","homepage_uri":"http://github.com/mattwynne/cucumber-usual_suspects","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"aruba","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 0.10.2"}]}},{"name":"cucumber-debug","downloads":1702,"version":"0.0.1","version_downloads":1702,"platform":"ruby","authors":"David Padilla","info":"Launch a browser snapshot for cucumber failed scenarios","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-debug","gem_uri":"http://rubygems.org/gems/cucumber-debug-0.0.1.gem","homepage_uri":"","wiki_uri":"https://github.com/crowdint/cucumber-debug/wiki","documentation_uri":"https://github.com/crowdint/cucumber-debug","mailing_list_uri":"","source_code_uri":"https://github.com/crowdint/cucumber-debug","bug_tracker_uri":"https://github.com/crowdint/cucumber-debug/issues","dependencies":{"development":[{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber-rails","requirements":">= 0"},{"name":"launchy","requirements":">= 0"}]}},{"name":"cucumber-value","downloads":1233,"version":"0.0.1","version_downloads":1233,"platform":"ruby","authors":"Colin Humphreys","info":"Assert the value of Cucumber features","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-value","gem_uri":"http://rubygems.org/gems/cucumber-value-0.0.1.gem","homepage_uri":"https://github.com/hatofmonkeys/cucumber-value","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"aruba","requirements":">= 0"},{"name":"cucumber","requirements":">= 0"},{"name":"guard","requirements":">= 0"},{"name":"guard-cucumber","requirements":">= 0"},{"name":"guard-rspec","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":">= 0"},{"name":"simplecov","requirements":">= 0"},{"name":"yard","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"}]}},{"name":"cucumber-voip","downloads":1244,"version":"0.1.0","version_downloads":1244,"platform":"ruby","authors":"Ben Langfeld","info":"Automated functional testing of voice applications is typically difficult and expensive. Not so when we can specify our systems using Cucumber.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-voip","gem_uri":"http://rubygems.org/gems/cucumber-voip-0.1.0.gem","homepage_uri":"https://github.com/benlangfeld/cucumber-voip","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":">= 1.0.0"},{"name":"guard-cucumber","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"yard","requirements":">= 0.6.0"}],"runtime":[{"name":"activesupport","requirements":">= 3.0.10"},{"name":"cucumber","requirements":">= 1.0.2"},{"name":"rspec-rayo","requirements":">= 0.3.0"}]}},{"name":"cucumber-profiler","downloads":1171,"version":"1.0.0","version_downloads":1171,"platform":"ruby","authors":"Michael Blumberg","info":"A way to profile the performance of your cucumber features","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-profiler","gem_uri":"http://rubygems.org/gems/cucumber-profiler-1.0.0.gem","homepage_uri":"https://github.com/mblum14/cucumber-profiler","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":"~> 1.2.1"}]}},{"name":"cucumber-nc","downloads":1362,"version":"0.0.2","version_downloads":162,"platform":"ruby","authors":"Jon Frisby, Odin Dutton","info":"https://github.com/MrJoy/cucumber-nc","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-nc","gem_uri":"http://rubygems.org/gems/cucumber-nc-0.0.2.gem","homepage_uri":"https://github.com/MrJoy/cucumber-nc","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"cucumber","requirements":"~> 1.2"},{"name":"terminal-notifier","requirements":"~> 1.4.2"}]}},{"name":"cucumber-the","downloads":1209,"version":"1.0.0","version_downloads":1209,"platform":"ruby","authors":"Magnus Bergmark","info":"Adds quick access to instances to help you write more fluid steps.","licenses":null,"project_uri":"http://rubygems.org/gems/cucumber-the","gem_uri":"http://rubygems.org/gems/cucumber-the-1.0.0.gem","homepage_uri":"","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"rspec","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.2"}]}},{"name":"cucumber-cafe","downloads":295,"version":"0.0.1","version_downloads":295,"platform":"ruby","authors":"Faraaz Khan","info":"CAFE: Business IDE For Cucumber ","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-cafe","gem_uri":"http://rubygems.org/gems/cucumber-cafe-0.0.1.gem","homepage_uri":"","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.4"},{"name":"rake","requirements":">= 0"}],"runtime":[]}},{"name":"cucumber-blanket","downloads":1674,"version":"0.3.0","version_downloads":324,"platform":"ruby","authors":"Keyvan Fatehi","info":"Extract Blanket.js code coverage data from within a Ruby Cucumber environment","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-blanket","gem_uri":"http://rubygems.org/gems/cucumber-blanket-0.3.0.gem","homepage_uri":"https://github.com/keyvanfatehi/cucumber-blanket","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"guard-rspec","requirements":">= 0"},{"name":"pry","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}],"runtime":[{"name":"haml","requirements":">= 0"}]}},{"name":"cucumber-core","downloads":683,"version":"0.2.0","version_downloads":316,"platform":"ruby","authors":"Aslak Helles\u00f8y, Matt Wynne, Steve Tooke, Oleg Sukhodolsky, Tom Brand","info":"Core library for the Cucumber BDD app","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-core","gem_uri":"http://rubygems.org/gems/cucumber-core-0.2.0.gem","homepage_uri":"http://cukes.info","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":">= 1.3.5"},{"name":"coveralls","requirements":"~> 0.7"},{"name":"rake","requirements":">= 0.9.2"},{"name":"rspec","requirements":">= 2.13"},{"name":"unindent","requirements":">= 1.0"}],"runtime":[{"name":"gherkin","requirements":"~> 2.12.0"}]}},{"name":"vagrant-cucumber-host","downloads":163,"version":"0.1.14","version_downloads":163,"platform":"ruby","authors":"Gareth Rushgrove","info":"Run cucumber features as a Vagrant provisioner","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/vagrant-cucumber-host","gem_uri":"http://rubygems.org/gems/vagrant-cucumber-host-0.1.14.gem","homepage_uri":null,"wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.3.0"},{"name":"httparty","requirements":"~> 0.10.0"}]}},{"name":"cucumber-slices","downloads":649,"version":"0.0.4","version_downloads":172,"platform":"ruby","authors":"psytau","info":"view steps along with your cukes","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-slices","gem_uri":"http://rubygems.org/gems/cucumber-slices-0.0.4.gem","homepage_uri":"http://github.com/psytau/cucumber-slices","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.0"},{"name":"cucumber","requirements":">= 0"},{"name":"jeweler","requirements":"~> 2.0.1"},{"name":"rdoc","requirements":"~> 3.12"},{"name":"rspec","requirements":"~> 2.8.0"},{"name":"simplecov","requirements":">= 0"}],"runtime":[{"name":"docopt","requirements":">= 0.5.0, ~> 0.5"}]}},{"name":"cucumber-sshd","downloads":152,"version":"0.1.0","version_downloads":152,"platform":"ruby","authors":"Thibault Jouan","info":"Run an sshd server for scenarios tagged with @sshd","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-sshd","gem_uri":"http://rubygems.org/gems/cucumber-sshd-0.1.0.gem","homepage_uri":"https://rubygems.org/gems/cucumber-sshd","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"aruba","requirements":"~> 0.5"}]}},{"name":"calabash-cucumber-cn","downloads":88,"version":"0.0.6","version_downloads":88,"platform":"ruby","authors":"Li Jie","info":"Chinese translation of calabash-cucumber.","licenses":["BSD"],"project_uri":"http://rubygems.org/gems/calabash-cucumber-cn","gem_uri":"http://rubygems.org/gems/calabash-cucumber-cn-0.0.6.gem","homepage_uri":"http://github.com/cpunion/calabash-cucumber-cn","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"calabash-android","requirements":">= 0.4.21, ~> 0.4"},{"name":"calabash-cucumber","requirements":">= 0.9.168, ~> 0.9"}]}},{"name":"cucumber-slice","downloads":1199,"version":"0.0.2","version_downloads":629,"platform":"ruby","authors":"Justin Searls","info":"This tool can be used both locally and by build systems to\nquickly narrow down which Cucumber features to run based on\nwhich features may have been impacted by a code change.\nProvides a CLI that filters Cucumber features based on\nchanges to production code since a specified git revision.\nThis is particular useful in systems of wide logical breadth,\nwhere each individual commit is unlikely to have an impact on the\nvast majority of the system's behavior.\n","licenses":[],"project_uri":"http://rubygems.org/gems/cucumber-slice","gem_uri":"http://rubygems.org/gems/cucumber-slice-0.0.2.gem","homepage_uri":"https://github.com/testdouble/cucumber-slice","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[],"runtime":[{"name":"git","requirements":"~> 1.2.5"},{"name":"thor","requirements":"~> 0.14"}]}},{"name":"cucumber-salad","downloads":5326,"version":"0.4.0","version_downloads":488,"platform":"ruby","authors":"David Leal","info":"See https://github.com/mojotech/cucumber-salad/README.md","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-salad","gem_uri":"http://rubygems.org/gems/cucumber-salad-0.4.0.gem","homepage_uri":"https://github.com/mojotech/cucumber-salad","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"capybara-webkit","requirements":"~> 1.0.0"},{"name":"rspec-given","requirements":"~> 3.0.0"},{"name":"sinatra","requirements":">= 0"}],"runtime":[{"name":"capybara","requirements":">= 2.0"},{"name":"chronic","requirements":">= 0"},{"name":"cucumber","requirements":">= 0"}]}},{"name":"cucumber-peel","downloads":1000,"version":"0.0.1","version_downloads":1000,"platform":"ruby","authors":"Justin Searls","info":"Helps you locate the implementation for a given step","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-peel","gem_uri":"http://rubygems.org/gems/cucumber-peel-0.0.1.gem","homepage_uri":"https://github.com/testdouble/cucumber-peel","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.2"}]}},{"name":"cucumber-table","downloads":527,"version":"0.0.1","version_downloads":527,"platform":"ruby","authors":"Bachue Zhou","info":"A gem which can parse Cucumber-Style String to a table. You can write a table in your test case just like you are using Cucumber. Now it mainly support RSpec.","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-table","gem_uri":"http://rubygems.org/gems/cucumber-table-0.0.1.gem","homepage_uri":"","wiki_uri":"https://gitcafe.com/bachue/Cucumber-Table","documentation_uri":"https://gitcafe.com/bachue/Cucumber-Table","mailing_list_uri":"","source_code_uri":"https://gitcafe.com/bachue/Cucumber-Table","bug_tracker_uri":"https://gitcafe.com/bachue/Cucumber-Table/tickets","dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"its","requirements":">= 0"},{"name":"pry","requirements":">= 0"},{"name":"pry-debugger","requirements":"= 0.2.1"},{"name":"pry-doc","requirements":">= 0"},{"name":"pry-stack_explorer","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}],"runtime":[]}},{"name":"cucumber-jira","downloads":166,"version":"0.0.1.beta","version_downloads":166,"platform":"ruby","authors":"Erran Carey","info":"Multi-version JIRA integration for cucumber","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-jira","gem_uri":"http://rubygems.org/gems/cucumber-jira-0.0.1.beta.gem","homepage_uri":"https://github.com/ipwnstuff/cucumber-jira","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"jiraSOAP","requirements":"~> 0.10"}]}},{"name":"cucumber-formatter-oneline","downloads":413,"version":"0.1.0","version_downloads":413,"platform":"ruby","authors":"Tim Harvey, Dan Buch","info":"A formatter for Cucumber that uses single lines!","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-formatter-oneline","gem_uri":"http://rubygems.org/gems/cucumber-formatter-oneline-0.1.0.gem","homepage_uri":"","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"pry","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":"~> 1.1.4"}]}},{"name":"cucumber-rapid7","downloads":430,"version":"0.0.1.beta.1","version_downloads":101,"platform":"ruby","authors":"Erran Carey","info":"Cucumber extensions used at Rapid7","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-rapid7","gem_uri":"http://rubygems.org/gems/cucumber-rapid7-0.0.1.beta.1.gem","homepage_uri":"https://github.com/ecarey-r7/cucumber-rapid7","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[]}},{"name":"cucumber-timecop","downloads":820,"version":"0.0.3","version_downloads":445,"platform":"ruby","authors":"zedtux","info":"Timecop steps definition for Cucumber","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-timecop","gem_uri":"http://rubygems.org/gems/cucumber-timecop-0.0.3.gem","homepage_uri":"https://github.com/zedtux/cucumber-timecop","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"chronic","requirements":">= 0"},{"name":"cucumber","requirements":">= 0"},{"name":"timecop","requirements":">= 0"}]}},{"name":"cucumber-en_snippet","downloads":565,"version":"0.0.2","version_downloads":295,"platform":"ruby","authors":"Fumiaki MATSUSHIMA","info":"Output cucumber step definition snippets in English regardless of a language header","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-en_snippet","gem_uri":"http://rubygems.org/gems/cucumber-en_snippet-0.0.2.gem","homepage_uri":"https://github.com/mtsmfm/cucumber-en_snippet","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"aruba","requirements":">= 0"},{"name":"bundler","requirements":"~> 1.3"},{"name":"pry","requirements":">= 0"},{"name":"rake","requirements":">= 0"}],"runtime":[{"name":"cucumber","requirements":">= 0"}]}}]
@@ -0,0 +1 @@
1
+ [{"name":"cucumber-salad","downloads":5326,"version":"0.4.0","version_downloads":488,"platform":"ruby","authors":"David Leal","info":"See https://github.com/mojotech/cucumber-salad/README.md","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-salad","gem_uri":"http://rubygems.org/gems/cucumber-salad-0.4.0.gem","homepage_uri":"https://github.com/mojotech/cucumber-salad","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"capybara-webkit","requirements":"~> 1.0.0"},{"name":"rspec-given","requirements":"~> 3.0.0"},{"name":"sinatra","requirements":">= 0"}],"runtime":[{"name":"capybara","requirements":">= 2.0"},{"name":"chronic","requirements":">= 0"},{"name":"cucumber","requirements":">= 0"}]}},{"name":"cucumber-rapid7","downloads":430,"version":"0.0.1.beta.1","version_downloads":101,"platform":"ruby","authors":"Erran Carey","info":"Cucumber extensions used at Rapid7","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-rapid7","gem_uri":"http://rubygems.org/gems/cucumber-rapid7-0.0.1.beta.1.gem","homepage_uri":"https://github.com/ecarey-r7/cucumber-rapid7","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":"~> 1.3"},{"name":"rake","requirements":">= 0"}],"runtime":[]}},{"name":"cucumber-core","downloads":683,"version":"0.2.0","version_downloads":316,"platform":"ruby","authors":"Aslak Helles\u00f8y, Matt Wynne, Steve Tooke, Oleg Sukhodolsky, Tom Brand","info":"Core library for the Cucumber BDD app","licenses":["MIT"],"project_uri":"http://rubygems.org/gems/cucumber-core","gem_uri":"http://rubygems.org/gems/cucumber-core-0.2.0.gem","homepage_uri":"http://cukes.info","wiki_uri":null,"documentation_uri":null,"mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"dependencies":{"development":[{"name":"bundler","requirements":">= 1.3.5"},{"name":"coveralls","requirements":"~> 0.7"},{"name":"rake","requirements":">= 0.9.2"},{"name":"rspec","requirements":">= 2.13"},{"name":"unindent","requirements":">= 1.0"}],"runtime":[{"name":"gherkin","requirements":"~> 2.12.0"}]}}]
@@ -1,5 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'rubygems'
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
3
6
  require 'webmock/rspec'
4
7
  require 'gem-search'
5
8
 
@@ -17,3 +20,13 @@ def capture(stream)
17
20
 
18
21
  result
19
22
  end
23
+
24
+ def load_http_stubs(file_name)
25
+ open(File.join(File.dirname(__FILE__), 'http_stubs', file_name)).read
26
+ end
27
+
28
+ class String
29
+ def unindent
30
+ gsub(/^\s+\|/, '')
31
+ end
32
+ end
metadata CHANGED
@@ -1,96 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
5
- prerelease:
4
+ version: 0.0.9
6
5
  platform: ruby
7
6
  authors:
8
7
  - rochefort
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-02 00:00:00.000000000 Z
11
+ date: 2014-05-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: slop
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: 3.5.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: 3.5.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: 1.8.1
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: 1.8.1
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: webmock
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: 1.17.4
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: 1.17.4
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: 0.9.2.2
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: 0.9.2.2
78
69
  - !ruby/object:Gem::Dependency
79
- name: rdoc
70
+ name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
- version: '3.12'
75
+ version: 2.14.1
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
- version: '3.12'
82
+ version: 2.14.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.8.2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.8.2
94
97
  description: search gems with using rubygems.org API
95
98
  email:
96
99
  - terasawan@gmail.com
@@ -99,7 +102,8 @@ executables:
99
102
  extensions: []
100
103
  extra_rdoc_files: []
101
104
  files:
102
- - .gitignore
105
+ - ".gitignore"
106
+ - ".rspec"
103
107
  - Gemfile
104
108
  - LICENSE
105
109
  - README.md
@@ -107,36 +111,43 @@ files:
107
111
  - bin/gem-search
108
112
  - gem-search.gemspec
109
113
  - lib/gem-search.rb
110
- - lib/gem-search/cli.rb
114
+ - lib/gem-search/command.rb
115
+ - lib/gem-search/executor.rb
116
+ - lib/gem-search/rendering.rb
111
117
  - lib/gem-search/version.rb
112
118
  - spec/bin/gem-search_spec.rb
113
- - spec/cli_spec.rb
119
+ - spec/executor_spec.rb
120
+ - spec/http_stubs/cucumber-_1.json
121
+ - spec/http_stubs/cucumber-_2.json
122
+ - spec/http_stubs/cucumber-_3.json
114
123
  - spec/spec_helper.rb
115
124
  homepage: https://github.com/rochefort/gem-search
116
125
  licenses: []
126
+ metadata: {}
117
127
  post_install_message:
118
128
  rdoc_options: []
119
129
  require_paths:
120
130
  - lib
121
131
  required_ruby_version: !ruby/object:Gem::Requirement
122
- none: false
123
132
  requirements:
124
- - - ! '>='
133
+ - - ">="
125
134
  - !ruby/object:Gem::Version
126
135
  version: '0'
127
136
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
137
  requirements:
130
- - - ! '>='
138
+ - - ">="
131
139
  - !ruby/object:Gem::Version
132
140
  version: '0'
133
141
  requirements: []
134
142
  rubyforge_project:
135
- rubygems_version: 1.8.23
143
+ rubygems_version: 2.2.2
136
144
  signing_key:
137
- specification_version: 3
145
+ specification_version: 4
138
146
  summary: search gems with using rubygems.org API
139
147
  test_files:
140
148
  - spec/bin/gem-search_spec.rb
141
- - spec/cli_spec.rb
149
+ - spec/executor_spec.rb
150
+ - spec/http_stubs/cucumber-_1.json
151
+ - spec/http_stubs/cucumber-_2.json
152
+ - spec/http_stubs/cucumber-_3.json
142
153
  - spec/spec_helper.rb
@@ -1,79 +0,0 @@
1
- require 'json'
2
- require 'open-uri'
3
-
4
- module Gem::Search
5
- class CLI
6
- BASE_URL = 'https://rubygems.org'
7
- SEARCH_URL = "#{BASE_URL}/api/v1/search.json?query="
8
- DEFAULT_RULED_LINE_SIZE = [50, 8, 9]
9
-
10
- def search(query, opt_sort='name')
11
- return unless query
12
-
13
- opt_sort ||= 'name'
14
- url = "#{SEARCH_URL}#{query}"
15
-
16
- begin
17
- open_uri(url) do |f|
18
- gems = JSON.parse(f.read)
19
- if gems.size.zero?
20
- puts 'We did not find results.'
21
- return
22
- end
23
- fmt_size = ruled_line_size(gems)
24
- gems_sort!(gems, opt_sort)
25
- render_header(fmt_size)
26
- render_body(gems, fmt_size)
27
- end
28
- rescue => e
29
- puts 'An unexpected Network error has occurred.'
30
- puts e
31
- end
32
- end
33
-
34
- private
35
- def open_uri(url, &block)
36
- option = {}
37
- proxy = URI.parse(url).find_proxy
38
- if proxy
39
- if proxy.user && proxy.password
40
- option[:proxy_http_basic_authentication] = [proxy, proxy.user, proxy.password]
41
- end
42
- end
43
- open(url, option, &block)
44
- end
45
-
46
- def ruled_line_size(gems)
47
- line_size = DEFAULT_RULED_LINE_SIZE.dup
48
- max_name_size = gems.map { |gem| "#{gem['name']} (#{gem['version']})".size }.max
49
- line_size[0] = max_name_size if max_name_size > line_size[0]
50
- line_size
51
- end
52
-
53
- def gems_sort!(gems, opt_sort)
54
- if opt_sort == 'name'
55
- gems.sort!{ |x,y| x[opt_sort] <=> y[opt_sort] }
56
- else
57
- gems.sort!{ |x,y| y[opt_sort] <=> x[opt_sort] }
58
- end
59
- end
60
-
61
- def render_header(f)
62
- fmt = "%-#{f[0]}s %#{f[1]}s %#{f[2]}s"
63
- puts fmt % ['NAME', 'DL(ver)', 'DL(all)']
64
- puts fmt % ['-'*f[0], '-'*f[1], '-'*f[2]]
65
- end
66
-
67
- def render_body(gems, f)
68
- fmt = "%-#{f[0]}s %#{f[1]}d %#{f[2]}d"
69
- gems.each do |gem|
70
- puts fmt % [
71
- "#{gem['name']} (#{gem['version']})",
72
- gem['version_downloads'],
73
- gem['downloads']
74
- ]
75
- end
76
- end
77
-
78
- end
79
- end
@@ -1,197 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Gem::Search::CLI do
4
- describe '#search' do
5
- before do
6
- @cli = Gem::Search::CLI.new
7
- stub_request(:get, build_search_uri('factory_girl')).
8
- to_return(:status => 200, :body => dummy_search_result)
9
- end
10
-
11
- context 'when a network error occurred' do
12
- before do
13
- stub_request(:get, build_search_uri('network_error_orccurred')).
14
- to_return(:status => 500, :body => '[]')
15
- end
16
- it 'should display a network error message' do
17
- capture(:stdout) { @cli.search('network_error_orccurred') }.should match(/An unexpected Network error has occurred.\n/)
18
- end
19
- end
20
-
21
- context 'with nonexistence gem' do
22
- before do
23
- stub_request(:get, build_search_uri('no_match_gem_name')).
24
- to_return(:status => 200, :body => '[]')
25
- end
26
- it 'should display a nonexistence message' do
27
- capture(:stdout) { @cli.search('no_match_gem_name') }.should == "We did not find results.\n"
28
- end
29
- end
30
-
31
- context 'with existing gem' do
32
- context 'with no sort option' do
33
- it 'should display rubygems ordering by name' do
34
- capture(:stdout) { @cli.search('factory_girl') }.should == <<-'EOS'
35
- NAME DL(ver) DL(all)
36
- -------------------------------------------------- -------- ---------
37
- factory_girl (3.6.0) 541 2042859
38
- factory_girl_generator (0.0.3) 8015 15547
39
- factory_girl_rails (3.5.0) 39724 1238780
40
- EOS
41
- end
42
- end
43
-
44
- context 'with sort option: [v]version_downloads' do
45
- it "should display rubygems ordering by name" do
46
- capture(:stdout) { @cli.search('factory_girl', 'version_downloads') }.should == <<'EOS'
47
- NAME DL(ver) DL(all)
48
- -------------------------------------------------- -------- ---------
49
- factory_girl_rails (3.5.0) 39724 1238780
50
- factory_girl_generator (0.0.3) 8015 15547
51
- factory_girl (3.6.0) 541 2042859
52
- EOS
53
- end
54
- end
55
-
56
- context 'with sort option: [a]download' do
57
- it "should display rubygems ordering by name" do
58
- capture(:stdout) { @cli.search('factory_girl', 'download') }.should == <<'EOS'
59
- NAME DL(ver) DL(all)
60
- -------------------------------------------------- -------- ---------
61
- factory_girl (3.6.0) 541 2042859
62
- factory_girl_rails (3.5.0) 39724 1238780
63
- factory_girl_generator (0.0.3) 8015 15547
64
- EOS
65
- end
66
- end
67
- end
68
-
69
- describe 'ruled NAME line' do
70
- context 'NAME size is 42' do
71
- before do
72
- stub_request(:get, build_search_uri('size_is_42_2345678901234567890123456789012')).
73
- to_return(:status => 200, :body => dummy_search_result_name_size_is_42)
74
- end
75
- it "should be 50 characters" do
76
- capture(:stdout) { @cli.search('size_is_42_2345678901234567890123456789012') }.should == <<'EOS'
77
- NAME DL(ver) DL(all)
78
- -------------------------------------------------- -------- ---------
79
- size_is_42_2345678901234567890123456789012 (0.0.1) 100 1000
80
- EOS
81
- end
82
- end
83
-
84
- context 'NAME size is 43' do
85
- before do
86
- stub_request(:get, build_search_uri('size_is_42_2345678901234567890123456789012')).
87
- to_return(:status => 200, :body => dummy_search_result_name_size_is_43)
88
- end
89
- it "should be 51 characters" do
90
- capture(:stdout) { @cli.search('size_is_42_2345678901234567890123456789012') }.should == <<'EOS'
91
- NAME DL(ver) DL(all)
92
- --------------------------------------------------- -------- ---------
93
- size_is_43_23456789012345678901234567890123 (0.0.2) 200 2000
94
- EOS
95
- end
96
- end
97
- end
98
- end
99
-
100
- private
101
- def build_search_uri(query)
102
- "#{Gem::Search::CLI::SEARCH_URL}#{query}"
103
- end
104
-
105
- def dummy_search_result
106
- # top 3 gems searching with 'factory_girl'
107
- # https://rubygems.org/api/v1/search.json?query=factory_girl
108
- [{"name"=>"factory_girl",
109
- "downloads"=>2042859,
110
- "version"=>"3.6.0",
111
- "version_downloads"=>541,
112
- "platform"=>"ruby",
113
- "authors"=>"Josh Clayton, Joe Ferris",
114
- "info"=>
115
- "factory_girl provides a framework and DSL for defining and\n using factories - less error-prone, more explicit, and\n all-around easier to work with than fixtures.",
116
- "project_uri"=>"http://rubygems.org/gems/factory_girl",
117
- "gem_uri"=>"http://rubygems.org/gems/factory_girl-3.6.0.gem",
118
- "homepage_uri"=>"https://github.com/thoughtbot/factory_girl",
119
- "wiki_uri"=>"",
120
- "documentation_uri"=>"",
121
- "mailing_list_uri"=>"",
122
- "source_code_uri"=>"https://github.com/thoughtbot/factory_girl",
123
- "bug_tracker_uri"=>"",
124
- "dependencies"=>
125
- {"development"=>
126
- [{"name"=>"appraisal", "requirements"=>"~> 0.4"},
127
- {"name"=>"aruba", "requirements"=>">= 0"},
128
- {"name"=>"bourne", "requirements"=>">= 0"},
129
- {"name"=>"cucumber", "requirements"=>"~> 1.1"},
130
- {"name"=>"mocha", "requirements"=>">= 0"},
131
- {"name"=>"rspec", "requirements"=>"~> 2.0"},
132
- {"name"=>"simplecov", "requirements"=>">= 0"},
133
- {"name"=>"sqlite3-ruby", "requirements"=>">= 0"},
134
- {"name"=>"timecop", "requirements"=>">= 0"},
135
- {"name"=>"yard", "requirements"=>">= 0"}],
136
- "runtime"=>[{"name"=>"activesupport", "requirements"=>">= 3.0.0"}]}},
137
- {"name"=>"factory_girl_rails",
138
- "downloads"=>1238780,
139
- "version"=>"3.5.0",
140
- "version_downloads"=>39724,
141
- "platform"=>"ruby",
142
- "authors"=>"Joe Ferris",
143
- "info"=>
144
- "factory_girl_rails provides integration between\n factory_girl and rails 3 (currently just automatic factory definition\n loading)",
145
- "project_uri"=>"http://rubygems.org/gems/factory_girl_rails",
146
- "gem_uri"=>"http://rubygems.org/gems/factory_girl_rails-3.5.0.gem",
147
- "homepage_uri"=>"http://github.com/thoughtbot/factory_girl_rails",
148
- "wiki_uri"=>nil,
149
- "documentation_uri"=>nil,
150
- "mailing_list_uri"=>nil,
151
- "source_code_uri"=>nil,
152
- "bug_tracker_uri"=>nil,
153
- "dependencies"=>
154
- {"development"=>
155
- [{"name"=>"aruba", "requirements"=>">= 0"},
156
- {"name"=>"cucumber", "requirements"=>"~> 1.0.0"},
157
- {"name"=>"rails", "requirements"=>"= 3.0.7"},
158
- {"name"=>"rake", "requirements"=>">= 0"},
159
- {"name"=>"rspec", "requirements"=>"~> 2.6.0"}],
160
- "runtime"=>
161
- [{"name"=>"factory_girl", "requirements"=>"~> 3.5.0"},
162
- {"name"=>"railties", "requirements"=>">= 3.0.0"}]}},
163
- {"name"=>"factory_girl_generator",
164
- "downloads"=>15547,
165
- "version"=>"0.0.3",
166
- "version_downloads"=>8015,
167
- "platform"=>"ruby",
168
- "authors"=>"Les Hill",
169
- "info"=>"Rails 3 generator for factory_girl",
170
- "project_uri"=>"http://rubygems.org/gems/factory_girl_generator",
171
- "gem_uri"=>"http://rubygems.org/gems/factory_girl_generator-0.0.3.gem",
172
- "homepage_uri"=>"http://github.com/leshill/factory_girl_generator",
173
- "wiki_uri"=>nil,
174
- "documentation_uri"=>nil,
175
- "mailing_list_uri"=>nil,
176
- "source_code_uri"=>nil,
177
- "bug_tracker_uri"=>nil,
178
- "dependencies"=>{"development"=>[], "runtime"=>[]}}
179
- ].to_json
180
- end
181
-
182
- def dummy_search_result_name_size_is_42
183
- [{"name"=>"size_is_42_2345678901234567890123456789012",
184
- "downloads"=>1000,
185
- "version"=>"0.0.1",
186
- "version_downloads"=>100}
187
- ].to_json
188
- end
189
-
190
- def dummy_search_result_name_size_is_43
191
- [{"name"=>"size_is_43_23456789012345678901234567890123",
192
- "downloads"=>2000,
193
- "version"=>"0.0.2",
194
- "version_downloads"=>200}
195
- ].to_json
196
- end
197
- end