tangocard 0.1.0 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDYyMGMwNGRhZmQ4ZjlhOGFjZjcwZDNlOTRhZjBkOWNiYjQ5M2IyMA==
4
+ OGYwODkzOWEyZGFkNjZkZTliNzQyZWJhNDU4NGE0NDY4NTJlMWZjNA==
5
5
  data.tar.gz: !binary |-
6
- YjZiYTE0ZTNkZGNiNzVlY2NkZTk4YTMxZWJjNzgwNzM5MTI5NjE0MA==
6
+ NTRkNDVlOGFlM2E4NTJjZTgyNGE2ZjMzMzA0YTQ2Y2IwNDdmZTliNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGVjODkzNWM1NWMwZTNkYzI2ZWY4ZjZiNzMzOWI4Zjc5YzFjMjNiOGJkNzFl
10
- MmQyOWRmNDJlNjgyODcyZjNhNzFmM2M2ZTY0YjcwODJhNzM2ZmE3MTJhMjBi
11
- NmVhMTE3MzUwODI3OWY2NzQyNDI5NTRhNmFiNTVjYTMxNmNkODA=
9
+ OWJhMDlkMTBiNzllZWM3YmI3YWRjZGNkMjBiN2YxMWQwZmI0YTdjYjVkNzU0
10
+ YTRjNjNmNWJlZDZjY2NlZmNlYjFhMGJlYmQ4NWMwNGM5MGFiZmYyNTVjZDgz
11
+ YTgwMmUwZTkyMTEwZmM5ZDcyYzdiZWM3Yjc3MDA3ODgyZWYxMzQ=
12
12
  data.tar.gz: !binary |-
13
- Y2Q1N2QzNTI1M2EyNWY5N2UyYzU4NWZlZGI0NmY4YTllMDM4YmY5ZGYxZjNk
14
- NTNjMjIzMjNhMjE0ZTkyZTY4NTg4OTUwMWE5Yzk0NzRiNmIzZjA0ZTczYzE0
15
- MDE0MWE2YmIyYjY5NTAzZDdjYmFiYzFhOGZhYThjMzhkYzYxNWI=
13
+ NGNiYThjYTE2NzNlODhhMDYxNTE0YjI1OTFjMTk3OWFiNjdkZmEwNDcxOTFk
14
+ NTdlMjgzZmM2ZjdhYzhmZjVlNWEwYzRjZGE2ZDk2NTYwYjc1ZTIyYTkxNTA1
15
+ YzdkNDNhZTE3Yjg0ZTRkNGYzZTk3OTRhMGM3YzE5OTRiNzhkZWQ=
data/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # Tangocard
2
+
3
+ Ruby Wrapper for Tango Card RaaS API.
4
+
5
+ Tango Card provides a RaaS API for developers (https://github.com/tangocarddev/RaaS). This gem provides commonsense Ruby
6
+ objects to wrap the JSON endpoints of the RaaS API.
7
+
8
+ ## Information
9
+
10
+ * RDoc documentation [available on RubyDoc.info](http://rubydoc.info/github/bonusly/tangocard/master/frames)
11
+ * Source code [available on GitHub](https://github.com/bonusly/tangocard)
12
+
13
+ ## Getting Help
14
+
15
+ * Please report bugs on the [issue tracker](https://github.com/bonusly/tangocard/issues)
16
+
17
+ ## Installation
18
+
19
+ ### Rails 3
20
+
21
+ Add the `tangocard` gem to your `Gemfile`:
22
+
23
+ ```
24
+ gem 'tangocard'
25
+ ```
26
+
27
+ Create an initializer, e.g. `config/initializers/tangocard.rb`:
28
+
29
+ ```
30
+ Tangocard.configure do |c|
31
+ c.name = "BonuslyXYZ"
32
+ c.key = "Dnv9ehvff29"
33
+ c.base_uri = "https://sandbox.tangocard.com"
34
+ end
35
+ ```
36
+
37
+ There are three required configuration parameters:
38
+
39
+ * `name` - The API account name you receive from Tango Card
40
+ * `key` - The API account key you receive from Tango Card
41
+ * `base_uri` - This defaults to the Tango Card sandbox. For production, you must specify the base URI for the produciton RaaS API
42
+
43
+ There are also three optional configuration parameters:
44
+
45
+ * `default_brands` - An array of strings for the brands you want to retrieve with Tangocard::Brand.default_brands. The strings should match the unique brand `description` fields exactly.
46
+ * `local_images` - An array of local image names/URIs that you want to display instead of the default Tango Card-provided `image_url`. `image_url is sometimes blank, so this can be handy in those cases.
47
+ * `sku_blacklist` - Reward SKUs that are blacklisted, ie. should never be returned as a purchasable reward.
48
+
49
+ ## Getting Started
50
+
51
+ This gem provides two tools:
52
+
53
+ 1. A simple wrapper for the Tango Card RaaS API, consisting of two classes: `Tangocard::Raas` and `Tangocard::Response`.
54
+ 2. Models for each of the Tango Card objects: Accounts, Brands, Rewards, and Orders. These provide a greater level of abstraction and ease of use.
55
+
56
+ ## Notes and Credits
57
+
58
+ This project is developed and maintained by Smartly, Inc. - makers of http://bonus.ly.
59
+
60
+ This project uses the MIT-LICENSE.
@@ -1,29 +1,57 @@
1
- # Wrapper for Tangocard RaaS Account
2
- # https://github.com/tangocarddev/RaaS#account-resources
3
1
  class Tangocard::Account
4
2
  attr_reader :customer, :identifier, :email, :available_balance
5
3
 
6
4
  private_class_method :new
7
5
 
8
- # parsed_response={"success"=>true, "account"=>{"identifier"=>"test1", "email"=>"test@test.com", "customer"=>"bonusly", "available_balance"=>0}}
6
+ # Find account given customer and identifier. Raises Tangocard::AccountNotFoundException on failure.
7
+ #
8
+ # Example:
9
+ # >> Tangocard::Account.find('bonusly', 'test')
10
+ # => #<Tangocard::Account:0x007f9a6fec0138 @customer="bonusly", @email="dev@bonus.ly", @identifier="test", @available_balance=1200>
11
+ #
12
+ # Arguments:
13
+ # customer: (String)
14
+ # identifier: (String)
9
15
  def self.find(customer, identifier)
10
16
  response = Tangocard::Raas.show_account({'customer' => customer, 'identifier' => identifier})
11
17
  if response.success?
12
18
  new(response.parsed_response['account'])
13
19
  else
14
- raise Tangocard::AccountNotFoundException, "Tangocard - Error finding account: #{response.error_message}"
20
+ raise Tangocard::AccountNotFoundException, "#{response.error_message}"
15
21
  end
16
22
  end
17
23
 
24
+ # Create account given customer, identifier, and email.
25
+ # Raises Tangocard::AccountCreateFailedException on failure.
26
+ #
27
+ # Example:
28
+ # >> Tangocard::Account.create('bonusly', 'test', 'dev@bonus.ly')
29
+ # => #<Tangocard::Account:0x007f9a6fec0138 @customer="bonusly", @email="dev@bonus.ly", @identifier="test", @available_balance=0>
30
+ #
31
+ # Arguments:
32
+ # customer: (String)
33
+ # identifier: (String)
34
+ # email: (String)
18
35
  def self.create(customer, identifier, email)
19
36
  response = Tangocard::Raas.create_account({'customer' => customer, 'identifier' => identifier, 'email' => email})
20
37
  if response.success?
21
38
  new(response.parsed_response['account'])
22
39
  else
23
- raise Tangocard::AccountCreateFailedException, "Tangocard - Error finding account: #{response.error_message}"
40
+ raise Tangocard::AccountCreateFailedException, "#{response.error_message}"
24
41
  end
25
42
  end
26
43
 
44
+ # Find account, or create if account not found.
45
+ # Raises Tangocard::AccountCreateFailedException on failure.
46
+ #
47
+ # Example:
48
+ # >> Tangocard::Account.find_or_create('bonusly', 'test', 'dev@bonus.ly')
49
+ # => #<Tangocard::Account:0x007f9a6fec0138 @customer="bonusly", @email="dev@bonus.ly", @identifier="test", @available_balance=0>
50
+ #
51
+ # Arguments:
52
+ # customer: (String)
53
+ # identifier: (String)
54
+ # email: (String)
27
55
  def self.find_or_create(customer, identifier, email)
28
56
  begin
29
57
  find(customer, identifier)
@@ -32,7 +60,6 @@ class Tangocard::Account
32
60
  end
33
61
  end
34
62
 
35
- # {"identifier"=>"test1", "email"=>"test@test.com", "customer"=>"bonusly", "available_balance"=>0}
36
63
  def initialize(params)
37
64
  @customer = params['customer']
38
65
  @email = params['email']
@@ -44,6 +71,34 @@ class Tangocard::Account
44
71
  @available_balance
45
72
  end
46
73
 
74
+ # Add funds to the account.
75
+ #
76
+ # Example:
77
+ # >> account.fund(10000, '128.128.128.128', Hash (see example below))
78
+ # => #<Tangocard::Account:0x007f9a6fec0138 @customer="bonusly", @email="dev@bonus.ly", @identifier="test", @available_balance=0>
79
+ #
80
+ # Arguments:
81
+ # amount: (Integer)
82
+ # client_ip: (String)
83
+ # credit_card: (Hash) - see https://github.com/tangocarddev/RaaS/blob/master/fund_create.schema.json for details
84
+ #
85
+ # Credit Card Hash Example:
86
+ #
87
+ # {
88
+ # 'number' => '4111111111111111',
89
+ # 'expiration' => '01/17',
90
+ # 'security_code' => '123',
91
+ # 'billing_address' => {
92
+ # 'f_name' => 'Jane',
93
+ # 'l_name' => 'User',
94
+ # 'address' => '123 Main Street',
95
+ # 'city' => 'Anytown',
96
+ # 'state' => 'NY',
97
+ # 'zip' => '11222',
98
+ # 'country' => 'USA',
99
+ # 'email' => 'jane@company.com'
100
+ # }
101
+ # }
47
102
  def fund!(amount, client_ip, credit_card)
48
103
  params = {
49
104
  'amount' => amount,
@@ -1,16 +1,43 @@
1
- # Documentation: https://github.com/tangocarddev/RaaS
2
1
  class Tangocard::Brand
3
2
  attr_reader :description, :rewards
4
3
 
4
+ # Return an array of all brands.
5
+ #
6
+ # Example:
7
+ # >> Tangocard::Brand.all
8
+ # => [#<Tangocard::Brand:0x007f9a6f9d3030 ...>, #<Tangocard::Brand:0x007f9a6f9d3030 ...>, ...]
9
+ #
10
+ # Arguments:
11
+ # none
5
12
  def self.all
6
13
  result = Tangocard::Raas.rewards_index.parsed_response
7
14
  result['brands'].map{|p| Tangocard::Brand.new(p)}
8
15
  end
9
16
 
17
+ # Return an array of default brands. Must set default_brands in your Tangocard initializer (see README).
18
+ #
19
+ # Example:
20
+ # >> Tangocard::Brand.default_brands
21
+ # => [#<Tangocard::Brand:0x007f9a6f9d3030 ...>, #<Tangocard::Brand:0x007f9a6f9d3030 ...>, ...]
22
+ #
23
+ # Arguments:
24
+ # none
10
25
  def self.default_brands
11
26
  self.all.select{|b| Tangocard.configuration.default_brands.include?(b.description)}
12
27
  end
13
28
 
29
+ # Find a brand by its :description field.
30
+ #
31
+ # Example:
32
+ # >> Tangocard::Brand.find("Amazon.com")
33
+ # => #<Tangocard::Brand:0x007f9a6fb076e0 @description="Amazon.com",
34
+ # @image_url="http://static-integration.tangocard.com/graphics/item-images/amazon-gift-card.png",
35
+ # @rewards=[#<Tangocard::Reward:0x007f9a6fb07618 @description="Amazon.com Gift Card (Custom)",
36
+ # @sku="AMZN-E-V-STD", @currency_type="USD", @unit_price=-1, @available=true, @min_price=100,
37
+ # @max_price=100000>]>
38
+ #
39
+ # Arguments:
40
+ # brand_name: (String)
14
41
  def self.find(brand_name)
15
42
  self.all.select{|b| b.description == brand_name}.first
16
43
  end
@@ -21,19 +48,54 @@ class Tangocard::Brand
21
48
  @rewards = params['rewards'].map{|p| Tangocard::Reward.new(p)}
22
49
  end
23
50
 
24
- # Some brands don't have logo images provided by the API, so we do this.
51
+ # Return the image_url for the brand. For some brands, there is no image_url. You can set :local_images in your
52
+ # Tangocard initializer to provide a local image for a specified brand. See the README for details.
53
+ #
54
+ # Example:
55
+ # >> amazon_brand.image_url
56
+ # => "http://static-integration.tangocard.com/graphics/item-images/amazon-gift-card.png"
57
+ #
58
+ # Arguments:
59
+ # none
25
60
  def image_url
26
61
  Tangocard.configuration.local_images[description] || @image_url
27
62
  end
28
63
 
64
+ # Return the rewards that are purchasable given a balance (in cents).
65
+ #
66
+ # Example:
67
+ # >> itunes_brand.purchasable_rewards(1000)
68
+ # => [#<Tangocard::Reward:0x007f9a6fd29810 @description="iTunes Gift Card $10", @sku="APPL-E-1000-STD",
69
+ # @currency_type="USD", @unit_price=1000, @available=true, @min_price=0, @max_price=0>]
70
+ #
71
+ # Arguments:
72
+ # balance_in_cents: (Integer)
29
73
  def purchasable_rewards(balance_in_cents)
30
74
  rewards.select{|r| r.purchasable?(balance_in_cents) && !Tangocard.configuration.sku_blacklist.include?(r.sku)}
31
75
  end
32
76
 
77
+ # True if there are any purchasable rewards given a balance in cents, false otherwise.
78
+ #
79
+ # Example:
80
+ # >> itunes_brand.has_purchasable_rewards?(1000)
81
+ # => true
82
+ #
83
+ # Arguments:
84
+ # balance_in_cents: (Integer)
33
85
  def has_purchasable_rewards?(balance_in_cents)
34
86
  purchasable_rewards(balance_in_cents).any?
35
87
  end
36
88
 
89
+ # True if this is a brand with variable-price rewards.
90
+ #
91
+ # Example:
92
+ # >> itunes_brand.variable_price?
93
+ # => false
94
+ # >> amazon_brand.variable_price?
95
+ # => true
96
+ #
97
+ # Arguments:
98
+ # none
37
99
  def variable_price?
38
100
  rewards.select{|r| r.variable_price? }.any?
39
101
  end
@@ -1,5 +1,3 @@
1
- # Wrapper for Tangocard RaaS Order
2
- # https://github.com/tangocarddev/RaaS#order-resources
3
1
  class Tangocard::Order
4
2
  attr_reader :order_id,
5
3
  :account_identifier,
@@ -13,29 +11,14 @@ class Tangocard::Order
13
11
 
14
12
  private_class_method :new
15
13
 
16
- #{
17
- # "success"=>true,
18
- # "order"=> {
19
- # "order_id"=>"113-08258652-15",
20
- # "account_identifier"=>"ElliottTest",
21
- # "customer"=>"ElliottTest",
22
- # "sku"=>"APPL-E-1500-STD",
23
- # "amount"=>1500,
24
- # "reward_message"=>"testing",
25
- # "reward_subject"=>"RaaS Sandbox Test",
26
- # "reward_from"=>"Elliott",
27
- # "delivered_at"=>"2013-08-15T17:42:18+00:00",
28
- # "recipient"=> {
29
- # "name"=>"Elliott",
30
- # "email"=>"elliott@tangocard.com"
31
- # },
32
- # "reward"=> {
33
- # "token"=>"520d12fa655b54.34581245",
34
- # "number"=>"1111111111111256"
35
- # }
36
- # }
37
- #}
38
-
14
+ # Return an array of all orders.
15
+ #
16
+ # Example:
17
+ # >> Tangocard::Order.all
18
+ # => [#<Tangocard::Order:0x007f9a6c4bca68 ...>, #<Tangocard::Order:0x007f9a6c4bca68 ...>, ...]
19
+ #
20
+ # Arguments:
21
+ # params: (Hash - optional, see https://github.com/tangocarddev/RaaS#retrieve-a-list-of-historical-orders for details)
39
22
  def self.all(params = {})
40
23
  response = Tangocard::Raas.orders_index(params)
41
24
  if response.success?
@@ -45,15 +28,31 @@ class Tangocard::Order
45
28
  end
46
29
  end
47
30
 
31
+ # Find an order by order_id. Raises Tangocard::OrderNotFoundException on failure.
32
+ #
33
+ # Example:
34
+ # >> Tangocard::Order.find("113-08258652-15")
35
+ # => #<Tangocard::Order:0x007f9a6e3a90c0 @order_id="113-08258652-15", @account_identifier="ElliottTest", @customer="ElliottTest", @sku="APPL-E-1500-STD", @amount=1500, @reward_message="testing", @reward_subject="RaaS Sandbox Test", @reward_from="Elliott", @delivered_at="2013-08-15T17:42:18+00:00", @recipient={"name"=>"Elliott", "email"=>"elliott@tangocard.com"}, @reward={"token"=>"520d12fa655b54.34581245", "number"=>"1111111111111256"}>
36
+ #
37
+ # Arguments:
38
+ # order_id: (String)
48
39
  def self.find(order_id)
49
40
  response = Tangocard::Raas.show_order({'order_id' => order_id})
50
41
  if response.success?
51
42
  new(response.parsed_response['order'])
52
43
  else
53
- raise Tangocard::OrderNotFoundException, "Order (#{order_id}) not found. Error message: #{response.error_message}"
44
+ raise Tangocard::OrderNotFoundException, "#{response.error_message}"
54
45
  end
55
46
  end
56
47
 
48
+ # Create a new order. Raises Tangocard::OrderCreateFailedException on failure.
49
+ #
50
+ # Example:
51
+ # >> Tangocard::Order.create(params)
52
+ # => #<Tangocard::Order:0x007f9a6c4bca68 ...>
53
+ #
54
+ # Arguments:
55
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#place-an-order for details)
57
56
  def self.create(params)
58
57
  response = Tangocard::Raas.create_order(params)
59
58
  if response.success?
@@ -1,35 +1,87 @@
1
- # Documentation: https://github.com/tangocarddev/RaaS
2
1
  class Tangocard::Raas
3
2
  include HTTParty
4
3
  base_uri Tangocard.configuration.base_uri
5
4
 
6
- # https://github.com/tangocarddev/RaaS/blob/master/account_create.schema.json
5
+ # Create a new account. Returns Tangocard::Response object.
6
+ #
7
+ # Example:
8
+ # >> Tangocard::Raas.create_account(params)
9
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
10
+ #
11
+ # Arguments:
12
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#create-a-new-platform-account for details)
7
13
  def self.create_account(params)
8
14
  Tangocard::Response.new(post('/raas/v1/accounts', {:body => params.to_json}.merge(basic_auth_param)))
9
15
  end
10
16
 
17
+ # Gets account details. Returns Tangocard::Response object.
18
+ #
19
+ # Example:
20
+ # >> Tangocard::Raas.show_account(params)
21
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
22
+ #
23
+ # Arguments:
24
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#get-the-information-for-a-specific-platform-account for details)
11
25
  def self.show_account(params)
12
26
  Tangocard::Response.new(get("/raas/v1/accounts/#{params['customer']}/#{params['identifier']}", basic_auth_param))
13
27
  end
14
28
 
15
- # https://github.com/tangocarddev/RaaS/blob/master/fund_create.schema.json
29
+ # Funds an account. Returns Tangocard::Response object.
30
+ #
31
+ # Example:
32
+ # >> Tangocard::Raas.fund_account(params)
33
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
34
+ #
35
+ # Arguments:
36
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#fund-a-platforms-account for details)
16
37
  def self.fund_account(params)
17
38
  Tangocard::Response.new(post('/raas/v1/funds', {:body => params.to_json}.merge(basic_auth_param)))
18
39
  end
19
40
 
41
+ # Retrieve all rewards. Returns Tangocard::Response object.
42
+ #
43
+ # Example:
44
+ # >> Tangocard::Raas.rewards_index
45
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
46
+ #
47
+ # Arguments:
48
+ # none
20
49
  def self.rewards_index
21
50
  Tangocard::Response.new(get('/raas/v1/rewards', basic_auth_param))
22
51
  end
23
52
 
24
- # https://github.com/tangocarddev/RaaS/blob/master/order_create.schema.json
53
+ # Create an order. Returns Tangocard::Response object.
54
+ #
55
+ # Example:
56
+ # >> Tangocard::Raas.create_order(params)
57
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
58
+ #
59
+ # Arguments:
60
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#place-an-order for details)
25
61
  def self.create_order(params)
26
62
  Tangocard::Response.new(post('/raas/v1/orders', {:body => params.to_json}.merge(basic_auth_param)))
27
63
  end
28
64
 
65
+ # Get order details. Returns Tangocard::Response object.
66
+ #
67
+ # Example:
68
+ # >> Tangocard::Raas.show_order(params)
69
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
70
+ #
71
+ # Arguments:
72
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#retrieve-a-historical-order for details)
29
73
  def self.show_order(params)
30
74
  Tangocard::Response.new(get("/raas/v1/orders/#{params['order_id']}", basic_auth_param))
31
75
  end
32
76
 
77
+ # Retrieve a list of historical orders. Returns Tangocard::Response object.
78
+ #
79
+ # Example:
80
+ # >> Tangocard::Raas.orders_index
81
+ # => #<Tangocard::Response:0x007f9a6c4bca68 ...>
82
+ #
83
+ # Arguments:
84
+ # params: (Hash - see https://github.com/tangocarddev/RaaS#retrieve-a-list-of-historical-orders for details)
33
85
  def self.orders_index(params = {})
34
86
  query_string = ""
35
87
  if params.any?
@@ -1,5 +1,3 @@
1
- # Tangocard RaaS Response Wrapper
2
- # https://github.com/tangocarddev/RaaS#responses
3
1
  class Tangocard::Response
4
2
  attr_reader :raw_response
5
3
 
@@ -1,4 +1,3 @@
1
- # Documentation: https://github.com/tangocarddev/RaaS
2
1
  class Tangocard::Reward
3
2
  attr_reader :description, :sku, :currency_type, :unit_price, :available, :min_price, :max_price
4
3
 
@@ -12,10 +11,28 @@ class Tangocard::Reward
12
11
  @max_price = params['max_price'].to_i
13
12
  end
14
13
 
14
+ # Is this a variable-priced reward?
15
+ #
16
+ # Example:
17
+ # >> reward.variable_price?
18
+ # => true # reward is variable-priced
19
+ #
20
+ # Arguments:
21
+ # none
15
22
  def variable_price?
16
23
  self.unit_price == -1
17
24
  end
18
25
 
26
+ # Is this reward purchasable given a certain number of cents available to purchase it?
27
+ # True if reward is available and user has enough cents
28
+ # False if reward is unavailable OR user doesn't have enough cents
29
+ #
30
+ # Example:
31
+ # >> reward.purchasable?(500)
32
+ # => true # reward is available and costs <= 500 cents
33
+ #
34
+ # Arguments:
35
+ # balance_in_cents: (Integer)
19
36
  def purchasable?(balance_in_cents)
20
37
  return false unless available
21
38
 
@@ -26,9 +43,17 @@ class Tangocard::Reward
26
43
  end
27
44
  end
28
45
 
29
- def price_in_usd(field_name)
46
+ # Converts price in cents for given field to Money object using currency_type
47
+ #
48
+ # Example:
49
+ # >> reward.to_money(:unit_price)
50
+ # => #<Money fractional:5000 currency:USD>
51
+ #
52
+ # Arguments:
53
+ # field_name: (Symbol - must be :min_price, :max_price, or :unit_price)
54
+ def to_money(field_name)
30
55
  return nil unless [:min_price, :max_price, :unit_price].include?(field_name)
31
56
 
32
- Money.new(self.send(field_name), "USD")
57
+ Money.new(self.send(field_name), currency_type)
33
58
  end
34
59
  end
@@ -1,3 +1,3 @@
1
1
  module Tangocard
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tangocard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raphael Crawford-Marks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-17 00:00:00.000000000 Z
11
+ date: 2013-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -89,7 +89,7 @@ files:
89
89
  - lib/tangocard.rb
90
90
  - MIT-LICENSE
91
91
  - Rakefile
92
- - README.rdoc
92
+ - README.md
93
93
  homepage: http://bonus.ly
94
94
  licenses: []
95
95
  metadata: {}
data/README.rdoc DELETED
@@ -1,10 +0,0 @@
1
- = Tangocard
2
-
3
- Ruby Wrapper for Tango Card RaaS API.
4
-
5
- Tango Card provides a RaaS API for developers (https://github.com/tangocarddev/RaaS). This gem provides commonsense Ruby
6
- objects to wrap the JSON endpoints of the RaaS API.
7
-
8
- This project is developed and maintained by Smartly, Inc. - makers of http://bonus.ly.
9
-
10
- This project uses the MIT-LICENSE.