tipjoy 0.0.10 → 0.0.11

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.
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