checkdin 0.2.9 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/checkdin/users.rb +42 -0
- data/lib/checkdin/version.rb +1 -1
- metadata +168 -143
- data/.document +0 -5
- data/.rspec +0 -1
- data/Gemfile.lock +0 -59
- data/spec/checkdin/activities_spec.rb +0 -72
- data/spec/checkdin/campaigns_spec.rb +0 -32
- data/spec/checkdin/client_spec.rb +0 -29
- data/spec/checkdin/clients_spec.rb +0 -23
- data/spec/checkdin/custom_activities_spec.rb +0 -13
- data/spec/checkdin/leaderboard_spec.rb +0 -28
- data/spec/checkdin/promotions_spec.rb +0 -63
- data/spec/checkdin/push_api_subscriptions_spec.rb +0 -50
- data/spec/checkdin/user_bridge_spec.rb +0 -148
- data/spec/checkdin/users_spec.rb +0 -109
- data/spec/checkdin/won_rewards_spec.rb +0 -45
- data/spec/fixtures/vcr_cassettes/Checkdin_Activities/viewing_a_list_of_activities.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_Activities/viewing_a_single_activity.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_Activities/voting_for_an_activity/passing_an_email.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Checkdin_Activities/voting_for_an_activity.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Checkdin_Campaigns/viewing_a_list_of_campaigns.yml +0 -43
- data/spec/fixtures/vcr_cassettes/Checkdin_Campaigns/viewing_a_single_campaign.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Checkdin_Clients/viewing_a_client_s_own_information.yml +0 -46
- data/spec/fixtures/vcr_cassettes/Checkdin_CustomActivities.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Checkdin_Leaderboard/viewing_a_leaderboard_for_a_campaign.yml +0 -42
- data/spec/fixtures/vcr_cassettes/Checkdin_Leaderboard/viewing_a_leaderboard_for_a_campaign_s_classifications.yml +0 -46
- data/spec/fixtures/vcr_cassettes/Checkdin_Promotions/viewing_a_list_of_promotions.yml +0 -58
- data/spec/fixtures/vcr_cassettes/Checkdin_Promotions/viewing_a_single_promotion.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Checkdin_Promotions/viewing_the_votes_leaderboard_for_a_promotion/limiting_the_number_of_records_returned.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_Promotions/viewing_the_votes_leaderboard_for_a_promotion.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_PushApiSubscriptions/disabling_a_push_api_subscription.yml +0 -32
- data/spec/fixtures/vcr_cassettes/Checkdin_PushApiSubscriptions/enabling_a_push_api_subscription.yml +0 -32
- data/spec/fixtures/vcr_cassettes/Checkdin_PushApiSubscriptions/viewing_a_list_of_push_api_subscriptions.yml +0 -32
- data/spec/fixtures/vcr_cassettes/Checkdin_PushApiSubscriptions/viewing_a_single_push_api_subscription.yml +0 -32
- data/spec/fixtures/vcr_cassettes/Checkdin_Users/viewing_a_list_of_users.yml +0 -42
- data/spec/fixtures/vcr_cassettes/Checkdin_Users/viewing_a_single_user.yml +0 -59
- data/spec/fixtures/vcr_cassettes/Checkdin_Votes/filtering_by_a_single_user.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_Votes/viewing_a_list_of_activities.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Checkdin_WonRewards/viewing_a_list_of_won_rewards.yml +0 -53
- data/spec/fixtures/vcr_cassettes/Checkdin_WonRewards/viewing_a_single_won_reward.yml +0 -49
- data/spec/spec_helper.rb +0 -49
@@ -1,59 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: https://app.checkd.in:443/api/v1/users/187?client_id={client_id}&client_secret={client_secret}
|
6
|
-
body: !!null
|
7
|
-
headers:
|
8
|
-
accept:
|
9
|
-
- application/json
|
10
|
-
user-agent:
|
11
|
-
- Ruby gem
|
12
|
-
accept-encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
response: !ruby/struct:VCR::Response
|
15
|
-
status: !ruby/struct:VCR::ResponseStatus
|
16
|
-
code: 200
|
17
|
-
message: OK
|
18
|
-
headers:
|
19
|
-
server:
|
20
|
-
- nginx/0.8.54
|
21
|
-
date:
|
22
|
-
- Tue, 14 Feb 2012 19:09:21 GMT
|
23
|
-
content-type:
|
24
|
-
- application/json; charset=utf-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
connection:
|
28
|
-
- keep-alive
|
29
|
-
strict-transport-security:
|
30
|
-
- max-age=31536000
|
31
|
-
x-ua-compatible:
|
32
|
-
- IE=Edge,chrome=1
|
33
|
-
etag:
|
34
|
-
- ! '"cd8e76b1364d66de77c58ed78224a65e"'
|
35
|
-
cache-control:
|
36
|
-
- max-age=0, private, must-revalidate
|
37
|
-
x-runtime:
|
38
|
-
- '0.042271'
|
39
|
-
x-rack-cache:
|
40
|
-
- miss
|
41
|
-
body: ! '{"user":{"id":187,"username":"krhoch","created_at":"2012-01-26T08:16:48-06:00","first_name":null,"last_name":null,"birth_date":"1986-05-29","gender":"male","authentications":[{"authentication":{"provider":"foursquare","token_state":"fresh"}}],"campaigns":[{"campaign":{"name":"Check
|
42
|
-
In With ","description":"Check in with to win free coffee and
|
43
|
-
more!","start_date":"2011-10-17","end_date":"2012-10-17","href":"https://app.checkd.in/api/v1/campaigns/2.json","points":0,"won_rewards":[{"won_reward":{"points_when_rewarded":null,"points_needed":null,"created_at":"2012-01-27T09:03:21-06:00","updated_at":"2012-01-27T09:03:21-06:00","promotion":{"title":"Check
|
44
|
-
in and get breakfast for 99 cents!","description":"Check in at our new location
|
45
|
-
at the downtown and receive a bagel with cream cheese
|
46
|
-
or sausage biscuit for only 99 cents!","terms":"*Offer only applies at locations","above_21_only":false,"ends_at":"2012-10-16T07:51:32-05:00","href":"https://app.checkd.in/api/v1/promotions/7.json","type":"promotion_lbs_checkin","place_groups":[{"place_group":{"name":"Stores","href":"https://app.checkd.in/api/v1/place_groups/2.json"}}],"reward":{"private_delivery_description":"Thanks
|
47
|
-
for checking-in with! You have earned your first discount
|
48
|
-
- a 99\u00a2 bagel with cream cheese or a 99\u00a2 sausage and biscuit! Bring
|
49
|
-
a printed copy of this notification or show this screen on your smart-phone
|
50
|
-
to take advantage of this delicious offer!\n\n","public_delivery_description":"I
|
51
|
-
just got breakfast for 99 cents by checking in","single_delivery":false,"type":"badge_reward","reward_file":"FreeBreakfastBarcode.png"},"trigger_schedule":{"rewarding":"once","winner_picked":"activity_interval","interval":1,"human_readable":"Rewarded
|
52
|
-
once when a user reaches 1 relevant actions or points."}},"badge_reward":{"private_delivery_description":"Thanks
|
53
|
-
for checking-in with You have earned your first discount
|
54
|
-
- a 99\u00a2 bagel with cream cheese or a 99\u00a2 sausage and biscuit! Bring
|
55
|
-
a printed copy of this notification or show this screen on your smart-phone
|
56
|
-
to take advantage of this delicious offer!\n\nDon''t forget to Like us on Facebook
|
57
|
-
to earn another great reward from !","public_delivery_description":"I
|
58
|
-
just got breakfast for 99 cents by checking in at","single_delivery":false,"type":"badge_reward","reward_file":"FreeBreakfastBarcode.png"}}}]}}]}}'
|
59
|
-
http_version: '1.1'
|
@@ -1,44 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: https://app.checkd.in:443/api/v1/votes?client_id={client_id}&client_secret={client_secret}&user_id=36
|
6
|
-
body:
|
7
|
-
headers:
|
8
|
-
accept:
|
9
|
-
- application/json
|
10
|
-
user-agent:
|
11
|
-
- checkdin ruby gem 0.2.2
|
12
|
-
accept-encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
response: !ruby/struct:VCR::Response
|
15
|
-
status: !ruby/struct:VCR::ResponseStatus
|
16
|
-
code: 200
|
17
|
-
message: OK
|
18
|
-
headers:
|
19
|
-
server:
|
20
|
-
- nginx/1.0.11
|
21
|
-
date:
|
22
|
-
- Tue, 17 Apr 2012 15:57:37 GMT
|
23
|
-
content-type:
|
24
|
-
- application/json; charset=utf-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
connection:
|
28
|
-
- keep-alive
|
29
|
-
status:
|
30
|
-
- 200 OK
|
31
|
-
strict-transport-security:
|
32
|
-
- max-age=31536000
|
33
|
-
x-ua-compatible:
|
34
|
-
- IE=Edge,chrome=1
|
35
|
-
etag:
|
36
|
-
- "\"e5be3080253b60063d29411e65400701\""
|
37
|
-
cache-control:
|
38
|
-
- must-revalidate, private, max-age=0
|
39
|
-
x-runtime:
|
40
|
-
- "0.101455"
|
41
|
-
x-rack-cache:
|
42
|
-
- miss
|
43
|
-
body: "{\"total_pages\":1,\"votes\":[{\"vote\":{\"created_at\":\"2012-04-09T05:42:37-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:52:18-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:52:12-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}}]}"
|
44
|
-
http_version: "1.1"
|
@@ -1,44 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: https://app.checkd.in:443/api/v1/votes?client_id={client_id}&client_secret={client_secret}
|
6
|
-
body:
|
7
|
-
headers:
|
8
|
-
accept:
|
9
|
-
- application/json
|
10
|
-
user-agent:
|
11
|
-
- checkdin ruby gem 0.2.2
|
12
|
-
accept-encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
response: !ruby/struct:VCR::Response
|
15
|
-
status: !ruby/struct:VCR::ResponseStatus
|
16
|
-
code: 200
|
17
|
-
message: OK
|
18
|
-
headers:
|
19
|
-
server:
|
20
|
-
- nginx/1.0.11
|
21
|
-
date:
|
22
|
-
- Tue, 17 Apr 2012 15:57:36 GMT
|
23
|
-
content-type:
|
24
|
-
- application/json; charset=utf-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
connection:
|
28
|
-
- keep-alive
|
29
|
-
status:
|
30
|
-
- 200 OK
|
31
|
-
strict-transport-security:
|
32
|
-
- max-age=31536000
|
33
|
-
x-ua-compatible:
|
34
|
-
- IE=Edge,chrome=1
|
35
|
-
etag:
|
36
|
-
- "\"0b1ec43ded6cc7875c4c284e7e112874\""
|
37
|
-
cache-control:
|
38
|
-
- must-revalidate, private, max-age=0
|
39
|
-
x-runtime:
|
40
|
-
- "0.047213"
|
41
|
-
x-rack-cache:
|
42
|
-
- miss
|
43
|
-
body: "{\"total_pages\":1,\"votes\":[{\"vote\":{\"created_at\":\"2012-04-09T05:42:37-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-09T05:38:50-05:00\",\"user\":null,\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:52:18-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:52:12-05:00\",\"user\":{\"id\":36,\"href\":\"https://staging.checkd.in/api/v1/users/36.json\"},\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:51:53-05:00\",\"user\":null,\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:30:05-05:00\",\"user\":null,\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}},{\"vote\":{\"created_at\":\"2012-04-08T06:26:47-05:00\",\"user\":null,\"activity\":{\"id\":18881,\"href\":\"https://staging.checkd.in/api/v1/activities/18881.json\"}}}]}"
|
44
|
-
http_version: "1.1"
|
@@ -1,53 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: https://app.checkd.in:443/api/v1/won_rewards?client_id={client_id}&client_secret={client_secret}&limit=2
|
6
|
-
body: !!null
|
7
|
-
headers:
|
8
|
-
accept:
|
9
|
-
- application/json
|
10
|
-
user-agent:
|
11
|
-
- Ruby gem
|
12
|
-
accept-encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
response: !ruby/struct:VCR::Response
|
15
|
-
status: !ruby/struct:VCR::ResponseStatus
|
16
|
-
code: 200
|
17
|
-
message: OK
|
18
|
-
headers:
|
19
|
-
server:
|
20
|
-
- nginx/0.8.54
|
21
|
-
date:
|
22
|
-
- Tue, 14 Feb 2012 17:36:24 GMT
|
23
|
-
content-type:
|
24
|
-
- application/json; charset=utf-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
connection:
|
28
|
-
- keep-alive
|
29
|
-
strict-transport-security:
|
30
|
-
- max-age=31536000
|
31
|
-
x-ua-compatible:
|
32
|
-
- IE=Edge,chrome=1
|
33
|
-
etag:
|
34
|
-
- ! '"b76dad81b38fe344ec8830b8f2162988"'
|
35
|
-
cache-control:
|
36
|
-
- max-age=0, private, must-revalidate
|
37
|
-
x-runtime:
|
38
|
-
- '0.211191'
|
39
|
-
x-rack-cache:
|
40
|
-
- miss
|
41
|
-
body: ! '{"total_pages":56,"won_rewards":[{"won_reward":{"points_when_rewarded":null,"points_needed":null,"public_delivery_description":"","private_delivery_description":"Thank
|
42
|
-
you","created_at":"2012-02-08T09:00:34-06:00","href":"https://app.checkd.in/api/v1/won_rewards/142.json","campaign":{"name":"Check
|
43
|
-
In","description":"Check in
|
44
|
-
more!","start_date":"2011-10-17","end_date":"2012-10-17","href":"https://app.checkd.in/api/v1/campaigns/2.json"},"promotion":{"type":"PromotionLbsCheckin","title":"Get
|
45
|
-
a FREE coffee for every 5 check ins!","description":"Every 5 times you check
|
46
|
-
in you will be rewarded with a free
|
47
|
-
coffee! Enjoy!","href":"https://app.checkd.in/api/v1/promotions/8.json"},"user":{"id":64,"username":"bdoyk","created_at":"2011-10-19T08:32:38-05:00","first_name":null,"last_name":null,"birth_date":"1982-07-22","gender":null,"avatar_url":"https://prod-checkdin-user.s3.amazonaws.com/uploads/64/FYWYJX0YHPSVHPKP.jpg","href":"https://app.checkd.in/api/v1/won_rewards.json?user_id=64","postal_code":{"postal_code":"37206","locality":"NASHVILLE","state":"Tennessee","state_abbr":"TN","county":"DAVIDSON","lat":36.180806,"lon":-86.741761}}}},{"won_reward":{"points_when_rewarded":null,"points_needed":null,"public_delivery_description":"I
|
48
|
-
just got breakfast for 99 cents","private_delivery_description":"Thank you","created_at":"2012-01-27T09:03:21-06:00","href":"https://app.checkd.in/api/v1/won_rewards/141.json","campaign":{"name":"Check
|
49
|
-
In ","description":"Check in to win free coffee and
|
50
|
-
more!","start_date":"2011-10-17","end_date":"2012-10-17","href":"https://app.checkd.in/api/v1/campaigns/2.json"},"promotion":{"type":"PromotionLbsCheckin","title":"Check
|
51
|
-
in and get breakfast for 99 cents!","description":"Check in at our new location
|
52
|
-
","href":"https://app.checkd.in/api/v1/promotions/7.json"},"user":{"id":187,"username":"krhoch","created_at":"2012-01-26T08:16:48-06:00","first_name":null,"last_name":null,"birth_date":"1986-05-29","gender":"male","avatar_url":"https://prod-checkdin-user.s3.amazonaws.com/uploads/187/ROPQUJ0DZBN00OQB.jpg","href":"https://app.checkd.in/api/v1/won_rewards.json?user_id=187","postal_code":{"postal_code":"37212","locality":"NASHVILLE","state":"Tennessee","state_abbr":"TN","county":"DAVIDSON","lat":36.133251,"lon":-86.800573}}}}]}'
|
53
|
-
http_version: '1.1'
|
@@ -1,49 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
4
|
-
method: :get
|
5
|
-
uri: https://app.checkd.in:443/api/v1/won_rewards/142?client_id={client_id}&client_secret={client_secret}
|
6
|
-
body: !!null
|
7
|
-
headers:
|
8
|
-
accept:
|
9
|
-
- application/json
|
10
|
-
user-agent:
|
11
|
-
- Ruby gem
|
12
|
-
accept-encoding:
|
13
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
-
response: !ruby/struct:VCR::Response
|
15
|
-
status: !ruby/struct:VCR::ResponseStatus
|
16
|
-
code: 200
|
17
|
-
message: OK
|
18
|
-
headers:
|
19
|
-
server:
|
20
|
-
- nginx/0.8.54
|
21
|
-
date:
|
22
|
-
- Tue, 14 Feb 2012 17:36:23 GMT
|
23
|
-
content-type:
|
24
|
-
- application/json; charset=utf-8
|
25
|
-
transfer-encoding:
|
26
|
-
- chunked
|
27
|
-
connection:
|
28
|
-
- keep-alive
|
29
|
-
strict-transport-security:
|
30
|
-
- max-age=31536000
|
31
|
-
x-ua-compatible:
|
32
|
-
- IE=Edge,chrome=1
|
33
|
-
etag:
|
34
|
-
- ! '"81e9f265a7e790c8b4233f7040a62545"'
|
35
|
-
cache-control:
|
36
|
-
- max-age=0, private, must-revalidate
|
37
|
-
x-runtime:
|
38
|
-
- '0.280210'
|
39
|
-
x-rack-cache:
|
40
|
-
- miss
|
41
|
-
body: ! '{"won_reward":{"points_when_rewarded":null,"points_needed":null,"created_at":"2012-02-08T09:00:34-06:00","updated_at":"2012-02-08T09:00:34-06:00","public_delivery_description":"Free
|
42
|
-
coffee","private_delivery_description":"Thank
|
43
|
-
you","campaign":{"name":"Check In","description":"Check
|
44
|
-
in to win free coffee and more!","start_date":"2011-10-17","end_date":"2012-10-17","href":"https://app.checkd.in/api/v1/campaigns/2.json"},"promotion":{"title":"A great promotion","description":"Every 5 times you check
|
45
|
-
in at our location you will be rewarded with a free
|
46
|
-
coffee! Enjoy!","terms":"","above_21_only":false,"ends_at":"2012-10-16T07:51:32-05:00","href":"https://app.checkd.in/api/v1/promotions/8.json","type":"promotion_lbs_checkin","place_groups":[{"place_group":{"name":"Stores","href":"https://app.checkd.in/api/v1/place_groups/2.json"}}],"reward":{"private_delivery_description":"Thank
|
47
|
-
you","public_delivery_description":"Free coffee","single_delivery":false,"type":"badge_reward","reward_file":"5thCheckinBarcode.png"},"trigger_schedule":{"rewarding":"once","winner_picked":"activity_interval","interval":5,"human_readable":"Rewarded
|
48
|
-
once when a user reaches 5 relevant actions or points."}},"reward":{"single_delivery":false,"type":"badge_reward","reward_file":"5thCheckinBarcode.png"},"user":{"id":64,"username":"bdoyk","created_at":"2011-10-19T08:32:38-05:00","first_name":null,"last_name":null,"birth_date":"1982-07-22","gender":null,"avatar_url":"https://prod-checkdin-user.s3.amazonaws.com/uploads/64/FYWYJX0YHPSVHPKP.jpg","href":"https://app.checkd.in/api/v1/won_rewards.json?user_id=64","postal_code":{"postal_code":"37206","locality":"NASHVILLE","state":"Tennessee","state_abbr":"TN","county":"DAVIDSON","lat":36.180806,"lon":-86.741761}}}}'
|
49
|
-
http_version: '1.1'
|
data/spec/spec_helper.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'simplecov'
|
3
|
-
SimpleCov.start do
|
4
|
-
add_filter "/spec"
|
5
|
-
end
|
6
|
-
require 'checkdin'
|
7
|
-
require 'rspec'
|
8
|
-
|
9
|
-
require 'webmock/rspec'
|
10
|
-
require 'vcr'
|
11
|
-
|
12
|
-
Dir["./spec/support/**/*.rb"].each {|f| require f}
|
13
|
-
|
14
|
-
# Disallow all HTTP connections
|
15
|
-
WebMock.disable_net_connect!
|
16
|
-
|
17
|
-
# VCR is used for recording and replaying known API HTTP interactions
|
18
|
-
VCR.config do |config|
|
19
|
-
config.cassette_library_dir = File.join('spec', 'fixtures', 'vcr_cassettes')
|
20
|
-
|
21
|
-
config.stub_with :webmock
|
22
|
-
|
23
|
-
config.filter_sensitive_data('{client_id}') { TestCredentials.client_id }
|
24
|
-
config.filter_sensitive_data('{client_secret}') { TestCredentials.client_secret }
|
25
|
-
config.filter_sensitive_data('{api_url}') { TestCredentials.api_url }
|
26
|
-
|
27
|
-
config.default_cassette_options = {
|
28
|
-
:match_requests_on => [ :path ] # ignore hostname when finding a matching request in the VCR recording
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
RSpec.configure do |config|
|
33
|
-
config.extend VCR::RSpec::Macros
|
34
|
-
|
35
|
-
# from https://github.com/myronmarston/vcr/issues/95
|
36
|
-
config.around(:each, :vcr => proc { |vcr, metadata| !!vcr }) do |example|
|
37
|
-
options = example.metadata[:vcr]
|
38
|
-
case options
|
39
|
-
when String
|
40
|
-
options = { :cassette => options }
|
41
|
-
when TrueClass
|
42
|
-
options = {}
|
43
|
-
end
|
44
|
-
name = options.delete(:cassette) || example.metadata[:full_description].split(/\s+/, 2).join("/").underscore.gsub(/[^\w\/]+/, "_")
|
45
|
-
VCR.use_cassette(name, options) { example.call }
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
DEFAULT_HOST = 'http://www.example.com'
|