checkdin 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = checkdin
2
2
 
3
- Description goes here.
3
+ Ruby gem for interacting with the checkd.in API.
4
4
 
5
5
  == Contributing to checkdin
6
6
 
@@ -25,5 +25,18 @@ module Checkdin
25
25
  return_error_or_body(response)
26
26
  end
27
27
 
28
+ # Add a vote for a single activity when voting is enabled for its promotion
29
+ #
30
+ # param [Integer] id The ID of the activity
31
+ # @param [Hash] options
32
+ # @option options Integer :user_id - The user that is performing this vote.
33
+
34
+ def add_vote_on_activity(id, options={})
35
+ response = connection.post do |req|
36
+ req.url "activities/#{id}/vote", options
37
+ end
38
+ return_error_or_body(response)
39
+ end
40
+
28
41
  end
29
42
  end
@@ -24,5 +24,19 @@ module Checkdin
24
24
  return_error_or_body(response)
25
25
  end
26
26
 
27
+ # Get a list of activities for a promotion ordered by the number of votes they have received
28
+ #
29
+ # param [Integer] id The ID ofthe promotion
30
+ # @param [Hash] options
31
+ # @option options Integer :limit - The maximum number of records to return.
32
+ # @option options Integer :page - The page of results to return.
33
+
34
+ def promotion_votes_leaderboard(id, options={})
35
+ response = connection.get do |req|
36
+ req.url "promotions/#{id}/votes_leaderboard", options
37
+ end
38
+ return_error_or_body(response)
39
+ end
40
+
27
41
  end
28
42
  end
@@ -1,3 +1,3 @@
1
1
  module Checkdin
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
@@ -43,4 +43,30 @@ describe Checkdin::Activities do
43
43
  end
44
44
 
45
45
  end
46
+
47
+ context "voting for an activity" do
48
+ use_vcr_cassette
49
+ let(:result) { @client.add_vote_on_activity(18881) }
50
+
51
+ it "should make the activity's information available" do
52
+ result.activity.type.should == "twitter_status"
53
+ end
54
+
55
+ it "should register the vote" do
56
+ result.activity.vote_count.should == 6
57
+ end
58
+
59
+ context "passing an email" do
60
+ use_vcr_cassette
61
+ let(:result) { @client.add_vote_on_activity(18881, :user_id => 36)}
62
+
63
+ it "should register the vote as normal" do
64
+ result.activity.type.should == "twitter_status"
65
+ end
66
+
67
+ it "should up the vote count as normal" do
68
+ result.activity.vote_count.should == 7
69
+ end
70
+ end
71
+ end
46
72
  end
@@ -32,4 +32,32 @@ describe Checkdin::Promotions do
32
32
  result.count.should == 2
33
33
  end
34
34
  end
35
+
36
+ context "viewing the votes leaderboard for a promotion" do
37
+ use_vcr_cassette
38
+ let(:result) { @client.promotion_votes_leaderboard(54, :limit => limit) }
39
+ let(:limit) { nil }
40
+
41
+ it "should return promotion information" do
42
+ result.promotion.title.should == "A voting promotion!"
43
+ end
44
+
45
+ it "should return a list of activities ordered by vote count" do
46
+ result.promotion.votes_leaderboard.activities.first.activity.vote_count.should == 7
47
+ result.promotion.votes_leaderboard.activities.last.activity.vote_count.should == 0
48
+ end
49
+
50
+ it "should return all activities" do
51
+ result.promotion.votes_leaderboard.activities.count.should == 3
52
+ end
53
+
54
+ context "limiting the number of records returned" do
55
+ use_vcr_cassette
56
+ let(:limit) { 1 }
57
+
58
+ it "should only return limit number of records" do
59
+ result.promotion.votes_leaderboard.activities.count.should == 1
60
+ end
61
+ end
62
+ end
35
63
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: checkdin
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.1
5
+ version: 0.2.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matt Mueller