crowd_funding_parser 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,62 @@
1
+ #coding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe CrowdFundingParser::Parser::Flyingv do
5
+ let(:doc) { get_project_doc("https://www.flyingv.cc/project/41", "flyingv") }
6
+
7
+ it "gets project id" do
8
+ expect(subject.get_id("https://www.flyingv.cc/project/41")).to eq("41")
9
+ end
10
+ it 'gets project title' do
11
+ expect(subject.get_title(doc)).to eq('ch+u:超電能飛行腕錶')
12
+ end
13
+ it "gets money category" do
14
+ expect(subject.get_category(doc)).to eq('設計商品')
15
+ end
16
+ it "gets creator name" do
17
+ expect(subject.get_creator_name(doc)).to eq('Eric Chiu')
18
+ end
19
+ it "gets creator link" do
20
+ expect(subject.get_creator_link(doc)).to eq('https://www.flyingv.cc/profile/304')
21
+ end
22
+ it "gets creator id" do
23
+ expect(subject.get_creator_id(doc)).to eq('304')
24
+ end
25
+ it "gets summary" do
26
+ expect(subject.get_summary(doc)).to include('了將近半年,中間收到了不下上百次讀者的熱情詢問')
27
+ end
28
+ it "gets start date" do
29
+ expect(subject.get_start_date(doc)).to eq('2012/08/22')
30
+ end
31
+ it "gets end date" do
32
+ expect(subject.get_end_date(doc)).to eq('2012/11/11')
33
+ end
34
+ it "gets region" do
35
+ expect(subject.get_region(doc)).to eq('Taiwan')
36
+ end
37
+ it "gets currency string" do
38
+ expect(subject.get_currency_string(doc)).to eq("twd")
39
+ end
40
+ it "gets money goal" do
41
+ expect(subject.get_money_goal(doc)).to eq('360000')
42
+ end
43
+ it "gets money pledged" do
44
+ expect(subject.get_money_pledged(doc)).to eq('3546200')
45
+ end
46
+ it "gets backer count" do
47
+ expect(subject.get_backer_count(doc)).to eq('704')
48
+ end
49
+ it "gets left_time" do
50
+ expect(subject.get_left_time(doc)).to eq('已結束')
51
+ end
52
+ it "gets status" do
53
+ left_time = subject.get_left_time(doc)
54
+ expect(subject.get_status(left_time)).to eq('finished')
55
+ end
56
+ it "gets fb count" do
57
+ expect(subject.get_fb_count(doc)).to eq("")
58
+ end
59
+ it "gets following count" do
60
+ expect(subject.get_following_count(doc)).to eq("781")
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ #coding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe CrowdFundingParser::Parser::Zeczec do
5
+ let(:doc) { get_project_doc("https://www.zeczec.com/projects/4thdimensionwatch", "zeczec") }
6
+
7
+ it "gets project id" do
8
+ expect(subject.get_id("https://www.zeczec.com/projects/4thdimensionwatch")).to eq("4thdimensionwatch")
9
+ end
10
+ it 'gets project title' do
11
+ expect(subject.get_title(doc)).to eq("第四度空間腕錶 4th Dimension Watch")
12
+ end
13
+ it "gets money category" do
14
+ expect(subject.get_category(doc)).to eq('設計')
15
+ end
16
+ it "gets creator name" do
17
+ expect(subject.get_creator_name(doc)).to eq('游聲堯')
18
+ end
19
+ it "gets creator link" do
20
+ expect(subject.get_creator_link(doc)).to eq('https://www.zeczec.com/users/yushenyao')
21
+ end
22
+ it "gets creator id" do
23
+ expect(subject.get_creator_id(doc)).to eq('yushenyao')
24
+ end
25
+ it "gets summary" do
26
+ expect(subject.get_summary(doc)).to include('水泥錶面')
27
+ end
28
+ it "gets start date" do
29
+ expect(subject.get_start_date(doc)).to eq('2015/01/05')
30
+ end
31
+ it "gets end date" do
32
+ expect(subject.get_end_date(doc)).to eq('2015/02/18')
33
+ end
34
+ it "gets region" do
35
+ expect(subject.get_region(doc)).to eq('Taiwan')
36
+ end
37
+ it "gets currency string" do
38
+ expect(subject.get_currency_string(doc)).to eq("twd")
39
+ end
40
+ it "gets money goal" do
41
+ expect(subject.get_money_goal(doc)).to eq('250006')
42
+ end
43
+ it "gets money pledged" do
44
+ expect(subject.get_money_pledged(doc)).to eq('6532659')
45
+ end
46
+ it "gets backer count" do
47
+ expect(subject.get_backer_count(doc)).to eq('586')
48
+ end
49
+ it "gets left_time" do
50
+ expect(subject.get_left_time(doc)).to eq('2 個月前')
51
+ end
52
+ it "gets status" do
53
+ left_time = subject.get_left_time(doc)
54
+ expect(subject.get_status(left_time)).to eq('finished')
55
+ end
56
+ it "gets fb count" do
57
+ expect(subject.get_fb_count(doc)).to eq("")
58
+ end
59
+ it "gets following count" do
60
+ expect(subject.get_following_count(doc)).to eq("")
61
+ end
62
+ end
@@ -0,0 +1,15 @@
1
+ require "pry"
2
+ require "vcr"
3
+ require "crowd_funding_parser"
4
+ require "support/vcr_sites"
5
+ require 'webmock/rspec'
6
+ require "nokogiri"
7
+
8
+ VCR.configure do |config|
9
+ config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
10
+ config.hook_into :webmock # or :fakeweb
11
+ end
12
+
13
+ RSpec.configure do |config|
14
+ config.include VcrSites
15
+ end
@@ -0,0 +1,8 @@
1
+ module VcrSites
2
+ def get_project_doc(project_url, platform_name)
3
+ VCR.use_cassette(platform_name, re_record_interval: 3.days) do
4
+ response = HTTParty.get(project_url)
5
+ Nokogiri::HTML(response)
6
+ end
7
+ end
8
+ end
metadata CHANGED
@@ -1,15 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowd_funding_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - BackerFounder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-13 00:00:00.000000000 Z
11
+ date: 2015-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: webmock
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: iconv
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.9.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.9.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-nc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry-remote
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-nav
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
13
167
  - !ruby/object:Gem::Dependency
14
168
  name: bundler
15
169
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +220,20 @@ dependencies:
66
220
  - - "~>"
67
221
  - !ruby/object:Gem::Version
68
222
  version: '1.6'
223
+ - !ruby/object:Gem::Dependency
224
+ name: httparty
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 0.13.3
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 0.13.3
69
237
  description:
70
238
  email:
71
239
  - hello@backer-founder.com
@@ -74,17 +242,30 @@ extensions: []
74
242
  extra_rdoc_files: []
75
243
  files:
76
244
  - ".gitignore"
245
+ - ".travis.yml"
77
246
  - Gemfile
247
+ - Guardfile
78
248
  - LICENSE.txt
79
249
  - README.md
80
250
  - Rakefile
81
251
  - crowd_funding_parser.gemspec
82
252
  - lib/crowd_funding_parser.rb
83
253
  - lib/crowd_funding_parser/general.rb
254
+ - lib/crowd_funding_parser/method_builder.rb
255
+ - lib/crowd_funding_parser/parser/an9.rb
84
256
  - lib/crowd_funding_parser/parser/flyingv.rb
257
+ - lib/crowd_funding_parser/parser/hereo.rb
258
+ - lib/crowd_funding_parser/parser/kickstarter.rb
259
+ - lib/crowd_funding_parser/parser/taobao.rb
85
260
  - lib/crowd_funding_parser/parser/webackers.rb
86
261
  - lib/crowd_funding_parser/parser/zeczec.rb
87
262
  - lib/crowd_funding_parser/version.rb
263
+ - spec/fixtures/vcr_cassettes/flyingv.yml
264
+ - spec/fixtures/vcr_cassettes/zeczec.yml
265
+ - spec/parsers/flyingv_spec.rb
266
+ - spec/parsers/zezec_spec.rb
267
+ - spec/spec_helper.rb
268
+ - spec/support/vcr_sites.rb
88
269
  homepage: ''
89
270
  licenses:
90
271
  - MIT
@@ -105,8 +286,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
286
  version: '0'
106
287
  requirements: []
107
288
  rubyforge_project:
108
- rubygems_version: 2.4.5
289
+ rubygems_version: 2.4.6
109
290
  signing_key:
110
291
  specification_version: 4
111
292
  summary: A crowd-funding platform parser
112
- test_files: []
293
+ test_files:
294
+ - spec/fixtures/vcr_cassettes/flyingv.yml
295
+ - spec/fixtures/vcr_cassettes/zeczec.yml
296
+ - spec/parsers/flyingv_spec.rb
297
+ - spec/parsers/zezec_spec.rb
298
+ - spec/spec_helper.rb
299
+ - spec/support/vcr_sites.rb