market_bot 0.10.0 → 0.11.0
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.
- checksums.yaml +4 -4
- data/.gitignore +21 -0
- data/Gemfile +3 -15
- data/Gemfile.lock +20 -86
- data/README.markdown +1 -1
- data/Rakefile +15 -40
- data/lib/market_bot.rb +1 -0
- data/lib/market_bot/android/app.rb +2 -2
- data/lib/market_bot/android/leaderboard.rb +11 -7
- data/lib/market_bot/version.rb +3 -0
- data/market_bot.gemspec +18 -94
- data/spec/market_bot/android/app_spec.rb +28 -26
- data/spec/market_bot/android/data/app_1.txt +56 -77
- data/spec/market_bot/android/data/app_2.txt +56 -77
- data/spec/market_bot/android/data/app_3.txt +56 -74
- data/spec/market_bot/android/data/leaderboard-apps_editors_choice.txt +110 -45
- data/spec/market_bot/android/data/leaderboard-apps_topselling_paid-page1.txt +110 -48
- data/spec/market_bot/android/data/leaderboard-apps_topselling_paid-page2.txt +110 -55
- data/spec/market_bot/android/data/leaderboard-apps_topselling_paid-page3.txt +110 -45
- data/spec/market_bot/android/data/leaderboard-apps_topselling_paid-page4.txt +110 -51
- data/spec/market_bot/android/leaderboard_spec.rb +14 -15
- data/spec/spec_helper.rb +5 -5
- metadata +30 -131
- data/.document +0 -5
- data/Guardfile +0 -5
- data/VERSION +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b957c274ab5e86e3c0415b1af975ce4a115bbd78
|
4
|
+
data.tar.gz: 17e27abcbf8f10e5e9c338ece121d8067a4fb878
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 226c78c540a1a8a4424e6a59839b89e50bf0b9e1390746e4df41c97fc8dade7811d8a3b2fc666930de1fb831c7faf8bef4c701ec9d79b8f0e7e1085f694ae033
|
7
|
+
data.tar.gz: bbdefb263e00eadc4b27aab602136a9222993b2868f9207c5a4612862483d47f6cbfc4c95c1655ffc8bcd8dffdab7b6bc793607dbe1e218af36ce23ea1356ca7
|
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,16 +1,4 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
group :development do
|
7
|
-
gem 'rspec', '~> 2.8.0'
|
8
|
-
gem 'bundler', '~> 1.3.0'
|
9
|
-
gem 'jeweler', '~> 1.8.0'
|
10
|
-
gem 'simplecov', '>= 0'
|
11
|
-
gem 'rdoc', '>= 3.9.4'
|
12
|
-
gem 'guard', '~> 1.2.3'
|
13
|
-
gem 'guard-rspec', '~> 1.1.0'
|
14
|
-
gem 'growl'
|
15
|
-
platform(:ruby) { gem 'debugger' }
|
16
|
-
end
|
3
|
+
# Specify your gem's dependencies in workers.gemspec
|
4
|
+
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,73 +1,22 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
market_bot (0.11.0)
|
5
|
+
nokogiri
|
6
|
+
typhoeus (>= 0.6.0)
|
7
|
+
|
1
8
|
GEM
|
2
|
-
remote:
|
9
|
+
remote: https://rubygems.org/
|
3
10
|
specs:
|
4
|
-
addressable (2.3.5)
|
5
|
-
builder (3.2.2)
|
6
|
-
columnize (0.3.6)
|
7
|
-
debugger (1.6.1)
|
8
|
-
columnize (>= 0.3.1)
|
9
|
-
debugger-linecache (~> 1.2.0)
|
10
|
-
debugger-ruby_core_source (~> 1.2.3)
|
11
|
-
debugger-linecache (1.2.0)
|
12
|
-
debugger-ruby_core_source (1.2.3)
|
13
11
|
diff-lcs (1.1.3)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
multi_json (~> 1.4)
|
23
|
-
nokogiri (~> 1.5.2)
|
24
|
-
oauth2
|
25
|
-
growl (1.0.3)
|
26
|
-
guard (1.2.3)
|
27
|
-
listen (>= 0.4.2)
|
28
|
-
thor (>= 0.14.6)
|
29
|
-
guard-rspec (1.1.0)
|
30
|
-
guard (>= 1.1)
|
31
|
-
hashie (2.0.5)
|
32
|
-
highline (1.6.19)
|
33
|
-
httpauth (0.2.0)
|
34
|
-
jeweler (1.8.6)
|
35
|
-
builder
|
36
|
-
bundler (~> 1.0)
|
37
|
-
git (>= 1.2.5)
|
38
|
-
github_api (= 0.10.1)
|
39
|
-
highline (>= 1.6.15)
|
40
|
-
nokogiri (= 1.5.10)
|
41
|
-
rake
|
42
|
-
rdoc
|
43
|
-
json (1.8.0)
|
44
|
-
jwt (0.1.8)
|
45
|
-
multi_json (>= 1.5)
|
46
|
-
listen (1.2.2)
|
47
|
-
rb-fsevent (>= 0.9.3)
|
48
|
-
rb-inotify (>= 0.9)
|
49
|
-
rb-kqueue (>= 0.2)
|
50
|
-
mime-types (1.23)
|
51
|
-
multi_json (1.7.7)
|
52
|
-
multi_xml (0.5.4)
|
53
|
-
multipart-post (1.2.0)
|
54
|
-
nokogiri (1.5.10)
|
55
|
-
oauth2 (0.9.2)
|
56
|
-
faraday (~> 0.8)
|
57
|
-
httpauth (~> 0.2)
|
58
|
-
jwt (~> 0.1.4)
|
59
|
-
multi_json (~> 1.0)
|
60
|
-
multi_xml (~> 0.5)
|
61
|
-
rack (~> 1.2)
|
62
|
-
rack (1.5.2)
|
63
|
-
rake (10.1.0)
|
64
|
-
rb-fsevent (0.9.3)
|
65
|
-
rb-inotify (0.9.0)
|
66
|
-
ffi (>= 0.5.0)
|
67
|
-
rb-kqueue (0.2.0)
|
68
|
-
ffi (>= 0.5.0)
|
69
|
-
rdoc (4.0.1)
|
70
|
-
json (~> 1.4)
|
12
|
+
ethon (0.6.1)
|
13
|
+
ffi (>= 1.3.0)
|
14
|
+
mime-types (~> 1.18)
|
15
|
+
ffi (1.9.3)
|
16
|
+
mime-types (1.25.1)
|
17
|
+
mini_portile (0.5.2)
|
18
|
+
nokogiri (1.6.0)
|
19
|
+
mini_portile (~> 0.5.0)
|
71
20
|
rspec (2.8.0)
|
72
21
|
rspec-core (~> 2.8.0)
|
73
22
|
rspec-expectations (~> 2.8.0)
|
@@ -76,27 +25,12 @@ GEM
|
|
76
25
|
rspec-expectations (2.8.0)
|
77
26
|
diff-lcs (~> 1.1.2)
|
78
27
|
rspec-mocks (2.8.0)
|
79
|
-
|
80
|
-
|
81
|
-
simplecov-html (~> 0.7.1)
|
82
|
-
simplecov-html (0.7.1)
|
83
|
-
thor (0.18.1)
|
84
|
-
typhoeus (0.4.2)
|
85
|
-
ffi (~> 1.0)
|
86
|
-
mime-types (~> 1.18)
|
28
|
+
typhoeus (0.6.6)
|
29
|
+
ethon (~> 0.6.1)
|
87
30
|
|
88
31
|
PLATFORMS
|
89
32
|
ruby
|
90
33
|
|
91
34
|
DEPENDENCIES
|
92
|
-
|
93
|
-
|
94
|
-
growl
|
95
|
-
guard (~> 1.2.3)
|
96
|
-
guard-rspec (~> 1.1.0)
|
97
|
-
jeweler (~> 1.8.0)
|
98
|
-
nokogiri
|
99
|
-
rdoc (>= 3.9.4)
|
100
|
-
rspec (~> 2.8.0)
|
101
|
-
simplecov
|
102
|
-
typhoeus (~> 0.4.2)
|
35
|
+
market_bot!
|
36
|
+
rspec (= 2.8.0)
|
data/README.markdown
CHANGED
@@ -8,7 +8,7 @@ Used in production to power [www.droidmeter.com](http://www.droidmeter.com/?t=gi
|
|
8
8
|
|
9
9
|
**This project is currently seeking developers to help maintain it.
|
10
10
|
Please send pull requests or contact me if you are able to help out.
|
11
|
-
The app
|
11
|
+
The app, leaderboard, and app search features are known to work, but the developer scraper is currently broken.**
|
12
12
|
|
13
13
|
## Dependencies
|
14
14
|
|
data/Rakefile
CHANGED
@@ -1,29 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "market_bot"
|
18
|
-
gem.homepage = "http://github.com/chadrem/market_bot"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Market Bot: High performance Ruby scraper for Google's Android Market}
|
21
|
-
gem.description = %Q{Market Bot is a high performance Ruby scraper for Google's Android Market with a simple to use API. It is built on top of Nokogiri and Typhoeus.}
|
22
|
-
gem.email = "chad@remesch.com"
|
23
|
-
gem.authors = ["Chad Remesch"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
1
|
+
require 'bundler/gem_tasks'
|
27
2
|
|
28
3
|
require 'rspec/core'
|
29
4
|
require 'rspec/core/rake_task'
|
@@ -33,17 +8,17 @@ end
|
|
33
8
|
|
34
9
|
task :default => :spec
|
35
10
|
|
36
|
-
|
37
|
-
|
38
|
-
|
11
|
+
desc 'Start an IRB console with Workers loaded'
|
12
|
+
task :console do
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
39
14
|
|
40
|
-
|
41
|
-
|
42
|
-
rdoc.rdoc_files.include('README*')
|
43
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
44
|
-
end
|
15
|
+
require 'market_bot'
|
16
|
+
require 'irb'
|
45
17
|
|
46
|
-
|
18
|
+
ARGV.clear
|
19
|
+
|
20
|
+
IRB.start
|
21
|
+
end
|
47
22
|
|
48
23
|
namespace :spec do
|
49
24
|
namespace :data do
|
@@ -63,19 +38,19 @@ namespace :spec do
|
|
63
38
|
download('https://play.google.com/store/apps/details?id=com.evernote',
|
64
39
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'app_2.txt'))
|
65
40
|
|
66
|
-
download('https://play.google.com/store/apps/details?id=
|
41
|
+
download('https://play.google.com/store/apps/details?id=com.mg.android',
|
67
42
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'app_3.txt'))
|
68
43
|
|
69
|
-
download('https://play.google.com/store/apps/collection/topselling_paid',
|
44
|
+
download('https://play.google.com/store/apps/category/ARCADE/collection/topselling_paid?num=24',
|
70
45
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'leaderboard-apps_topselling_paid-page1.txt'))
|
71
46
|
|
72
|
-
download('https://play.google.com/store/apps/collection/topselling_paid?start=24&
|
47
|
+
download('https://play.google.com/store/apps/category/ARCADE/collection/topselling_paid?start=24&num=24',
|
73
48
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'leaderboard-apps_topselling_paid-page2.txt'))
|
74
49
|
|
75
|
-
download('https://play.google.com/store/apps/collection/topselling_paid?start=48&
|
50
|
+
download('https://play.google.com/store/apps/category/ARCADE/collection/topselling_paid?start=48&num=24',
|
76
51
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'leaderboard-apps_topselling_paid-page3.txt'))
|
77
52
|
|
78
|
-
download('https://play.google.com/store/apps/collection/topselling_paid?start=
|
53
|
+
download('https://play.google.com/store/apps/category/ARCADE/collection/topselling_paid?start=96&num=24',
|
79
54
|
File.join(File.dirname(__FILE__), 'spec', 'market_bot', 'android', 'data', 'leaderboard-apps_topselling_paid-page4.txt'))
|
80
55
|
|
81
56
|
download('https://play.google.com/store/apps/collection/editors_choice',
|
data/lib/market_bot.rb
CHANGED
@@ -95,7 +95,7 @@ module MarketBot
|
|
95
95
|
end
|
96
96
|
|
97
97
|
result[:youtube_video_ids] = []
|
98
|
-
doc.css('.play-
|
98
|
+
doc.css('.play-action-container').each do |node|
|
99
99
|
url = node['data-video-url']
|
100
100
|
unless url.nil?
|
101
101
|
result[:youtube_video_ids] << url.split('embed/').last.split('?').first
|
@@ -119,7 +119,7 @@ module MarketBot
|
|
119
119
|
cur_index = 5
|
120
120
|
%w(five four three two one).each do |slot|
|
121
121
|
node = histogram.css(".#{slot.to_s}")
|
122
|
-
result[:rating_distribution][cur_index] = node.css('.bar-number').text.to_i
|
122
|
+
result[:rating_distribution][cur_index] = node.css('.bar-number').text.gsub(/,/,'').to_i
|
123
123
|
cur_index -= 1
|
124
124
|
|
125
125
|
end
|
@@ -5,6 +5,9 @@ module MarketBot
|
|
5
5
|
attr_reader :identifier, :category
|
6
6
|
attr_reader :hydra
|
7
7
|
|
8
|
+
MAX_STARS = 5
|
9
|
+
PERCENT_DENOM = 100
|
10
|
+
|
8
11
|
def self.parse(html)
|
9
12
|
if html.include?('<title>Editor's Choice')
|
10
13
|
parse_editors_choice_page(html)
|
@@ -17,25 +20,26 @@ module MarketBot
|
|
17
20
|
results = []
|
18
21
|
doc = Nokogiri::HTML(html)
|
19
22
|
|
20
|
-
doc.css('.
|
23
|
+
doc.css('.card').each do |snippet_node|
|
21
24
|
result = {}
|
22
25
|
|
23
26
|
details_node = snippet_node.css('.details')
|
24
27
|
|
25
|
-
unless snippet_node.css('.
|
26
|
-
|
27
|
-
|
28
|
+
unless snippet_node.css('.current-rating').empty?
|
29
|
+
stars_style = snippet_node.css('.current-rating').first.attributes['style'].value
|
30
|
+
stars_width_percent = stars_style[/width:\s+([0-9.]+)%/, 1].to_f
|
31
|
+
result[:stars] = (MAX_STARS * stars_width_percent/PERCENT_DENOM).round(1).to_s
|
28
32
|
else
|
29
33
|
result[:stars] = nil
|
30
34
|
end
|
31
35
|
|
32
36
|
result[:title] = details_node.css('.title').first.attributes['title'].to_s
|
33
37
|
|
34
|
-
if (price_elem = details_node.css('.buy
|
35
|
-
result[:price_usd] = price_elem.text
|
38
|
+
if (price_elem = details_node.css('.buy span').first)
|
39
|
+
result[:price_usd] = price_elem.text
|
36
40
|
end
|
37
41
|
|
38
|
-
result[:developer] = details_node.css('.
|
42
|
+
result[:developer] = details_node.css('.subtitle').first.attributes['title'].to_s
|
39
43
|
result[:market_id] = details_node.css('.title').first.attributes['href'].to_s.gsub('/store/apps/details?id=', '').gsub(/&feature=.*$/, '')
|
40
44
|
result[:market_url] = "https://play.google.com/store/apps/details?id=#{result[:market_id]}&hl=en"
|
41
45
|
|
data/market_bot.gemspec
CHANGED
@@ -1,99 +1,23 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'market_bot/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = 'market_bot'
|
8
|
+
gem.version = MarketBot::VERSION
|
9
|
+
gem.authors = ['Chad Remesch']
|
10
|
+
gem.email = ['chad@remesch.com']
|
11
|
+
gem.description = %q{Market Bot is a high performance Ruby scraper for Google's Android Market with a simple to use API. It is built on top of Nokogiri and Typhoeus.}
|
12
|
+
gem.summary = %q{Market Bot: High performance Ruby scraper for Google's Android Market}
|
13
|
+
gem.homepage = 'https://github.com/chadrem/market_bot'
|
14
|
+
gem.files = `git ls-files`.split($/)
|
15
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
+
gem.require_paths = ['lib']
|
9
18
|
|
10
|
-
|
11
|
-
|
12
|
-
s.date = "2013-07-19"
|
13
|
-
s.description = "Market Bot is a high performance Ruby scraper for Google's Android Market with a simple to use API. It is built on top of Nokogiri and Typhoeus."
|
14
|
-
s.email = "chad@remesch.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.markdown"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".rspec",
|
22
|
-
"Gemfile",
|
23
|
-
"Gemfile.lock",
|
24
|
-
"Guardfile",
|
25
|
-
"LICENSE.txt",
|
26
|
-
"NOTES.txt",
|
27
|
-
"README.markdown",
|
28
|
-
"Rakefile",
|
29
|
-
"VERSION",
|
30
|
-
"lib/market_bot.rb",
|
31
|
-
"lib/market_bot/android/app.rb",
|
32
|
-
"lib/market_bot/android/developer.rb",
|
33
|
-
"lib/market_bot/android/leaderboard.rb",
|
34
|
-
"lib/market_bot/android/leaderboard/constants.rb",
|
35
|
-
"lib/market_bot/android/search_query.rb",
|
36
|
-
"market_bot.gemspec",
|
37
|
-
"spec/market_bot/android/app_spec.rb",
|
38
|
-
"spec/market_bot/android/data/app_1.txt",
|
39
|
-
"spec/market_bot/android/data/app_2.txt",
|
40
|
-
"spec/market_bot/android/data/app_3.txt",
|
41
|
-
"spec/market_bot/android/data/leaderboard-apps_editors_choice.txt",
|
42
|
-
"spec/market_bot/android/data/leaderboard-apps_topselling_paid-page1.txt",
|
43
|
-
"spec/market_bot/android/data/leaderboard-apps_topselling_paid-page2.txt",
|
44
|
-
"spec/market_bot/android/data/leaderboard-apps_topselling_paid-page3.txt",
|
45
|
-
"spec/market_bot/android/data/leaderboard-apps_topselling_paid-page4.txt",
|
46
|
-
"spec/market_bot/android/leaderboard_spec.rb",
|
47
|
-
"spec/market_bot/android/search_query_spec.rb",
|
48
|
-
"spec/market_bot_spec.rb",
|
49
|
-
"spec/spec_helper.rb"
|
50
|
-
]
|
51
|
-
s.homepage = "http://github.com/chadrem/market_bot"
|
52
|
-
s.licenses = ["MIT"]
|
53
|
-
s.require_paths = ["lib"]
|
54
|
-
s.rubygems_version = "2.0.3"
|
55
|
-
s.summary = "Market Bot: High performance Ruby scraper for Google's Android Market"
|
19
|
+
gem.add_dependency('typhoeus', '>= 0.6.0')
|
20
|
+
gem.add_dependency('nokogiri', '>= 0')
|
56
21
|
|
57
|
-
|
58
|
-
s.specification_version = 4
|
59
|
-
|
60
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
61
|
-
s.add_runtime_dependency(%q<typhoeus>, ["~> 0.4.2"])
|
62
|
-
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
63
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
64
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.3.0"])
|
65
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.0"])
|
66
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
67
|
-
s.add_development_dependency(%q<rdoc>, [">= 3.9.4"])
|
68
|
-
s.add_development_dependency(%q<guard>, ["~> 1.2.3"])
|
69
|
-
s.add_development_dependency(%q<guard-rspec>, ["~> 1.1.0"])
|
70
|
-
s.add_development_dependency(%q<growl>, [">= 0"])
|
71
|
-
s.add_development_dependency(%q<debugger>, [">= 0"])
|
72
|
-
else
|
73
|
-
s.add_dependency(%q<typhoeus>, ["~> 0.4.2"])
|
74
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
75
|
-
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
76
|
-
s.add_dependency(%q<bundler>, ["~> 1.3.0"])
|
77
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
|
78
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
79
|
-
s.add_dependency(%q<rdoc>, [">= 3.9.4"])
|
80
|
-
s.add_dependency(%q<guard>, ["~> 1.2.3"])
|
81
|
-
s.add_dependency(%q<guard-rspec>, ["~> 1.1.0"])
|
82
|
-
s.add_dependency(%q<growl>, [">= 0"])
|
83
|
-
s.add_dependency(%q<debugger>, [">= 0"])
|
84
|
-
end
|
85
|
-
else
|
86
|
-
s.add_dependency(%q<typhoeus>, ["~> 0.4.2"])
|
87
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
88
|
-
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
89
|
-
s.add_dependency(%q<bundler>, ["~> 1.3.0"])
|
90
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
|
91
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
92
|
-
s.add_dependency(%q<rdoc>, [">= 3.9.4"])
|
93
|
-
s.add_dependency(%q<guard>, ["~> 1.2.3"])
|
94
|
-
s.add_dependency(%q<guard-rspec>, ["~> 1.1.0"])
|
95
|
-
s.add_dependency(%q<growl>, [">= 0"])
|
96
|
-
s.add_dependency(%q<debugger>, [">= 0"])
|
97
|
-
end
|
22
|
+
gem.add_development_dependency('rspec', '= 2.8.0')
|
98
23
|
end
|
99
|
-
|