tipjoy 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.10
1
+ 0.0.11
data/lib/tipjoy.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Tipjoy
2
- TIPJOY_BASE_URL = "http://tipjoy.com"
2
+ TIPJOY_BASE_URL = "http://tipjoy.com/api"
3
3
 
4
4
  def self.log!(logger=Logger.new(true))
5
5
  self.logger = logger
@@ -3,8 +3,8 @@ module Tipjoy
3
3
  include Tipjoy::Requestor
4
4
  include Tipjoy::BulkInitializer
5
5
 
6
- EXISTS_PATH = "/api/user/exists/"
7
- CREATE_PATH = "/api/createTwitterAccount/"
6
+ EXISTS_PATH = "/user/exists/"
7
+ CREATE_PATH = "/createTwitterAccount/"
8
8
 
9
9
  attr_accessor :username
10
10
  attr_accessor :user_id
@@ -1,3 +1,9 @@
1
1
  module Tipjoy
2
- class ResultError < Exception; end
2
+ class ResultError < Exception
3
+ attr_accessor :json
4
+ def initialize(json)
5
+ self.json = json
6
+ super
7
+ end
8
+ end
3
9
  end
@@ -21,7 +21,7 @@ module Tipjoy
21
21
  end
22
22
 
23
23
  def tipjoy_request(method, url, data={})
24
- Tipjoy.logger.error("requesting via #{method} " + url + "with args " + data.inspect)
24
+ Tipjoy.logger.error("requesting via #{method} " + url + " with args " + data.inspect)
25
25
  response = tipjoy_http_request(method, url, data)
26
26
 
27
27
  if !(200..299).include?(response.code.to_i)
@@ -34,7 +34,7 @@ module Tipjoy
34
34
 
35
35
  if json['result'] != 'success'
36
36
  Tipjoy.logger.error(" ResultError " + json.inspect)
37
- raise ::Tipjoy::ResultError.new(json.inspect)
37
+ raise ::Tipjoy::ResultError.new(json)
38
38
  end
39
39
 
40
40
  Tipjoy.logger.error(" response: " + json.inspect)
@@ -1,27 +1,47 @@
1
1
  module Tipjoy
2
2
  class Transaction
3
- # include Tipjoy::Requestor
3
+ include Tipjoy::Requestor
4
4
  include Tipjoy::BulkInitializer
5
5
 
6
+ SHOW_SINGLE_PATH = '/transaction/show/'
7
+
6
8
  attr_accessor :transaction_id,
7
- :username,
8
- :userid,
9
- :date_joined,
10
- :is_loan,
11
- :verified,
12
- :permalink,
13
- :time,
14
- :pretty_time,
15
- :amount,
16
- :twitter_username,
17
- :twitter_user_id,
18
- :profile_image_url,
19
- :tweet_id,
20
- :tweet_message,
21
- :tweet_message_html
9
+ :username,
10
+ :userid,
11
+ :date_joined,
12
+ :is_loan,
13
+ :verified,
14
+ :permalink,
15
+ :time,
16
+ :pretty_time,
17
+ :amount,
18
+ :twitter_username,
19
+ :twitter_user_id,
20
+ :profile_image_url,
21
+ :tweet_id,
22
+ :tweet_message,
23
+ :tweet_message_html
22
24
 
23
25
  def initialize(options={})
24
26
  assign_attributes(options)
25
27
  end
28
+
29
+ def amount=(a)
30
+ @amount = a.to_f
31
+ end
32
+
33
+ def is_loan=(is_loan)
34
+ @is_loan = (is_loan == 1) ? true : false
35
+ end
36
+
37
+ def self.find(id)
38
+ json = tipjoy_request(:get, TIPJOY_BASE_URL + SHOW_SINGLE_PATH + "?id=" + id.to_s)
39
+
40
+ return Transaction.new(json)
41
+
42
+ rescue ResultError => e
43
+ raise e unless e.json["reason"] == "invalid transaction id"
44
+ return nil
45
+ end
26
46
  end
27
47
  end
@@ -1,5 +1,62 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe Tipjoy::Transaction do
4
+ before do
5
+ @expected_transaction = {"permalink"=>"http://twitter.com/poopr112",
6
+ "time"=>"2009-05-27 15:53:21",
7
+ "twitter_username"=>"poopr111",
8
+ "is_private"=>false,
9
+ "twitter_user_id"=>"42670876",
10
+ "username"=>"poopr111",
11
+ "transaction_id"=>47702,
12
+ "amount"=>"1.25",
13
+ "userid"=>56673,
14
+ "tweet_message"=>"p $1.25 @poopr112 for api test",
15
+ "prettyTime"=>"4 days ago", "date_joined"=>"2009-05-26 10:24:07",
16
+ "verified"=>false,
17
+ "isLoan"=>1,
18
+ "tweet_id"=>"1939894288",
19
+ "tweet_message_html"=>"p $1.25 <a href='http://twitter.com/poopr112'>@poopr112</a> for api test",
20
+ "profile_image_url"=>"http://s3.amazonaws.com/twitter_thumbs/default.jpg"
21
+ }
22
+ end
23
+
24
+ describe ".find" do
25
+ it "should return a transaction" do
26
+ transaction = Tipjoy::Transaction.find(@expected_transaction['transaction_id'])
27
+ transaction.should_not be_nil
28
+ transaction.transaction_id.should == @expected_transaction['transaction_id']
29
+ transaction.amount.should == @expected_transaction['amount'].to_f
30
+ end
31
+
32
+ it "should return nil if the transaction is not found" do
33
+ transaction = Tipjoy::Transaction.find(-1)
34
+ transaction.should be_nil
35
+ end
36
+
37
+ describe "failure" do
38
+ before do
39
+ @requestor = Tipjoy::Transaction
40
+ @request = Proc.new do
41
+ Tipjoy::Transaction.find(-1)
42
+ end
43
+ end
44
+
45
+ it_should_behave_like "tipjoy request maker that might fail"
46
+ end
47
+ end
48
+
49
+ describe "#is_loan" do
50
+ it "should be true when response isLoan is 1" do
51
+ transaction = Tipjoy::Transaction.new({"isLoan"=>1})
52
+ transaction.is_loan.should be_true
53
+ end
54
+
55
+ it "should be false when response isLoan is 0" do
56
+ transaction = Tipjoy::Transaction.new({"isLoan"=>0})
57
+ transaction.is_loan.should be_false
58
+ end
59
+
60
+ end
4
61
 
5
62
  end
data/tipjoy.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tipjoy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Thompson
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tipjoy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Thompson