safecharge 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f4ff9528287b8bad1b1eaf5145beb288868f4f1
4
- data.tar.gz: 93ecc7d0e7a7a5df3b734d4fc2a11b4f48e0b150
3
+ metadata.gz: 803b939f2a7601288a6bee3f4ceaefd4446ea5c9
4
+ data.tar.gz: dbdba6a50bbe8a55547fef373a5f648d8de3f7dd
5
5
  SHA512:
6
- metadata.gz: 8798d81ecc52e01558831966e2cfc1e376fa76634e4d5982355d1269e710fd9e09f6a83eb5523c14a4c2497d82234e4481005281287d4ce925558b9e093caa66
7
- data.tar.gz: 1576c2aa11831a82c037d17c5933d079b621ea54aa5bb2b4a3189b139e7e75662e7fd92b9fd1d362db21711a775648ae01f8cbb11b2439b6b7ffeef8308f74ee
6
+ metadata.gz: 29a20198c0e45c1782c910fd5df59f63375c808d1fd6f386fcaa7e7231c573f4a8e8edf92f3b5fa09a05ca164eaf538f96bd7c5345c518f913ac37df371aa30f
7
+ data.tar.gz: 5995a85b6ed331383de67280b9007d115f2a2c019f715f6787588991140bb978b7037805b156644bd8da49d9409c6c237029f92b4e1fdbb6577ea0b518f8866f
data/README.md CHANGED
@@ -5,7 +5,7 @@ the SafeCharge Web Cashier API v1.1 (Revised 10 July 2013).
5
5
 
6
6
  ## Status
7
7
 
8
- This project is under active development right now, and not suitable for use.
8
+ This project is under active development right now, and may not suitable for use.
9
9
 
10
10
  ## Installation
11
11
 
@@ -63,32 +63,47 @@ module Safecharge
63
63
  'encoding' => Safecharge::Constants::DEFAULT_ENCODING
64
64
  }
65
65
 
66
- def initialize(url, params = {})
67
- raise ArgumentError, "missing url" if url == nil || url.empty?
68
- if url === Safecharge::Constants::SERVER_TEST
66
+ def initialize(a_url, some_params = {})
67
+ raise ArgumentError, "missing url" if a_url == nil || a_url.empty?
68
+ if a_url === Safecharge::Constants::SERVER_TEST
69
69
  self.mode = 'test'
70
- elsif url === Safecharge::Constants::SERVER_LIVE
70
+ elsif a_url === Safecharge::Constants::SERVER_LIVE
71
71
  self.mode = 'live'
72
72
  else
73
- raise ArgumentError, "invalid url #{url}"
73
+ raise ArgumentError, "invalid url #{a_url}"
74
74
  end
75
- self.url = url
76
- self.full_url = url
77
- core_params, items, extracted_items = self.extract_items(convert_symbols_to_strings(params))
75
+ self.url = a_url
76
+ self.full_url = a_url
77
+ core_params, items, extracted_items = self.extract_items(convert_symbols_to_strings(some_params))
78
78
  raise ValidationException, "Missing array of Items." if items == nil || items.empty?
79
79
  self.items = items
80
80
  self.params = DEFAULT_PARAMS.merge(core_params)
81
81
  self.validate_parameters(self.params)
82
82
  items.each {|i| self.validate_parameters(i, self.class::ALLOWED_ITEM_FIELDS)}
83
83
  self.params.merge!(extracted_items)
84
- self.params.merge!({'numberofitems' => items.size,
85
- 'time_stamp' => Time.now.utc.strftime("%Y-%m-%d.%H:%M:%S"),
86
- 'checksum' => calculate_checksum})
84
+ self.params.merge!({'numberofitems' => items.size, 'time_stamp' => Time.now.utc.strftime("%Y-%m-%d.%H:%M:%S")})
85
+ self.params.merge!({'checksum' => calculate_checksum}) # must happen after the previous merge!
87
86
  self.construct_url
88
87
  end
89
88
 
90
89
  protected
91
90
 
91
+ def convert_symbols_to_strings(a_hash = {})
92
+ raise ArgumentError, "Expected a Hash" unless a_hash.is_a?(Hash)
93
+ return {} if a_hash.empty?
94
+ result = {}
95
+ a_hash.each do |key, value|
96
+ if value.is_a?(Array)
97
+ result[key.to_s] = value.map { |av| av.is_a?(Hash) ? convert_symbols_to_strings(av) : av }
98
+ elsif value.is_a?(Hash)
99
+ result[key.to_s] = convert_symbols_to_strings(value)
100
+ else
101
+ result[key.to_s] = value
102
+ end
103
+ end
104
+ return result
105
+ end
106
+
92
107
  def extract_items(params)
93
108
  items = params.delete('items')
94
109
  return params, nil, nil if items.nil?
@@ -174,22 +189,6 @@ module Safecharge
174
189
  return uri
175
190
  end
176
191
 
177
- def convert_symbols_to_strings(a_hash = {})
178
- return {} if a_hash.empty?
179
- result = {}
180
- a_hash.each do |key, value|
181
- val = value
182
- if value.is_a?(Hash)
183
- val = convert_symbols_to_strings(value)
184
- elsif value.is_a?(Array)
185
- val = value.map { |va| va.is_a?(Hash) ? convert_symbols_to_strings(va) : va }
186
- end
187
- result[key] = val if key.is_a?(String)
188
- result[key.to_s] = val if key.is_a?(Symbol)
189
- end
190
- return result
191
- end
192
-
193
192
  # def calculate_item_total
194
193
  # # item_amount_N - item_discount_N + item_shipping_N + item_handling_N) * item_quantity_N
195
194
  # return 0.0 if self.items == nil || self.items.empty?
@@ -2,5 +2,5 @@
2
2
  #coding: utf-8
3
3
 
4
4
  module Safecharge
5
- VERSION = "0.1.3"
5
+ VERSION = "0.1.4"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safecharge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Sag
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-29 00:00:00.000000000 Z
11
+ date: 2013-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler