cardia 0.0.2 → 0.0.3

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.
@@ -17,9 +17,14 @@ module Cardia
17
17
  # transaction.merchant = merchant
18
18
  #
19
19
  # card = Cardia::CreditCard.valid_card_for_testing
20
- #
20
+ #
21
+ # For regular transactions, use:
21
22
  # status = transaction.register(card)
22
23
  #
24
+ # For 3d secure, use:
25
+ # status = transaction.register_3d(card, "http://my.success.url/", "http://my.failure.url/")
26
+ # This will return a URL that the user should be redirected to. When the user is sent to this address he will either be redirected to
27
+ # either the success or failure URL, depending on whether the payment was successful.
23
28
  class CreditCardTransaction
24
29
 
25
30
  attr_reader :order, :verification_address
@@ -30,7 +35,8 @@ module Cardia
30
35
  @http = http_connection
31
36
  end
32
37
 
33
- # Creates a new instance. Send along your Order as the parameter, see Billing::Order for methods that should be implemented in your order
38
+ # Creates a new instance. Send along your Order as the parameter, see Cardia::Order for methods that should be implemented in your order
39
+ # * _an_order_ The order
34
40
  def self.with_http_connection(an_order)
35
41
  http = Net::HTTP.new(self.server_name,"443")
36
42
  http.use_ssl = true
@@ -38,6 +44,7 @@ module Cardia
38
44
  end
39
45
 
40
46
  # Send along the Cardia::Merchant that the payment is for
47
+ # * _a_merchant_ a Cardia::Merchant
41
48
  def merchant=(a_merchant)
42
49
  @merchant = a_merchant
43
50
  end
@@ -122,7 +129,7 @@ module Cardia
122
129
  return REXML::Document.new(response.body)
123
130
  end
124
131
 
125
- # Register using 3DSecure. After doing this, we should redirect the customer to the location stored in @verification_address
132
+ # Register using 3DSecure. Send along a card, a URL for redirection after successful payments and a URL to redirect to when the payment was unsuccessful.
126
133
  def register_3d(a_credit_card, success_url, failure_url)
127
134
  raise "No verification code supplied" if a_credit_card.verification_value.nil?
128
135
  params = {
@@ -1,54 +1,64 @@
1
1
  module Cardia
2
+ # A very basic Money class, at the time being works with Norwegian Kroner
2
3
  class Money
3
4
  attr_reader :amount
5
+
6
+ # Create an instance for NOK
4
7
  def self.kroner(an_amount)
5
8
  an_amount = an_amount.to_i
6
9
  self.new(an_amount * 100)
7
10
  end
8
- def initialize(an_amount)
11
+
12
+ def initialize(an_amount) #:nodoc:
9
13
  @amount = an_amount
10
14
  end
11
15
 
12
- def times(factor_integer)
16
+ def times(factor_integer) #:nodoc:
13
17
  self.class.new(factor_integer * @amount)
14
18
  end
15
19
 
16
- def plus(a_money)
20
+ def plus(a_money) #:nodoc:
17
21
  self.class.new(a_money. amount + @amount)
18
22
  end
19
23
 
20
- def +(a_money)
24
+ def +(a_money) #:nodoc:
21
25
  self.plus(a_money)
22
26
  end
23
27
 
28
+ # Return the object as Norwegian Kroner
24
29
  def kroner
25
30
  (@amount / 100).truncate
26
31
  end
27
32
 
33
+ # Return the øre
28
34
  def oere
29
35
  @amount - kroner * 100
30
36
  end
31
37
 
32
- def nil?
38
+ def nil? #:nodoc:
33
39
  @amount.nil?
34
40
  end
35
41
 
42
+ # Return a new instance including tax
36
43
  def including_tax(tax_percentage)
37
44
  self.class.new((self.amount + self.amount * (tax_percentage / 100.0)).round)
38
45
  end
39
46
 
47
+ # Equality test, returns true for two objects of the same amount
40
48
  def ==(an_object)
41
49
  self.class == an_object.class and self.amount == an_object.amount
42
50
  end
43
51
 
52
+ # String representation
44
53
  def to_s
45
54
  "#{self.to_i},-"
46
55
  end
47
56
 
48
- def to_i
57
+ def to_i #:nodoc:
49
58
  (@amount/100.0).round
50
59
  end
51
-
60
+
61
+ # Formatted print
52
62
  def format_kroner_dot_oere
53
63
  return "%d.%.2d" % [self.kroner, self.oere]
54
64
  end
@@ -1,13 +1,13 @@
1
1
  module Cardia
2
- # This is the very minimum that's required in order for and Order to function. You probably have your own...
2
+ # This is the very minimum that's required in order for an Order to function. You probably have your own...
3
3
  # For home baked order classes, you need to implement methods listed below
4
4
  class Order
5
5
  attr_reader :amount, :description, :reference
6
6
  attr_accessor :customer, :status
7
7
 
8
8
  # Creates an instance: Parameters:
9
- # * +amount+: The amount as an integer
10
- # * +description+: Give a describing name (not used for much...)
9
+ # * +_amount_+: The amount as an integer
10
+ # * +_description_+: Give a describing name (not used for much...)
11
11
  def initialize(amount, description)
12
12
  @amount,@description = amount, description
13
13
  @reference = rand(10000)
@@ -2,7 +2,7 @@ module Cardia #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,7 +1,7 @@
1
1
  class CardiaAcceptanceTest < Test::Unit::TestCase
2
2
  def visa_card_for_testing
3
3
  result = Cardia::CreditCard.new
4
- result.number = "4000000000000002"
4
+ result.number = "4444333322221111"
5
5
  result.verification_value = "081"
6
6
  result.expiry_date = Date.parse("2009-03-01")
7
7
  result.type = "visa"
@@ -22,7 +22,6 @@ class CardiaAcceptanceTest < Test::Unit::TestCase
22
22
  end
23
23
 
24
24
  def real_merchant
25
- # Cardia::Merchant.with_token("0f0c518f-dc4f-4219-a356-9cbec52273d9")
26
25
  Cardia::Merchant.test_merchant
27
26
  end
28
27
 
@@ -65,7 +65,7 @@
65
65
  <h2>Forum</h2>
66
66
 
67
67
 
68
- <p><a href="http://rubyforge.org/forum/?group_id=4344">http://rubyforge.org/forum/?group_id=4344</a></p>
68
+ <p><a href="http://groups.google.com/group/cardia4ruby">We have a Google Group for this code</a></p>
69
69
 
70
70
 
71
71
  <h2>This is a work in progress</h2>
@@ -73,7 +73,7 @@
73
73
 
74
74
  <p>Although this is extracted from production quality code, this is a work in progress.</p>
75
75
  <p class="coda">
76
- <a href="">TODO</a>, 1st September 2007<br>
76
+ <a href="">TODO</a>, 3rd September 2007<br>
77
77
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
78
78
  </p>
79
79
  </div>
@@ -21,8 +21,7 @@ h2. Demonstration of usage
21
21
 
22
22
  h2. Forum
23
23
 
24
-
25
- "http://rubyforge.org/forum/?group_id=4344":http://rubyforge.org/forum/?group_id=4344
24
+ "We have a Google Group for this code":http://groups.google.com/group/cardia4ruby
26
25
 
27
26
  h2. This is a work in progress
28
27
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: cardia
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2007-09-03 00:00:00 +02:00
6
+ version: 0.0.3
7
+ date: 2007-09-04 00:00:00 +02:00
8
8
  summary: provides credit card payments through Cardia
9
9
  require_paths:
10
10
  - lib