kickscraper 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/kickscraper.gemspec +1 -1
- data/lib/kickscraper/client.rb +11 -8
- data/lib/kickscraper/version.rb +1 -1
- data/spec/support/shared_examples.rb +16 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6beac10ab4c441cb0ad864c19db53fc9444d7dd
|
4
|
+
data.tar.gz: 9f329bab1ad747b1628e05135cfa9277cf448054
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c36917a86555a5918178cb16fcad90486c6974c9e4f53edbeb0c5b0a4786e9f972c1a6190699df5e1ebb82d1cc1b71a9f6d96aeac81b0eca3898d6449a6e581c
|
7
|
+
data.tar.gz: c0d543246c89957a79b8002ef383acb6cb0ad54d2450c81fd0208e2dd77f869f6c6098372a14433c97e2d02c38b8cb54759579dcff26b01a7645b232071fc85e
|
data/Gemfile
CHANGED
data/kickscraper.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec-core"
|
23
|
+
spec.add_development_dependency "rspec-core", "~> 2.14"
|
24
24
|
|
25
25
|
spec.add_runtime_dependency('faraday', ['>= 0.7', '< 0.9'])
|
26
26
|
spec.add_runtime_dependency('faraday_middleware', '~> 0.8')
|
data/lib/kickscraper/client.rb
CHANGED
@@ -32,8 +32,8 @@ module Kickscraper
|
|
32
32
|
self::process_api_call "project", id_or_slug.to_s
|
33
33
|
end
|
34
34
|
|
35
|
-
def search_projects(search_terms, page = nil)
|
36
|
-
self::process_api_call "projects", "advanced", search_terms, page
|
35
|
+
def search_projects(search_terms, page = nil, category_id = nil, state = nil)
|
36
|
+
self::process_api_call "projects", "advanced", search_terms, page, category_id, state
|
37
37
|
end
|
38
38
|
|
39
39
|
def ending_soon_projects(page = nil)
|
@@ -58,7 +58,7 @@ module Kickscraper
|
|
58
58
|
|
59
59
|
def load_more_projects
|
60
60
|
if self::more_projects_available?
|
61
|
-
self::process_api_call @last_api_call_params[:request_for], @last_api_call_params[:additional_path], @last_api_call_params[:search_terms], (@last_api_call_params[:page] + 1)
|
61
|
+
self::process_api_call @last_api_call_params[:request_for], @last_api_call_params[:additional_path], @last_api_call_params[:search_terms], (@last_api_call_params[:page] + 1), @last_api_call_params[:category_id], @last_api_call_params[:state]
|
62
62
|
else
|
63
63
|
[]
|
64
64
|
end
|
@@ -74,18 +74,20 @@ module Kickscraper
|
|
74
74
|
end
|
75
75
|
|
76
76
|
|
77
|
-
def process_api_call(request_for, additional_path, search_terms = "", page = nil)
|
77
|
+
def process_api_call(request_for, additional_path, search_terms = "", page = nil, category_id = nil, state = nil)
|
78
78
|
|
79
79
|
# save the parameters for this call, so we can repeat it to get the next page of results
|
80
80
|
@last_api_call_params = {
|
81
81
|
request_for: request_for,
|
82
82
|
additional_path: additional_path,
|
83
83
|
search_terms: search_terms,
|
84
|
-
page: page.nil? ? 1 : page
|
84
|
+
page: page.nil? ? 1 : page,
|
85
|
+
category_id: category_id,
|
86
|
+
state: state
|
85
87
|
}
|
86
88
|
|
87
89
|
# make the api call (to the API resource we want)
|
88
|
-
response = self::make_api_call(request_for, additional_path, search_terms, page)
|
90
|
+
response = self::make_api_call(request_for, additional_path, search_terms, page, category_id,state)
|
89
91
|
|
90
92
|
# handle the response, returning an object with the results
|
91
93
|
self::coerce_api_response(request_for, response)
|
@@ -189,7 +191,7 @@ module Kickscraper
|
|
189
191
|
end
|
190
192
|
|
191
193
|
|
192
|
-
def make_api_call(request_for, additional_path = "", search_terms = "", page = nil)
|
194
|
+
def make_api_call(request_for, additional_path = "", search_terms = "", page = nil, category_id = nil, state = nil)
|
193
195
|
|
194
196
|
# set the url/path differently for each type of request
|
195
197
|
case request_for.downcase
|
@@ -216,7 +218,8 @@ module Kickscraper
|
|
216
218
|
params = {}
|
217
219
|
params[:term] = search_terms unless search_terms.empty?
|
218
220
|
params[:page] = page unless page.nil?
|
219
|
-
|
221
|
+
params[:category_id] = category_id unless category_id.nil?
|
222
|
+
params[:state] = state unless state.nil?
|
220
223
|
|
221
224
|
# make the connection and return the response
|
222
225
|
connection(api_or_search).get(path, params)
|
data/lib/kickscraper/version.rb
CHANGED
@@ -69,6 +69,22 @@ shared_examples_for "search projects" do
|
|
69
69
|
projects[0].id.should be 373368980
|
70
70
|
end
|
71
71
|
|
72
|
+
it "searches projects for a specific one with wrong category" do
|
73
|
+
projects = client.search_projects('Spark Core Wi-Fi for Everything', nil, 1)
|
74
|
+
projects.length.should be 0
|
75
|
+
end
|
76
|
+
|
77
|
+
it "searches projects for a specific one with wrong state" do
|
78
|
+
projects = client.search_projects('Spark Core Wi-Fi for Everything', nil, nil, 'live')
|
79
|
+
projects.length.should be 0
|
80
|
+
end
|
81
|
+
|
82
|
+
it "searches projects for a specific one with correct category and state" do
|
83
|
+
projects = client.search_projects('Spark Core Wi-Fi for Everything', nil, 16, 'successful')
|
84
|
+
projects.length.should be > 0
|
85
|
+
projects[0].id.should be 373368980
|
86
|
+
end
|
87
|
+
|
72
88
|
describe "match search results seen in UI for projects with special characters" do
|
73
89
|
# https://www.kickstarter.com/projects/search?utf8=✓&term=%22angels%22+%26+demons+%21%40%23%24%27%25%5E%26*%28%29
|
74
90
|
it "handles searching for projects with isolated special characters" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kickscraper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Olson
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-04-
|
14
|
+
date: 2015-04-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -45,16 +45,16 @@ dependencies:
|
|
45
45
|
name: rspec-core
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- - "
|
48
|
+
- - "~>"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '
|
50
|
+
version: '2.14'
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
|
-
- - "
|
55
|
+
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '
|
57
|
+
version: '2.14'
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: faraday
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|