bill_forward 1.2016.117 → 2.2016.209

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
- ---
2
- SHA1:
3
- data.tar.gz: cb407f764927f632efa78d3b0943c73d49d8eb6b
4
- metadata.gz: 863538088b15757ab8a32ad52c5fce80e0b0aab9
5
- SHA512:
6
- data.tar.gz: 212d2ba8ce914c60e7a3b881731ebef4dc93947e3c7ce71634ebba6aab9c68320440908f50ebf1f3c885e758931bc688276638417c85402f76eadec3990fa02b
7
- metadata.gz: 4d5a1a8b0d4782837a6e6aaa96e3eddfe87baf3f2f63d4a8d6742b331b3dbcc5fc40540fd7359feda371fe4f8e61acbf3753352b56ba53397ee7826d434905f2
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6bac0a04b2fe610fe54fba1c0775c9616b414c6c
4
+ data.tar.gz: a9e266b50f608de09cfa3920a51c9c5d4c5e10a7
5
+ SHA512:
6
+ metadata.gz: 489036e8af35a96690eeb0482743d171c0efff0d135bdd29c21470f57b74e55aa60f3141a0828200e0daee3c5217a08d3fe40d31a25963e55f52f770ac169f0e
7
+ data.tar.gz: 230fde068d38e85c86239501eae443d7262132d436487e877b25d9b46e9d1f729833530441480ed916a6391396511cd674d9994ec004b7ffea2f4d3bac0fca63
data/Gemfile CHANGED
@@ -4,10 +4,4 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'json', '~> 1.8.1'
7
- gem 'require_all'
8
-
9
- if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('1.9.3')
10
- gem 'i18n', '< 0.7'
11
- gem 'rest-client', '~> 1.6.8'
12
- gem 'activesupport', '~> 3.2'
13
- end
7
+ gem 'require_all'
data/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This client library provides (via Ruby) easy access to the BillForward API.
4
4
 
5
+ ## Support
6
+
7
+ Until [commit 1ca55](https://github.com/billforward/bf-ruby/tree/1ca55ca8d361130c935df68e3b6496611221938a), [version 1.2016.117](https://rubygems.org/gems/bill_forward/versions/1.2016.117), the SDK targeted Ruby 1.8.7.
8
+
5
9
  ## Installation
6
10
  ### From Git
7
11
 
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'rest-client', '~> 1.4'
22
22
  spec.add_dependency 'json', '~> 1.8.1'
23
23
  spec.add_dependency 'require_all'
24
+ spec.add_dependency 'activesupport'
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.6"
26
27
  spec.add_development_dependency "rspec"
@@ -6,7 +6,7 @@ module BillForward
6
6
 
7
7
  def initialize(state_params = nil, client = nil)
8
8
  raise AbstractInstantiateError.new('This abstract class cannot be instantiated!') if self.class == MutableEntity
9
-
9
+
10
10
  client = self.class.singleton_client if client.nil?
11
11
  state_params = {} if state_params.nil?
12
12
 
@@ -20,7 +20,7 @@ module BillForward
20
20
  # initiate with empty state params
21
21
  # use indifferent hash so 'id' and :id are the same
22
22
  @_state_params = HashWithIndifferentAccess.new
23
- # legacy Ruby gives us this 'id' chuff. we kinda need it back.
23
+ # legacy Ruby gives us this 'id' chuff. we kinda need it back.
24
24
  @_state_params.instance_eval { undef id if defined? id }
25
25
  # populate state params now
26
26
  unserialize_all state_params
@@ -143,14 +143,16 @@ module BillForward
143
143
 
144
144
  def method_missing(method_id, *arguments, &block)
145
145
  def camel_case_lower(operand)
146
- operand.split('_').reduce('') do |accumulator, iterand|
147
- accumulator.empty? \
148
- ? iterand \
149
- : accumulator + iterand.capitalize
150
- end
146
+ elements = operand.split('_')
147
+ camel_cased = elements.join('_').camelize(:lower)
148
+
149
+ camel_cased.gsub!(/Id/, 'ID') if elements.size > 1 && elements.last =~ /id=?\Z/
150
+
151
+ camel_cased
151
152
  end
152
153
 
153
154
  qualified = camel_case_lower method_id.to_s
155
+
154
156
  if qualified != method_id.to_s
155
157
  return self.send(qualified.intern, *arguments)
156
158
  end
@@ -196,7 +198,7 @@ module BillForward
196
198
  field
197
199
  end
198
200
  end
199
-
201
+
200
202
  def to_ordered_hash
201
203
  serialize_field self
202
204
  end
@@ -329,4 +331,4 @@ module BillForward
329
331
  end
330
332
  end
331
333
  end
332
- end
334
+ end
@@ -1,4 +1,4 @@
1
1
  module BillForward
2
2
  # in an rspec run, the gemspec and bill_forward.rb loader will both visit this
3
- VERSION = "1.2016.117" unless const_defined?(:VERSION)
3
+ VERSION = "2.2016.209" unless const_defined?(:VERSION)
4
4
  end
@@ -9,27 +9,28 @@ describe BillForward::Subscription do
9
9
  # skip OAuth request
10
10
  allow_any_instance_of(BillForward::Client).to receive(:get_token).and_return('fake token')
11
11
  end
12
+
12
13
  describe '::get_by_id' do
13
14
  context 'where subscription exists' do
14
15
  describe 'the unserialized subscription' do
16
+ let(:response) { double :response }
17
+ let(:subscription_id) { 'ACD66517-6F32-44CB-AF8C-3097F97E1E67' }
18
+ let(:subscription) { BillForward::Subscription.get_by_id(subscription_id) }
19
+
20
+ before do
21
+ allow(response).to receive(:to_str).and_return(canned_subscription_get)
22
+ allow(RestClient::Request).to receive(:execute).and_return(response)
23
+ # mainly just confirm that unserialization is reasonably healthy.
24
+ expect(subscription.id).to eq(subscription_id)
25
+ end
26
+
15
27
  describe '.to_ordered_hash' do
16
28
  context 'using array access' do
17
29
  it "has @type at top" do
18
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
19
-
20
- response = double
21
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
22
- allow(RestClient::Request).to receive(:execute).and_return(response)
23
-
24
- subscription = BillForward::Subscription.get_by_id subscription_id
25
-
26
- # mainly just confirm that unserialization is reasonably healthy.
27
- expect(subscription.id).to eq(subscription_id)
28
-
29
- # check that @type is the first key on subscription (we use ordered hashes)
30
- payload = subscription.to_ordered_hash
31
- payload_first_kvp = payload.first
32
- kvp_key = payload_first_kvp.first
30
+ # check that @type is the first key on subscription (we use ordered hashes)
31
+ payload = subscription.to_ordered_hash
32
+ payload_first_kvp = payload.first
33
+ kvp_key = payload_first_kvp.first
33
34
  expect(kvp_key).to eq('@type')
34
35
 
35
36
  # check that @type is the first key on nested entities (we use ordered hashes)
@@ -41,17 +42,6 @@ describe BillForward::Subscription do
41
42
  end
42
43
  context 'using dot access' do
43
44
  it "has @type at top" do
44
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
45
-
46
- response = double
47
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
48
- allow(RestClient::Request).to receive(:execute).and_return(response)
49
-
50
- subscription = BillForward::Subscription.get_by_id subscription_id
51
-
52
- # mainly just confirm that unserialization is reasonably healthy.
53
- expect(subscription.id).to eq(subscription_id)
54
-
55
45
  # check that @type is the first key on subscription (we use ordered hashes)
56
46
  payload = subscription.to_ordered_hash
57
47
  payload_first_kvp = payload.first
@@ -64,6 +54,17 @@ describe BillForward::Subscription do
64
54
  kvp_key = pricing_component_first_kvp.first
65
55
  expect(kvp_key).to eq('@type')
66
56
  end
57
+
58
+ it 'has product_id at the top' do
59
+ expect(subscription.product_id).to eq("0CE0A471-A8B1-4E33-B5F4-115947DE8C55")
60
+ end
61
+
62
+ it 'can set the product_id to something else' do
63
+ subscription.product_id = 100
64
+ expect(subscription.product_id).to eq(100)
65
+ expect(subscription.productID).to eq(100)
66
+ expect(subscription['productID']).to eq(100)
67
+ end
67
68
  end
68
69
  end
69
70
  # NOTE: ideally no anonymous entity would exist, because we would register all known nested entities.
@@ -74,26 +75,10 @@ describe BillForward::Subscription do
74
75
  describe 'nested anonymous entity' do
75
76
  context 'using dot access' do
76
77
  it "can be read" do
77
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
78
-
79
- response = double
80
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
81
- allow(RestClient::Request).to receive(:execute).and_return(response)
82
-
83
- subscription = BillForward::Subscription.get_by_id subscription_id
84
-
85
78
  a_pricing_component = subscription.productRatePlan.pricingComponents.first
86
79
  expect(a_pricing_component.name).to eq('Devices used, fixed')
87
80
  end
88
81
  it "can be changed" do
89
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
90
-
91
- response = double
92
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
93
- allow(RestClient::Request).to receive(:execute).and_return(response)
94
-
95
- subscription = BillForward::Subscription.get_by_id subscription_id
96
-
97
82
  a_pricing_component = subscription.productRatePlan.pricingComponents.first
98
83
  expect(a_pricing_component.name).to eq('Devices used, fixed')
99
84
 
@@ -105,26 +90,10 @@ describe BillForward::Subscription do
105
90
  end
106
91
  context 'using array access' do
107
92
  it "can be read" do
108
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
109
-
110
- response = double
111
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
112
- allow(RestClient::Request).to receive(:execute).and_return(response)
113
-
114
- subscription = BillForward::Subscription.get_by_id subscription_id
115
-
116
93
  a_pricing_component = subscription['productRatePlan']['pricingComponents'].first
117
94
  expect(a_pricing_component['name']).to eq('Devices used, fixed')
118
95
  end
119
96
  it "can be changed" do
120
- subscription_id = 'ACD66517-6F32-44CB-AF8C-3097F97E1E67'
121
-
122
- response = double
123
- allow(response).to receive(:to_str).and_return(canned_subscription_get)
124
- allow(RestClient::Request).to receive(:execute).and_return(response)
125
-
126
- subscription = BillForward::Subscription.get_by_id subscription_id
127
-
128
97
  a_pricing_component = subscription['productRatePlan']['pricingComponents'].first
129
98
  expect(a_pricing_component['name']).to eq('Devices used, fixed')
130
99
 
@@ -354,4 +323,4 @@ def canned_subscription_get
354
323
  "fixedTerms" : [ ]
355
324
  } ]
356
325
  }'
357
- end
326
+ end
@@ -21,21 +21,21 @@ describe BillForward::Subscription do
21
21
  first_org = organisations.first
22
22
 
23
23
 
24
- # remove from our organisation all existing AuthorizeNetConfigurations (if any)
25
- filtered = first_org.apiConfigurations.reject do |config|
26
- config['@type'] == 'AuthorizeNetConfiguration'
27
- end
28
- first_org.apiConfigurations = filtered
24
+ # # remove from our organisation all existing AuthorizeNetConfigurations (if any)
25
+ # filtered = first_org.apiConfigurations.reject do |config|
26
+ # config['@type'] == 'AuthorizeNetConfiguration'
27
+ # end
28
+ # first_org.apiConfigurations = filtered
29
29
 
30
30
 
31
- # add to our organisation: a new AuthorizeNetConfiguration
32
- first_org.apiConfigurations.push BillForward::APIConfiguration.new({
33
- "@type" => "AuthorizeNetConfiguration",
34
- "APILoginID" => @authorize_net_login_id,
35
- "transactionKey" => @authorize_net_transaction_key,
36
- "environment" => "Sandbox"
37
- })
38
- updated_org = first_org.save
31
+ # # add to our organisation: a new AuthorizeNetConfiguration
32
+ # first_org.apiConfigurations.push BillForward::APIConfiguration.new({
33
+ # "@type" => "AuthorizeNetConfiguration",
34
+ # "APILoginID" => @authorize_net_login_id,
35
+ # "transactionKey" => @authorize_net_transaction_key,
36
+ # "environment" => "Sandbox"
37
+ # })
38
+ # updated_org = first_org.save
39
39
 
40
40
 
41
41
  # create an account
@@ -236,7 +236,7 @@ describe BillForward::Subscription do
236
236
  @created_account = created_account
237
237
  @created_prp = created_prp
238
238
  @created_payment_method = created_payment_method
239
- @updated_org = updated_org
239
+ @updated_org = first_org
240
240
  end
241
241
  subject(:account) { @created_account }
242
242
  subject(:prp) { @created_prp }
metadata CHANGED
@@ -1,85 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bill_forward
3
- version: !ruby/object:Gem::Version
4
- version: 1.2016.117
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2016.209
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - BillForward
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2016-04-27 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: rest-client
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: "1.4"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
22
20
  type: :runtime
23
- version_requirements: *id001
24
- - !ruby/object:Gem::Dependency
25
- name: json
26
21
  prerelease: false
27
- requirement: &id002 !ruby/object:Gem::Requirement
28
- requirements:
29
- - - ~>
30
- - !ruby/object:Gem::Version
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
31
33
  version: 1.8.1
32
34
  type: :runtime
33
- version_requirements: *id002
34
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.1
41
+ - !ruby/object:Gem::Dependency
35
42
  name: require_all
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
36
49
  prerelease: false
37
- requirement: &id003 !ruby/object:Gem::Requirement
38
- requirements:
39
- - &id005
40
- - ">="
41
- - !ruby/object:Gem::Version
42
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
43
62
  type: :runtime
44
- version_requirements: *id003
45
- - !ruby/object:Gem::Dependency
46
- name: bundler
47
63
  prerelease: false
48
- requirement: &id004 !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ~>
51
- - !ruby/object:Gem::Version
52
- version: "1.6"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.6'
53
76
  type: :development
54
- version_requirements: *id004
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
77
  prerelease: false
58
- requirement: &id006 !ruby/object:Gem::Requirement
59
- requirements:
60
- - *id005
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
61
90
  type: :development
62
- version_requirements: *id006
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
91
  prerelease: false
66
- requirement: &id007 !ruby/object:Gem::Requirement
67
- requirements:
68
- - *id005
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
69
104
  type: :development
70
- version_requirements: *id007
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
71
111
  description: Enables you to call the BillForward API easily using Ruby
72
- email:
112
+ email:
73
113
  - support@billforward.net
74
114
  executables: []
75
-
76
115
  extensions: []
77
-
78
116
  extra_rdoc_files: []
79
-
80
- files:
81
- - .gitignore
82
- - .rspec
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
83
120
  - Gemfile
84
121
  - LICENSE.md
85
122
  - README.md
@@ -167,29 +204,30 @@ files:
167
204
  - tools/local_bundle_build.sh
168
205
  - tools/local_bundle_install.sh
169
206
  homepage: http://www.billforward.net
170
- licenses:
207
+ licenses:
171
208
  - MIT
172
209
  metadata: {}
173
-
174
210
  post_install_message:
175
211
  rdoc_options: []
176
-
177
- require_paths:
212
+ require_paths:
178
213
  - lib
179
- required_ruby_version: !ruby/object:Gem::Requirement
180
- requirements:
181
- - *id005
182
- required_rubygems_version: !ruby/object:Gem::Requirement
183
- requirements:
184
- - *id005
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
185
224
  requirements: []
186
-
187
225
  rubyforge_project:
188
- rubygems_version: 2.0.14
226
+ rubygems_version: 2.5.1
189
227
  signing_key:
190
228
  specification_version: 4
191
229
  summary: BillForward Ruby Client Library
192
- test_files:
230
+ test_files:
193
231
  - spec/component/account_spec.rb
194
232
  - spec/component/billing_entity_spec.rb
195
233
  - spec/component/invoice_spec.rb