xeroizer-float 2.15.3.16 → 2.15.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.15.3.16
1
+ 2.15.5.1
@@ -0,0 +1,13 @@
1
+ module Xeroizer
2
+ module Record
3
+ class AllocationModel < BaseModel
4
+ end
5
+
6
+ class Allocation < Base
7
+ decimal :applied_amount
8
+ belongs_to :invoice
9
+
10
+ validates_presence_of :invoice
11
+ end
12
+ end
13
+ end
@@ -15,6 +15,7 @@ module Xeroizer
15
15
  } unless defined?(BANK_TRANSACTION_STATUS)
16
16
  BANK_TRANSACTION_STATUSES = BANK_TRANSACTION_STATUS.keys.sort
17
17
 
18
+ BANK_TRANSFER_TYPES = [ 'SPEND-TRANSFER', 'RECEIVE-TRANSFER' ]
18
19
 
19
20
  def initialize(parent)
20
21
  super parent
@@ -37,6 +38,10 @@ module Xeroizer
37
38
  string :currency_code
38
39
  decimal :currency_rate, :calculated => true
39
40
 
41
+ decimal :total, :calculated => true
42
+ decimal :sub_total, :calculated => true
43
+ decimal :total_tax, :calculated => true
44
+
40
45
  alias_method :reconciled?, :is_reconciled
41
46
 
42
47
  belongs_to :contact, :model_name => 'Contact'
@@ -73,6 +78,8 @@ module Xeroizer
73
78
  def total; sub_total + total_tax; end
74
79
 
75
80
  def sub_total
81
+ return attributes[:total] if is_transfer?
82
+
76
83
  if ought_to_recalculate_totals?
77
84
  result = LineItemSum.sub_total(self.line_items)
78
85
  result -= total_tax if line_amount_types == 'Inclusive'
@@ -83,11 +90,17 @@ module Xeroizer
83
90
  end
84
91
 
85
92
  def total_tax
93
+ return BigDecimal.new('0') if is_transfer?
94
+
86
95
  return ought_to_recalculate_totals? ?
87
96
  LineItemSum.total_tax(self.line_items) :
88
97
  attributes[:total_tax]
89
98
  end
90
99
 
100
+ def is_transfer?
101
+ BANK_TRANSFER_TYPES.include? attributes[:type]
102
+ end
103
+
91
104
  private
92
105
 
93
106
  def ought_to_recalculate_totals?
@@ -64,11 +64,13 @@ module Xeroizer
64
64
 
65
65
  belongs_to :contact
66
66
  has_many :line_items
67
+ has_many :allocations
67
68
 
68
69
  validates_inclusion_of :type, :in => CREDIT_NOTE_TYPES
69
70
  validates_inclusion_of :status, :in => CREDIT_NOTE_STATUSES, :allow_blanks => true
70
71
  validates_associated :contact
71
72
  validates_associated :line_items
73
+ validates_associated :allocations, :allow_blanks => true
72
74
 
73
75
  public
74
76
 
@@ -1,15 +1,15 @@
1
1
  module Xeroizer
2
2
  module Record
3
-
3
+
4
4
  class InvoiceModel < BaseModel
5
5
  # To create a new invoice, use the folowing
6
6
  # $xero_client.Invoice.build(type: 'ACCREC', ..., contact: {name: 'Foo Bar'},...)
7
7
  # Note that we are not making an api request to xero just to get the contact
8
-
8
+
9
9
  set_permissions :read, :write, :update
10
-
10
+
11
11
  public
12
-
12
+
13
13
  # Retrieve the PDF version of the invoice matching the `id`.
14
14
  # @param [String] id invoice's ID.
15
15
  # @param [String] filename optional filename to store the PDF in instead of returning the data.
@@ -22,11 +22,11 @@ module Xeroizer
22
22
  pdf_data
23
23
  end
24
24
  end
25
-
25
+
26
26
  end
27
-
27
+
28
28
  class Invoice < Base
29
-
29
+
30
30
  INVOICE_TYPE = {
31
31
  'ACCREC' => 'Accounts Receivable',
32
32
  'ACCPAY' => 'Accounts Payable'
@@ -42,11 +42,11 @@ module Xeroizer
42
42
  'VOIDED' => 'Approved invoices that are voided'
43
43
  } unless defined?(INVOICE_STATUS)
44
44
  INVOICE_STATUSES = INVOICE_STATUS.keys.sort
45
-
45
+
46
46
  set_primary_key :invoice_id
47
47
  set_possible_primary_keys :invoice_id, :invoice_number
48
48
  list_contains_summary_only true
49
-
49
+
50
50
  guid :invoice_id
51
51
  string :invoice_number
52
52
  string :reference
@@ -68,12 +68,12 @@ module Xeroizer
68
68
  decimal :currency_rate, :calculated => true
69
69
  datetime :fully_paid_on_date
70
70
  boolean :sent_to_contact
71
-
71
+
72
72
  belongs_to :contact
73
73
  has_many :line_items
74
74
  has_many :payments
75
75
  has_many :credit_notes
76
-
76
+
77
77
  validates_presence_of :date, :due_date, :unless => :new_record?
78
78
  validates_inclusion_of :type, :in => INVOICE_TYPES
79
79
  validates_inclusion_of :status, :in => INVOICE_STATUSES, :unless => :new_record?
@@ -81,9 +81,9 @@ module Xeroizer
81
81
  validates_associated :contact
82
82
  validates_associated :line_items, :allow_blanks => true, :unless => :approved?
83
83
  validates_associated :line_items, :if => :approved?
84
-
84
+
85
85
  public
86
-
86
+
87
87
  # Access the contact name without forcing a download of
88
88
  # an incomplete, summary invoice.
89
89
  def contact_name
@@ -95,12 +95,12 @@ module Xeroizer
95
95
  def contact_id
96
96
  attributes[:contact] && attributes[:contact][:contact_id]
97
97
  end
98
-
98
+
99
99
  # Helper method to check if the invoice has been approved.
100
100
  def approved?
101
101
  [ 'AUTHORISED', 'PAID', 'VOIDED' ].include? status
102
102
  end
103
-
103
+
104
104
  # Helper method to check if the invoice is accounts payable.
105
105
  def accounts_payable?
106
106
  type == 'ACCPAY'
@@ -127,7 +127,7 @@ module Xeroizer
127
127
  @sub_total_is_set = true
128
128
  attributes[:sub_total] = sub_total
129
129
  end
130
-
130
+
131
131
  def total_tax=(total_tax)
132
132
  @total_tax_is_set = true
133
133
  attributes[:total_tax] = total_tax
@@ -142,9 +142,9 @@ module Xeroizer
142
142
  def sub_total(always_summary = false)
143
143
  if !@sub_total_is_set && not_summary_or_loaded_record(always_summary)
144
144
  sum = (line_items || []).inject(BigDecimal.new('0')) { | sum, line_item | sum + line_item.line_amount }
145
-
145
+
146
146
  # If the default amount types are inclusive of 'tax' then remove the tax amount from this sub-total.
147
- sum -= total_tax if line_amount_types == 'Inclusive'
147
+ sum -= total_tax if line_amount_types == 'Inclusive'
148
148
  sum
149
149
  else
150
150
  attributes[:sub_total]
@@ -168,16 +168,16 @@ module Xeroizer
168
168
  attributes[:total]
169
169
  end
170
170
  end
171
-
171
+
172
172
  def not_summary_or_loaded_record(always_summary)
173
173
  !always_summary && loaded_record?
174
174
  end
175
175
 
176
176
  def loaded_record?
177
- new_record? ||
177
+ new_record? ||
178
178
  (!new_record? && line_items && line_items.size > 0)
179
179
  end
180
-
180
+
181
181
  # Retrieve the PDF version of this invoice.
182
182
  # @param [String] filename optional filename to store the PDF in instead of returning the data.
183
183
  def pdf(filename = nil)
@@ -186,23 +186,28 @@ module Xeroizer
186
186
 
187
187
  # Delete an approved invoice with no payments.
188
188
  def delete!
189
- delete_or_void_invoice!('DELETED')
189
+ change_status!('DELETED')
190
190
  end
191
191
 
192
192
  # Void an approved invoice with no payments.
193
193
  def void!
194
- delete_or_void_invoice!('VOIDED')
194
+ change_status!('VOIDED')
195
+ end
196
+
197
+ # Approve a draft invoice
198
+ def approve!
199
+ change_status!('AUTHORISED')
195
200
  end
196
201
 
197
202
  protected
198
203
 
199
- def delete_or_void_invoice!(new_status)
204
+ def change_status!(new_status)
200
205
  raise CannotChangeInvoiceStatus.new(record, new_status) unless self.payments.size == 0
201
206
  self.status = new_status
202
207
  self.save
203
208
  end
204
-
209
+
205
210
  end
206
-
211
+
207
212
  end
208
213
  end
@@ -14,6 +14,7 @@ module Xeroizer
14
14
 
15
15
  attr_reader :attributes
16
16
  attr_reader :parent
17
+ attr_reader :model
17
18
  attr_accessor :errors
18
19
  attr_accessor :complete_record_downloaded
19
20
 
@@ -36,14 +37,19 @@ module Xeroizer
36
37
  end
37
38
 
38
39
  public
39
-
40
+
40
41
  def initialize(parent)
41
42
  @parent = parent
43
+ @model = new_model_class(self.class.name.demodulize)
42
44
  @attributes = {}
43
45
  end
44
-
46
+
45
47
  def new_model_class(model_name)
46
- Xeroizer::Record.const_get("#{model_name}Model".to_sym).new(parent.application, model_name.to_s)
48
+ if parent
49
+ Xeroizer::Record.const_get("#{model_name}Model".to_sym).new(parent.application, model_name.to_s)
50
+ else
51
+ Xeroizer::Record.const_get("#{model_name}Model".to_sym).new(nil, model_name.to_s)
52
+ end
47
53
  end
48
54
 
49
55
  def [](attribute)
@@ -55,6 +61,10 @@ module Xeroizer
55
61
  self.send("#{attribute}=".to_sym, value)
56
62
  end
57
63
 
64
+ def non_calculated_attributes
65
+ attributes.reject {|name| self.class.fields[name][:calculated] }
66
+ end
67
+
58
68
  def attributes=(new_attributes)
59
69
  return unless new_attributes.is_a?(Hash)
60
70
  parent.mark_dirty(self) if parent
@@ -141,6 +141,7 @@ module Xeroizer
141
141
  end
142
142
 
143
143
  def batch_save(chunk_size = DEFAULT_RECORDS_PER_BATCH_SAVE)
144
+ no_errors = true
144
145
  @objects = {}
145
146
  @allow_batch_operations = true
146
147
 
@@ -156,8 +157,9 @@ module Xeroizer
156
157
  response = parse_response(self.send(http_method, request, {:summarizeErrors => false}))
157
158
  response.response_items.each_with_index do |record, i|
158
159
  if record and record.is_a?(model_class)
159
- some_records[i].attributes = record.attributes
160
+ some_records[i].attributes = record.non_calculated_attributes
160
161
  some_records[i].errors = record.errors
162
+ no_errors = record.errors.nil? || record.errors.empty? if no_errors
161
163
  some_records[i].saved!
162
164
  end
163
165
  end
@@ -167,7 +169,7 @@ module Xeroizer
167
169
 
168
170
  @objects = {}
169
171
  @allow_batch_operations = false
170
- true
172
+ no_errors
171
173
  end
172
174
 
173
175
  def parse_response(response_xml, options = {})
@@ -61,7 +61,7 @@ module Xeroizer
61
61
  # Turn a record into its XML representation.
62
62
  def to_xml(b = Builder::XmlMarkup.new(:indent => 2))
63
63
  optional_root_tag(parent.class.optional_xml_root_name, b) do |b|
64
- b.tag!(parent.class.xml_node_name || parent.model_name) {
64
+ b.tag!(model.class.xml_node_name || model.model_name) {
65
65
  attributes.each do | key, value |
66
66
  field = self.class.fields[key]
67
67
  value = self.send(key) if field[:calculated]
data/lib/xeroizer.rb CHANGED
@@ -2,7 +2,6 @@ require 'rubygems'
2
2
  require 'date'
3
3
  require 'forwardable'
4
4
  require 'active_support/inflector'
5
- require 'active_support/memoizable'
6
5
  # require "active_support/core_ext"
7
6
  require 'oauth'
8
7
  require 'oauth/signature/rsa/sha1'
@@ -28,6 +27,7 @@ require 'xeroizer/configuration'
28
27
  # Include models
29
28
  require 'xeroizer/models/account'
30
29
  require 'xeroizer/models/address'
30
+ require 'xeroizer/models/allocation'
31
31
  require 'xeroizer/models/branding_theme'
32
32
  require 'xeroizer/models/bank_transaction'
33
33
  require 'xeroizer/models/bank_account'
@@ -48,5 +48,21 @@
48
48
  <IsReconciled>false</IsReconciled>
49
49
  <CurrencyRate>1.519520</CurrencyRate>
50
50
  </BankTransaction>
51
+ <BankTransaction>
52
+ <Date>2013-09-17T00:00:00</Date>
53
+ <Status>AUTHORISED</Status>
54
+ <LineAmountTypes>NoTax</LineAmountTypes>
55
+ <Total>120.00</Total>
56
+ <UpdatedDateUTC>2013-09-17T14:47:58.95</UpdatedDateUTC>
57
+ <CurrencyCode>GBP</CurrencyCode>
58
+ <BankTransactionID>ea28d9c6-c9e8-4261-8c0f-cf04192f3726</BankTransactionID>
59
+ <BankAccount>
60
+ <AccountID>bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4</AccountID>
61
+ <Code>090</Code>
62
+ <Name>Business Bank Account</Name>
63
+ </BankAccount>
64
+ <Type>SPEND-TRANSFER</Type>
65
+ <IsReconciled>false</IsReconciled>
66
+ </BankTransaction>
51
67
  </BankTransactions>
52
68
  </Response>
@@ -0,0 +1,24 @@
1
+ <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2
+ <Id>4e25a58b-02c4-40f7-9e8b-ca77b2a9d61a</Id>
3
+ <Status>OK</Status>
4
+ <ProviderName>Xero API Previewer</ProviderName>
5
+ <DateTimeUTC>2013-09-18T14:17:01.2026157Z</DateTimeUTC>
6
+ <BankTransactions>
7
+ <BankTransaction>
8
+ <Date>2013-09-17T00:00:00</Date>
9
+ <Status>AUTHORISED</Status>
10
+ <LineAmountTypes>NoTax</LineAmountTypes>
11
+ <Total>120.00</Total>
12
+ <UpdatedDateUTC>2013-09-17T14:47:58.95</UpdatedDateUTC>
13
+ <CurrencyCode>GBP</CurrencyCode>
14
+ <BankTransactionID>ea28d9c6-c9e8-4261-8c0f-cf04192f3726</BankTransactionID>
15
+ <BankAccount>
16
+ <AccountID>bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4</AccountID>
17
+ <Code>090</Code>
18
+ <Name>Business Bank Account</Name>
19
+ </BankAccount>
20
+ <Type>SPEND-TRANSFER</Type>
21
+ <IsReconciled>false</IsReconciled>
22
+ </BankTransaction>
23
+ </BankTransactions>
24
+ </Response>
@@ -7,8 +7,7 @@ class BankTransactionTest < Test::Unit::TestCase
7
7
  def setup
8
8
  fake_parent = Class.new do
9
9
  attr_accessor :application
10
- def mark_dirty(*args)
11
- end
10
+ def mark_dirty(*args); end
12
11
  end.new
13
12
 
14
13
  the_line_items = [
@@ -52,7 +51,6 @@ class BankTransactionTest < Test::Unit::TestCase
52
51
  end
53
52
 
54
53
  context "bank transaction totals" do
55
-
56
54
  should "large-scale testing from API XML" do
57
55
  bank_transactions = @client.BankTransaction.all
58
56
  bank_transactions.each do | bank_transaction |
@@ -71,5 +69,15 @@ class BankTransactionTest < Test::Unit::TestCase
71
69
  end
72
70
  end
73
71
 
72
+ should "handle bank transfers properly" do
73
+ bank_transactions = @client.BankTransaction.all
74
+ bank_transaction = bank_transactions.find { |bt| bt.attributes[:type] == "SPEND-TRANSFER" }
75
+
76
+ assert( bank_transaction.is_transfer? )
77
+ assert_equal( bank_transaction.attributes[:total], bank_transaction.total)
78
+ assert_equal( bank_transaction.attributes[:total], bank_transaction.sub_total)
79
+ assert_equal( 0, bank_transaction.total_tax)
80
+ end
81
+
74
82
  end
75
83
  end
@@ -4,9 +4,10 @@ class LineItemSumTest < Test::Unit::TestCase
4
4
  include Xeroizer::Record
5
5
 
6
6
  def setup
7
+ parent = stub(:application => nil, :mark_dirty => nil)
7
8
  @the_line_items = [
8
- LineItem.build({:quantity => 1, :unit_amount => 1.00, :tax_amount => 0.15}, nil),
9
- LineItem.build({:quantity => 1, :unit_amount => 1.00, :tax_amount => 0.30}, nil)
9
+ LineItem.build({:quantity => 1, :unit_amount => 1.00, :tax_amount => 0.15}, parent),
10
+ LineItem.build({:quantity => 1, :unit_amount => 1.00, :tax_amount => 0.30}, parent),
10
11
  ]
11
12
  end
12
13
 
@@ -16,6 +16,7 @@ class ModelDefinitionsTest < Test::Unit::TestCase
16
16
  datetime :datetime1
17
17
 
18
18
  end
19
+ class Xeroizer::Record::FirstRecordModel < Xeroizer::Record::BaseModel; end
19
20
 
20
21
  class SecondRecord < Xeroizer::Record::Base
21
22
 
@@ -30,6 +31,7 @@ class ModelDefinitionsTest < Test::Unit::TestCase
30
31
  datetime :datetime2
31
32
 
32
33
  end
34
+ class Xeroizer::Record::SecondRecordModel < Xeroizer::Record::BaseModel; end
33
35
 
34
36
  class TestRecord < Xeroizer::Record::Base
35
37
 
@@ -37,8 +39,10 @@ class ModelDefinitionsTest < Test::Unit::TestCase
37
39
  string :name
38
40
 
39
41
  end
42
+ class Xeroizer::Record::TestRecordModel < Xeroizer::Record::BaseModel; end
40
43
 
41
44
  class SummaryOnlyRecord < Xeroizer::Record::Base
45
+ class Xeroizer::Record::SummaryOnlyRecordModel < Xeroizer::Record::BaseModel; end
42
46
 
43
47
  list_contains_summary_only true
44
48
  set_possible_primary_keys :primary_key_id
@@ -49,6 +53,7 @@ class ModelDefinitionsTest < Test::Unit::TestCase
49
53
  end
50
54
 
51
55
  class SummaryOnlyOffRecord < Xeroizer::Record::Base
56
+ class Xeroizer::Record::SummaryOnlyOffRecordModel < Xeroizer::Record::BaseModel; end
52
57
 
53
58
  set_possible_primary_keys :primary_key_id
54
59
  set_primary_key :primary_key_id
@@ -59,8 +64,9 @@ class ModelDefinitionsTest < Test::Unit::TestCase
59
64
 
60
65
  def setup
61
66
  @client = Xeroizer::PublicApplication.new(CONSUMER_KEY, CONSUMER_SECRET)
62
- @first = FirstRecord.new(@client)
63
- @second = SecondRecord.new(@client)
67
+ parent = stub(:application => @client, :mark_dirty => nil)
68
+ @first = FirstRecord.new(parent)
69
+ @second = SecondRecord.new(parent)
64
70
  @record = TestRecord.build({}, @client.Contact)
65
71
  @contact = @client.Contact.build
66
72
  end
@@ -93,7 +99,7 @@ class ModelDefinitionsTest < Test::Unit::TestCase
93
99
 
94
100
  should "define primary key with shortcut #id method" do
95
101
  assert_nil(@first.id)
96
- value = "PRIMARKY KEY VALUE"
102
+ value = "PRIMARY KEY VALUE"
97
103
  @first.id = value
98
104
  assert_equal(value, @first.id)
99
105
  assert_equal(value, @first.primary_key_id)
data/xeroizer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "xeroizer"
8
- s.version = "2.15.3"
8
+ s.version = "2.15.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wayne Robinson"]
12
- s.date = "2012-12-07"
12
+ s.date = "2013-07-04"
13
13
  s.description = "Ruby library for the Xero accounting system API."
14
14
  s.email = "wayne.robinson@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -99,6 +99,7 @@ Gem::Specification.new do |s|
99
99
  "test/acceptance/about_fetching_bank_transactions_test.rb",
100
100
  "test/acceptance/acceptance_test.rb",
101
101
  "test/acceptance/bank_transaction_reference_data.rb",
102
+ "test/acceptance/bulk_operations_test.rb",
102
103
  "test/stub_responses/accounts.xml",
103
104
  "test/stub_responses/api_exception.xml",
104
105
  "test/stub_responses/bogus_oauth_error",
@@ -357,7 +358,7 @@ Gem::Specification.new do |s|
357
358
  s.homepage = "http://github.com/waynerobinson/xeroizer"
358
359
  s.licenses = ["MIT"]
359
360
  s.require_paths = ["lib"]
360
- s.rubygems_version = "1.8.24"
361
+ s.rubygems_version = "1.8.25"
361
362
  s.summary = "Xero library"
362
363
 
363
364
  if s.respond_to? :specification_version then
@@ -367,6 +368,7 @@ Gem::Specification.new do |s|
367
368
  s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
368
369
  s.add_runtime_dependency(%q<oauth>, ["= 0.4.5"])
369
370
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
371
+ s.add_runtime_dependency(%q<tzinfo>, [">= 0"])
370
372
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
371
373
  s.add_runtime_dependency(%q<i18n>, [">= 0"])
372
374
  s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
@@ -379,6 +381,7 @@ Gem::Specification.new do |s|
379
381
  s.add_dependency(%q<builder>, [">= 2.1.2"])
380
382
  s.add_dependency(%q<oauth>, ["= 0.4.5"])
381
383
  s.add_dependency(%q<activesupport>, [">= 0"])
384
+ s.add_dependency(%q<tzinfo>, [">= 0"])
382
385
  s.add_dependency(%q<nokogiri>, [">= 0"])
383
386
  s.add_dependency(%q<i18n>, [">= 0"])
384
387
  s.add_dependency(%q<builder>, [">= 2.1.2"])
@@ -392,6 +395,7 @@ Gem::Specification.new do |s|
392
395
  s.add_dependency(%q<builder>, [">= 2.1.2"])
393
396
  s.add_dependency(%q<oauth>, ["= 0.4.5"])
394
397
  s.add_dependency(%q<activesupport>, [">= 0"])
398
+ s.add_dependency(%q<tzinfo>, [">= 0"])
395
399
  s.add_dependency(%q<nokogiri>, [">= 0"])
396
400
  s.add_dependency(%q<i18n>, [">= 0"])
397
401
  s.add_dependency(%q<builder>, [">= 2.1.2"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xeroizer-float
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.3.16
4
+ version: 2.15.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-06-19 00:00:00.000000000 Z
13
+ date: 2013-09-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -233,6 +233,7 @@ files:
233
233
  - lib/xeroizer/logging.rb
234
234
  - lib/xeroizer/models/account.rb
235
235
  - lib/xeroizer/models/address.rb
236
+ - lib/xeroizer/models/allocation.rb
236
237
  - lib/xeroizer/models/bank_account.rb
237
238
  - lib/xeroizer/models/bank_transaction.rb
238
239
  - lib/xeroizer/models/branding_theme.rb
@@ -323,6 +324,7 @@ files:
323
324
  - test/stub_responses/payments.xml
324
325
  - test/stub_responses/rate_limit_exceeded
325
326
  - test/stub_responses/records/bank_transaction-8644472b-ea4e-4e5a-9987-f79250ece35e.xml
327
+ - test/stub_responses/records/bank_transaction-ea28d9c6-c9e8-4261-8c0f-cf04192f3726.xml
326
328
  - test/stub_responses/records/bank_transaction-ee4c4d5a-437d-4369-b152-848bd932f431.xml
327
329
  - test/stub_responses/records/contact-043892a1-aef1-4c18-88d8-b8ccb6d31466.xml
328
330
  - test/stub_responses/records/contact-09664078-efe2-4a88-89a5-67eac9b0047b.xml
@@ -565,6 +567,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
565
567
  - - ! '>='
566
568
  - !ruby/object:Gem::Version
567
569
  version: '0'
570
+ segments:
571
+ - 0
572
+ hash: -4125047856813018795
568
573
  required_rubygems_version: !ruby/object:Gem::Requirement
569
574
  none: false
570
575
  requirements: