safecharge 0.1.3 → 0.1.4

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