intacctrb 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ # our gem
4
+ require 'intacctrb'
5
+ require 'dotenv'
6
+ require "faker"
7
+ require "pry"
8
+ require 'awesome_print'
9
+ require 'helpers'
10
+
11
+ Dotenv.load
12
+
13
+ Dir["./spec/steps/**/*steps.rb"].each { |f| require f }
14
+
15
+ RSpec.configure do |config|
16
+ config.include Helpers
17
+ end
@@ -0,0 +1,178 @@
1
+ module IntacctBillSteps
2
+ class << self
3
+ attr_accessor :intacct_key
4
+ end
5
+
6
+ step 'I have setup the correct settings' do
7
+ default_setup
8
+ custom_fields_for_auto
9
+ end
10
+
11
+ step('I have an payment, customer and vendor') { payment; customer; vendor }
12
+
13
+ step 'I create an Intacct Bill object' do
14
+ @intacct_bill = Intacct::Bill.new({
15
+ payment: payment,
16
+ customer: customer,
17
+ vendor: vendor
18
+ })
19
+ end
20
+
21
+ step 'I use the #create method' do
22
+ # We need to remove the fake intacct_system_id so it creates a real one
23
+ @intacct_bill.object.payment.intacct_system_id = nil
24
+ @intacct_bill.object.customer.intacct_system_id = nil
25
+ @intacct_bill.object.vendor.intacct_system_id = nil
26
+ @response = @intacct_bill.create
27
+ IntacctBillSteps.intacct_key = @intacct_bill.object.payment.intacct_key
28
+ end
29
+
30
+ step 'I use the #delete method' do
31
+ @intacct_bill.object.payment.intacct_key = IntacctBillSteps.intacct_key
32
+ @response = @intacct_bill.delete
33
+ if @response
34
+ Intacct::Customer.new(@intacct_bill.object.customer).delete
35
+ Intacct::Vendor.new(@intacct_bill.object.vendor).delete
36
+ end
37
+ end
38
+
39
+ def custom_fields_for_auto
40
+ Intacct::Bill.class_eval do
41
+ custom_bill_fields do |xml|
42
+ xml.billno intacct_object_id #intact bill id
43
+ xml.ponumber object.payment.claim.claimnumber
44
+ xml.description "some description"
45
+ xml.externalid "AUTO-#{object.payment.id}"
46
+ xml.basecurr "USD"
47
+ xml.currency "USD"
48
+ xml.exchratetype "Intacct Daily Rate"
49
+ xml.customfields {
50
+ xml.customfield {
51
+ xml.customfieldname "CLAIM_NUMBER_ACD"
52
+ xml.customfieldvalue object.payment.claim.dlnumber
53
+ }
54
+ xml.customfield {
55
+ xml.customfieldname "CLAIM_NUMBER_CLIENT"
56
+ xml.customfieldvalue object.payment.claim.claimnumber
57
+ }
58
+ xml.customfield {
59
+ xml.customfieldname "VEHICLE_YEAR"
60
+ xml.customfieldvalue object.payment.claim.vehicle.year
61
+ }
62
+ xml.customfield {
63
+ xml.customfieldname "VEHICLE_MAKE"
64
+ xml.customfieldvalue object.payment.claim.vehicle.make
65
+ }
66
+ xml.customfield {
67
+ xml.customfieldname "VEHICLE_MODEL"
68
+ xml.customfieldvalue object.payment.claim.vehicle.model
69
+ }
70
+ xml.customfield {
71
+ xml.customfieldname "VEHICLE_TYPE"
72
+ xml.customfieldvalue object.payment.claim.appraisal_type
73
+ }
74
+ xml.customfield {
75
+ xml.customfieldname "NAME_OWNER"
76
+ xml.customfieldvalue object.payment.claim.owner.full_name
77
+ }
78
+ xml.customfield {
79
+ xml.customfieldname "NAME_INSURED"
80
+ xml.customfieldvalue object.payment.claim.owner.insuredorclaimant=="INSURED" ? object.payment.claim.owner.full_name : object.payment.claim.insured_full_name
81
+ }
82
+ xml.customfield {
83
+ xml.customfieldname "NAME_CLAIMANT"
84
+ xml.customfieldvalue object.payment.claim.owner.insuredorclaimant=="CLAIMANT" ? object.payment.claim.owner.full_name : ""
85
+ }
86
+ xml.customfield {
87
+ xml.customfieldname "LOCATION_CITY"
88
+ xml.customfieldvalue object.payment.claim.vehicle.address.city
89
+ }
90
+ xml.customfield {
91
+ xml.customfieldname "LOCATION_STATE"
92
+ xml.customfieldvalue object.payment.claim.vehicle.address.state
93
+ }
94
+ xml.customfield {
95
+ xml.customfieldname "LOCATION_ZIP"
96
+ xml.customfieldvalue object.payment.claim.vehicle.address.zipcode
97
+ }
98
+ xml.customfield {
99
+ xml.customfieldname "MILEAGE_RT_BILLABLE"
100
+ xml.customfieldvalue 100
101
+ }
102
+ xml.customfield {
103
+ xml.customfieldname "MILEAGE_RT_TOTAL"
104
+ xml.customfieldvalue 100
105
+ }
106
+ xml.customfield {
107
+ xml.customfieldname "MILEAGE_RATE"
108
+ xml.customfieldvalue object.payment.mileage_rate
109
+ }
110
+ xml.customfield {
111
+ xml.customfieldname "NAME_ADJUSTER"
112
+ xml.customfieldvalue "#{object.payment.claim.adjuster.last_name}, #{object.payment.claim.adjuster.first_name}"
113
+ }
114
+ xml.customfield {
115
+ xml.customfieldname "CLAIM_CREATED_DATE"
116
+ xml.customfieldvalue object.payment.claim.dtcreated.strftime("%m/%d/%Y")
117
+ }
118
+ xml.customfield {
119
+ xml.customfieldname "NAME_PROCESSOR"
120
+ xml.customfieldvalue object.payment.creator.full_name
121
+ }
122
+ if object.payment.claim.dtloss.present?
123
+ xml.customfield {
124
+ xml.customfieldname "LOSS_DATE"
125
+ xml.customfieldvalue object.payment.claim.dtloss.strftime("%m/%d/%Y")
126
+ }
127
+ end
128
+ xml.customfield {
129
+ xml.customfieldname "LOSS_CATEGORY"
130
+ xml.customfieldvalue object.payment.claim.coveragetype
131
+ }
132
+ if object.payment.claim.estimate_id.present?
133
+ xml.customfield {
134
+ xml.customfieldname "LOSS_ESTIMATE_AMOUNT"
135
+ xml.customfieldvalue object.payment.claim.estimate.estimate_amt
136
+ }
137
+ xml.customfield {
138
+ xml.customfieldname "LOSS_FINAL_AMOUNT"
139
+ xml.customfieldvalue object.payment.claim.estimate.estimate_final_amt
140
+ }
141
+ end
142
+ xml.customfield {
143
+ xml.customfieldname "ASSIGNMENT_TYPE"
144
+ xml.customfieldvalue object.payment.type
145
+ }
146
+ }
147
+ end
148
+ bill_item_fields do |xml|
149
+ xml.billitems {
150
+ #set amount
151
+ xml.lineitem {
152
+ xml.glaccountno 4040
153
+ xml.amount 100
154
+ xml.memo object.payment.note
155
+ xml.locationid "ACDCorp"
156
+ xml.customerid object.customer.intacct_system_id
157
+ xml.vendorid object.vendor.intacct_system_id
158
+ xml.employeeid
159
+ xml.classid "A100" #hardcoded = will always be A100
160
+ }
161
+ #set mileage amount if exists
162
+ if object.payment.mileage_amt!=0
163
+ xml.lineitem {
164
+ xml.glaccountno 4040
165
+ xml.amount 100
166
+ xml.memo object.payment.note
167
+ xml.locationid "ACDCorp"
168
+ xml.customerid object.customer.intacct_system_id
169
+ xml.vendorid object.vendor.intacct_system_id
170
+ xml.employeeid
171
+ xml.classid "A100" #hardcoded = will always be A100
172
+ }
173
+ end
174
+ }
175
+ end
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,27 @@
1
+ module IntacctCustomerSteps
2
+ step('I have a customer') { customer }
3
+
4
+ step 'I create an Intacct Customer object' do
5
+ @intacct_customer = Intacct::Customer.new customer
6
+ end
7
+
8
+ step 'I use the #create method' do
9
+ @response = @intacct_customer.create
10
+ end
11
+
12
+ step 'I use the #get method' do
13
+ @response = @intacct_customer.get
14
+ end
15
+
16
+ step 'I use the #update method' do
17
+ @response = @intacct_customer.update
18
+ end
19
+
20
+ step 'I use the #delete method' do
21
+ @response = @intacct_customer.delete
22
+ end
23
+
24
+ step 'I should recieve "id, name and termname"' do
25
+ expect(@response.keys).to include :id, :name, :termname
26
+ end
27
+ end
@@ -0,0 +1,170 @@
1
+ module IntacctInvoiceSteps
2
+ class << self
3
+ attr_accessor :intacct_key
4
+ end
5
+
6
+ step 'I have setup the correct settings' do
7
+ default_setup
8
+ custom_fields_for_auto
9
+ end
10
+
11
+ step('I have an invoice, customer and vendor') { invoice; customer; vendor }
12
+
13
+ step 'I create an Intacct Invoice object' do
14
+ @intacct_invoice = Intacct::Invoice.new({
15
+ invoice: invoice,
16
+ customer: customer,
17
+ vendor: vendor
18
+ })
19
+ end
20
+
21
+ step 'I use the #create method' do
22
+ # We need to remove the fake intacct_system_id so it creates a real one
23
+ @intacct_invoice.object.invoice.intacct_system_id = nil
24
+ @intacct_invoice.object.customer.intacct_system_id = nil
25
+ @intacct_invoice.object.vendor.intacct_system_id = nil
26
+ @response = @intacct_invoice.create
27
+ IntacctInvoiceSteps.intacct_key = @intacct_invoice.object.invoice.intacct_key
28
+ end
29
+
30
+ step 'I use the #delete method' do
31
+ @intacct_invoice.object.invoice.intacct_key = IntacctInvoiceSteps.intacct_key
32
+ @response = @intacct_invoice.delete
33
+ if @response
34
+ Intacct::Customer.new(@intacct_invoice.object.customer).delete
35
+ Intacct::Vendor.new(@intacct_invoice.object.vendor).delete
36
+ end
37
+ end
38
+
39
+ def custom_fields_for_auto
40
+ Intacct::Invoice.class_eval do
41
+ custom_invoice_fields do |xml|
42
+ xml.customfields {
43
+ xml.customfield {
44
+ xml.customfieldname "CLAIM_NUMBER_ACD"
45
+ xml.customfieldvalue object.invoice.claim.dlnumber
46
+ }
47
+ xml.customfield {
48
+ xml.customfieldname "CLAIM_NUMBER_CLIENT"
49
+ xml.customfieldvalue object.invoice.claim.claimnumber
50
+ }
51
+ xml.customfield {
52
+ xml.customfieldname "VEHICLE_YEAR"
53
+ xml.customfieldvalue object.invoice.claim.vehicle.year
54
+ }
55
+ xml.customfield {
56
+ xml.customfieldname "VEHICLE_MAKE"
57
+ xml.customfieldvalue object.invoice.claim.vehicle.make
58
+ }
59
+ xml.customfield {
60
+ xml.customfieldname "VEHICLE_MODEL"
61
+ xml.customfieldvalue object.invoice.claim.vehicle.model
62
+ }
63
+ xml.customfield {
64
+ xml.customfieldname "VEHICLE_TYPE"
65
+ xml.customfieldvalue object.invoice.claim.appraisal_type
66
+ }
67
+ xml.customfield {
68
+ xml.customfieldname "NAME_OWNER"
69
+ xml.customfieldvalue object.invoice.claim.owner.full_name
70
+ }
71
+ xml.customfield {
72
+ xml.customfieldname "NAME_INSURED"
73
+ xml.customfieldvalue object.invoice.claim.owner.insuredorclaimant=="INSURED" ? object.invoice.claim.owner.full_name : object.invoice.claim.insured_full_name
74
+ }
75
+ xml.customfield {
76
+ xml.customfieldname "NAME_CLAIMANT"
77
+ xml.customfieldvalue object.invoice.claim.owner.insuredorclaimant=="CLAIMANT" ? object.invoice.claim.owner.full_name : ""
78
+ }
79
+ xml.customfield {
80
+ xml.customfieldname "LOCATION_CITY"
81
+ xml.customfieldvalue object.invoice.claim.vehicle.address.city
82
+ }
83
+ xml.customfield {
84
+ xml.customfieldname "LOCATION_STATE"
85
+ xml.customfieldvalue object.invoice.claim.vehicle.address.state
86
+ }
87
+ xml.customfield {
88
+ xml.customfieldname "LOCATION_ZIP"
89
+ xml.customfieldvalue object.invoice.claim.vehicle.address.zipcode
90
+ }
91
+ xml.customfield {
92
+ xml.customfieldname "MILEAGE_RT_BILLABLE"
93
+ xml.customfieldvalue 30
94
+ }
95
+ xml.customfield {
96
+ xml.customfieldname "MILEAGE_RT_TOTAL"
97
+ xml.customfieldvalue object.invoice.claim.appraiser_driving_distance.to_i*2
98
+ }
99
+ xml.customfield {
100
+ xml.customfieldname "MILEAGE_RATE"
101
+ xml.customfieldvalue object.invoice.mileage_rate
102
+ }
103
+ xml.customfield {
104
+ xml.customfieldname "NAME_ADJUSTER"
105
+ xml.customfieldvalue "#{object.invoice.claim.adjuster.last_name}, #{object.invoice.claim.adjuster.first_name}"
106
+ }
107
+ xml.customfield {
108
+ xml.customfieldname "CLAIM_CREATED_DATE"
109
+ xml.customfieldvalue object.invoice.claim.dtcreated.strftime("%m/%d/%Y")
110
+ }
111
+ xml.customfield {
112
+ xml.customfieldname "NAME_PROCESSOR"
113
+ xml.customfieldvalue object.invoice.creator.full_name
114
+ }
115
+ if object.invoice.claim.dtloss.present?
116
+ xml.customfield {
117
+ xml.customfieldname "LOSS_DATE"
118
+ xml.customfieldvalue object.invoice.claim.dtloss.strftime("%m/%d/%Y")
119
+ }
120
+ end
121
+ xml.customfield {
122
+ xml.customfieldname "LOSS_CATEGORY"
123
+ xml.customfieldvalue object.invoice.claim.coveragetype
124
+ }
125
+ if object.invoice.claim.estimate_id.present?
126
+ xml.customfield {
127
+ xml.customfieldname "LOSS_ESTIMATE_AMOUNT"
128
+ xml.customfieldvalue object.invoice.claim.estimate.estimate_amt
129
+ }
130
+ xml.customfield {
131
+ xml.customfieldname "LOSS_FINAL_AMOUNT"
132
+ xml.customfieldvalue object.invoice.claim.estimate.estimate_final_amt
133
+ }
134
+ end
135
+ xml.customfield {
136
+ xml.customfieldname "ASSIGNMENT_TYPE"
137
+ xml.customfieldvalue object.invoice.type
138
+ }
139
+ }
140
+ xml.invoiceitems {
141
+ #set amount
142
+ standard_amount = object.invoice.base_fee+object.invoice.additional_fee
143
+ xml.lineitem {
144
+ xml.glaccountno 4180
145
+ xml.amount standard_amount
146
+ xml.memo object.invoice.note
147
+ xml.locationid "ACDCorp"
148
+ xml.customerid object.customer.intacct_system_id
149
+ # xml.vendorid "#{payment.payee.intacct_system_id if payment}"
150
+ xml.employeeid
151
+ xml.classid "A100" #hardcoded = will always be A100
152
+ }
153
+ #set mileage amount if exists
154
+ if object.invoice.mileage_fee!=0
155
+ xml.lineitem {
156
+ xml.glaccountno 4180
157
+ xml.amount object.invoice.mileage_fee
158
+ xml.memo object.invoice.note
159
+ xml.locationid "ACDCorp"
160
+ xml.customerid object.customer.intacct_system_id
161
+ # xml.vendorid "#{payment.payee.intacct_system_id if payment}"
162
+ xml.employeeid
163
+ xml.classid "A100" #hardcoded = will always be A100
164
+ }
165
+ end
166
+ }
167
+ end
168
+ end
169
+ end
170
+ end
@@ -0,0 +1,23 @@
1
+ module IntacctVendorSteps
2
+ step('I have a vendor') { vendor }
3
+
4
+ step 'I create an Intacct Vendor object' do
5
+ @intacct_vendor = Intacct::Vendor.new vendor
6
+ end
7
+
8
+ step 'I use the #create method' do
9
+ @response = @intacct_vendor.create
10
+ end
11
+
12
+ step 'I use the #update method' do
13
+ @response = @intacct_vendor.update
14
+ end
15
+
16
+ step 'I use the #delete method' do
17
+ @response = @intacct_vendor.delete
18
+ end
19
+
20
+ step 'I should recieve "id, name and termname"' do
21
+ expect(@response.keys).to include :id, :name, :termname
22
+ end
23
+ end
@@ -0,0 +1,7 @@
1
+ step 'I have setup the correct settings' do
2
+ default_setup
3
+ end
4
+
5
+ step 'I should recieve a sucessfull response' do
6
+ expect(@response).to be_true
7
+ end
metadata ADDED
@@ -0,0 +1,224 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: intacctrb
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Matt Hale
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hooks
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
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: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: turnip
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
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: awesome_print
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: dotenv-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: faker
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 1.2.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.2.0
153
+ description: Ruby lib to communicate with the Intacct API system. Forked from https://github.com/cj/intacct.
154
+ email:
155
+ - matt.hale.0@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".DS_Store"
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - Gemfile
164
+ - Gemfile.lock
165
+ - LICENSE.txt
166
+ - README.md
167
+ - Rakefile
168
+ - intacctrb.gemspec
169
+ - lib/.DS_Store
170
+ - lib/intacctrb.rb
171
+ - lib/intacctrb/ap_payment.rb
172
+ - lib/intacctrb/base.rb
173
+ - lib/intacctrb/bill.rb
174
+ - lib/intacctrb/customer.rb
175
+ - lib/intacctrb/invoice.rb
176
+ - lib/intacctrb/journal_entry.rb
177
+ - lib/intacctrb/vendor.rb
178
+ - lib/intacctrb/version.rb
179
+ - spec/features/intacct_bill.feature
180
+ - spec/features/intacct_customer.feature
181
+ - spec/features/intacct_invoice.feature
182
+ - spec/features/intacct_vendor.feature
183
+ - spec/helpers.rb
184
+ - spec/spec_helper.rb
185
+ - spec/steps/intacct_bill_steps.rb
186
+ - spec/steps/intacct_customer_steps.rb
187
+ - spec/steps/intacct_invoice_steps.rb
188
+ - spec/steps/intacct_vendor_steps.rb
189
+ - spec/turnip_helper.rb
190
+ homepage: https://github.com/apexdp/intacctrb
191
+ licenses: []
192
+ metadata: {}
193
+ post_install_message:
194
+ rdoc_options: []
195
+ require_paths:
196
+ - lib
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ requirements: []
208
+ rubyforge_project:
209
+ rubygems_version: 2.5.1
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: Ruby Intacct API Client
213
+ test_files:
214
+ - spec/features/intacct_bill.feature
215
+ - spec/features/intacct_customer.feature
216
+ - spec/features/intacct_invoice.feature
217
+ - spec/features/intacct_vendor.feature
218
+ - spec/helpers.rb
219
+ - spec/spec_helper.rb
220
+ - spec/steps/intacct_bill_steps.rb
221
+ - spec/steps/intacct_customer_steps.rb
222
+ - spec/steps/intacct_invoice_steps.rb
223
+ - spec/steps/intacct_vendor_steps.rb
224
+ - spec/turnip_helper.rb