kickscraper 0.2.1 → 0.2.2
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/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
|