xeroizer 0.5.2 → 2.15.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -5,7 +5,6 @@ gem 'oauth', '>= 0.3.6'
5
5
  gem 'activesupport'
6
6
  gem 'nokogiri'
7
7
  gem 'i18n'
8
- gem 'yard'
9
8
 
10
9
  group :test do
11
10
  gem 'test-unit'
@@ -15,4 +14,6 @@ group :test do
15
14
  gem "rest-client"
16
15
  gem "turn"
17
16
  gem "ansi"
17
+ gem "redcarpet"
18
+ gem 'yard'
18
19
  end
data/Gemfile.lock CHANGED
@@ -24,6 +24,7 @@ GEM
24
24
  rake (0.9.2.2)
25
25
  rdoc (3.12)
26
26
  json (~> 1.4)
27
+ redcarpet (2.1.1)
27
28
  rest-client (1.6.7)
28
29
  mime-types (>= 1.16)
29
30
  shoulda (3.0.1)
@@ -48,6 +49,7 @@ DEPENDENCIES
48
49
  mocha
49
50
  nokogiri
50
51
  oauth (>= 0.3.6)
52
+ redcarpet
51
53
  rest-client
52
54
  shoulda
53
55
  test-unit
data/README.md CHANGED
@@ -24,14 +24,16 @@ Installation
24
24
  Basic Usage
25
25
  -----------
26
26
 
27
- require 'rubygems'
28
- require 'xeroizer'
29
-
30
- # Create client (used to communicate with the API).
31
- client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
32
-
33
- # Retrieve list of contacts (note: all communication must be made through the client).
34
- contacts = client.Contact.all(:order => 'Name')
27
+ ```ruby
28
+ require 'rubygems'
29
+ require 'xeroizer'
30
+
31
+ # Create client (used to communicate with the API).
32
+ client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
33
+
34
+ # Retrieve list of contacts (note: all communication must be made through the client).
35
+ contacts = client.Contact.all(:order => 'Name')
36
+ ```
35
37
 
36
38
  Authentication
37
39
  --------------
@@ -54,80 +56,86 @@ to many organisations at once by going through the authorisation process for eac
54
56
  The access token received will expire after 30 minutes. If you want access for longer you will need
55
57
  the user to re-authorise your application.
56
58
 
57
- Authentication occcurs in 3 steps:
59
+ Authentication occurs in 3 steps:
58
60
 
59
- client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
60
-
61
- # 1. Get a RequestToken from Xero. :oauth_callback is the URL the user will be redirected to
62
- # after they have authenticated your application.
63
- #
64
- # Note: The callback URL's domain must match that listed for your application in http://api.xero.com
65
- # otherwise the user will not be redirected and only be shown the authentication code.
66
- request_token = client.request_token(:oauth_callback => 'http://yourapp.com/oauth/callback')
67
-
68
- # 2. Redirect the user to the URL specified by the RequestToken.
69
- #
70
- # Note: example uses redirect_to method defined in Rails controllers.
71
- redirect_to request_token.authorize_url
72
-
73
- # 3. Exchange RequestToken for AccessToken.
74
- # This access token will be used for all subsequent requests but it is stored within the client
75
- # application so you don't have to record it.
76
- #
77
- # Note: This example assumes the callback URL is a Rails action.
78
- client.authorize_from_request(request_token.token, request_token.secret, :oauth_verifier => params[:oauth_verifier])
61
+ ```ruby
62
+ client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
63
+
64
+ # 1. Get a RequestToken from Xero. :oauth_callback is the URL the user will be redirected to
65
+ # after they have authenticated your application.
66
+ #
67
+ # Note: The callback URL's domain must match that listed for your application in http://api.xero.com
68
+ # otherwise the user will not be redirected and only be shown the authentication code.
69
+ request_token = client.request_token(:oauth_callback => 'http://yourapp.com/oauth/callback')
70
+
71
+ # 2. Redirect the user to the URL specified by the RequestToken.
72
+ #
73
+ # Note: example uses redirect_to method defined in Rails controllers.
74
+ redirect_to request_token.authorize_url
75
+
76
+ # 3. Exchange RequestToken for AccessToken.
77
+ # This access token will be used for all subsequent requests but it is stored within the client
78
+ # application so you don't have to record it.
79
+ #
80
+ # Note: This example assumes the callback URL is a Rails action.
81
+ client.authorize_from_request(request_token.token, request_token.secret, :oauth_verifier => params[:oauth_verifier])
82
+ ```
79
83
 
80
84
  You can now use the client to access the Xero API methods, e.g.
81
85
 
82
- contacts = client.Contact.all
86
+ ```ruby
87
+ contacts = client.Contact.all
88
+ ```
83
89
 
84
90
  #### Example Rails Controller
85
91
 
86
- class XeroSessionController < ApplicationController
92
+ ```ruby
93
+ class XeroSessionController < ApplicationController
94
+
95
+ before_filter :get_xero_client
96
+
97
+ public
87
98
 
88
- before_filter :get_xero_client
99
+ def new
100
+ request_token = @xero_client.request_token(:oauth_callback => 'http://yourapp.com/xero_session/create')
101
+ session[:request_token] = request_token.token
102
+ session[:request_secret] = request_token.secret
103
+
104
+ redirect_to request_token.authorize_url
105
+ end
89
106
 
90
- public
107
+ def create
108
+ @xero_client.authorize_from_request(
109
+ session[:request_token],
110
+ session[:request_secret],
111
+ :oauth_verifier => params[:oauth_verifier] )
112
+
113
+ session[:xero_auth] = {
114
+ :access_token => @xero_client.access_token.token,
115
+ :access_key => @xero_client.access_token.key }
116
+
117
+ session.data.delete(:request_token)
118
+ session.data.delete(:request_secret)
119
+ end
91
120
 
92
- def new
93
- request_token = @xero_client.request_token(:oauth_callback => 'http://yourapp.com/xero_session/create')
94
- session[:request_token] = request_token.token
95
- session[:request_secret] = request_token.secret
96
-
97
- redirect_to request_token.authorize_url
98
- end
99
-
100
- def create
101
- @xero_client.authorize_from_request(
102
- session[:request_token],
103
- session[:request_secret],
104
- :oauth_verifier => params[:oauth_verifier] )
105
-
106
- session[:xero_auth] = {
107
- :access_token => @xero_client.access_token.token,
108
- :access_key => @xero_client.access_token.key }
109
-
110
- session.data.delete(:request_token)
111
- session.data.delete(:request_secret)
112
- end
113
-
114
- def destroy
115
- session.data.delete(:xero_auth)
116
- end
117
-
118
- private
121
+ def destroy
122
+ session.data.delete(:xero_auth)
123
+ end
124
+
125
+ private
126
+
127
+ def get_xero_client
128
+ @xero_client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
119
129
 
120
- def get_xero_client
121
- @xero_client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
122
-
123
- # Add AccessToken if authorised previously.
124
- if session[:xero_auth]
125
- @xero_client.authorize_from_access(
126
- session[:xero_auth][:access_token],
127
- session[:xero_auth][:access_key] )
128
- end
130
+ # Add AccessToken if authorised previously.
131
+ if session[:xero_auth]
132
+ @xero_client.authorize_from_access(
133
+ session[:xero_auth][:access_token],
134
+ session[:xero_auth][:access_key] )
129
135
  end
130
- end
136
+ end
137
+ end
138
+ ```
131
139
 
132
140
  #### Storing AccessToken
133
141
 
@@ -137,8 +145,10 @@ the API beyond the token's expiry time.
137
145
 
138
146
  If you want API access for longer consider creating a PartnerApplication which will allow you to renew tokens.
139
147
 
140
- access_key = client.access_token.token
141
- access_secret = client.access_token.secret
148
+ ```ruby
149
+ access_key = client.access_token.token
150
+ access_secret = client.access_token.secret
151
+ ```
142
152
 
143
153
  ### Private Applications
144
154
 
@@ -159,8 +169,10 @@ You need to upload this `public_privatekey.pfx` file to your private application
159
169
 
160
170
  Example usage:
161
171
 
162
- client = Xeroizer::PrivateApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET, "/path/to/privatekey.pem")
163
- contacts = client.Contact.all
172
+ ```ruby
173
+ client = Xeroizer::PrivateApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET, "/path/to/privatekey.pem")
174
+ contacts = client.Contact.all
175
+ ```
164
176
 
165
177
  ### Partner Applications
166
178
 
@@ -186,40 +198,44 @@ access the partner application in a similar way to public applications.
186
198
 
187
199
  Authentication occcurs in 3 steps:
188
200
 
189
- client = Xeroizer::PartnerApplication.new(
190
- YOUR_OAUTH_CONSUMER_KEY,
191
- YOUR_OAUTH_CONSUMER_SECRET,
192
- "/path/to/privatekey.pem",
193
- "/path/to/entrust-cert.pem",
194
- "/path/to/entrust-private-nopass.pem"
195
- )
196
-
197
- # 1. Get a RequestToken from Xero. :oauth_callback is the URL the user will be redirected to
198
- # after they have authenticated your application.
199
- #
200
- # Note: The callback URL's domain must match that listed for your application in http://api.xero.com
201
- # otherwise the user will not be redirected and only be shown the authentication code.
202
- request_token = client.request_token(:oauth_callback => 'http://yourapp.com/oauth/callback')
203
-
204
- # 2. Redirect the user to the URL specified by the RequestToken.
205
- #
206
- # Note: example uses redirect_to method defined in Rails controllers.
207
- redirect_to request_token.authorize_url
208
-
209
- # 3. Exchange RequestToken for AccessToken.
210
- # This access token will be used for all subsequent requests but it is stored within the client
211
- # application so you don't have to record it.
212
- #
213
- # Note: This example assumes the callback URL is a Rails action.
214
- client.authorize_from_request(request_token.token, request_token.secret, :oauth_verifier => params[:oauth_verifier])
201
+ ```ruby
202
+ client = Xeroizer::PartnerApplication.new(
203
+ YOUR_OAUTH_CONSUMER_KEY,
204
+ YOUR_OAUTH_CONSUMER_SECRET,
205
+ "/path/to/privatekey.pem",
206
+ "/path/to/entrust-cert.pem",
207
+ "/path/to/entrust-private-nopass.pem"
208
+ )
209
+
210
+ # 1. Get a RequestToken from Xero. :oauth_callback is the URL the user will be redirected to
211
+ # after they have authenticated your application.
212
+ #
213
+ # Note: The callback URL's domain must match that listed for your application in http://api.xero.com
214
+ # otherwise the user will not be redirected and only be shown the authentication code.
215
+ request_token = client.request_token(:oauth_callback => 'http://yourapp.com/oauth/callback')
216
+
217
+ # 2. Redirect the user to the URL specified by the RequestToken.
218
+ #
219
+ # Note: example uses redirect_to method defined in Rails controllers.
220
+ redirect_to request_token.authorize_url
221
+
222
+ # 3. Exchange RequestToken for AccessToken.
223
+ # This access token will be used for all subsequent requests but it is stored within the client
224
+ # application so you don't have to record it.
225
+ #
226
+ # Note: This example assumes the callback URL is a Rails action.
227
+ client.authorize_from_request(request_token.token, request_token.secret, :oauth_verifier => params[:oauth_verifier])
228
+ ```
215
229
 
216
230
  This AccessToken will last for 30 minutes however, when using the partner application API you can
217
231
  renew this token. To be able to renew this token, you need to save the following data from this organisation's
218
232
  AccessToken:
219
233
 
220
- session_handle = client.session_handle
221
- access_key = client.access_token.token
222
- access_secret = client.access_token.secret
234
+ ```ruby
235
+ session_handle = client.session_handle
236
+ access_key = client.access_token.token
237
+ access_secret = client.access_token.secret
238
+ ```
223
239
 
224
240
  Two other interesting attributes of the PartnerApplication client are:
225
241
 
@@ -230,12 +246,14 @@ Two other interesting attributes of the PartnerApplication client are:
230
246
 
231
247
  Renewal of an access token requires knowledge of the previous access token generated for this organisation. To renew:
232
248
 
233
- # If you still have a client instance.
234
- client.renew_access_token
235
-
236
- # If you are renewing from stored token/session details.
237
- client.renew_access_token(access_key, access_secret, session_handle)
238
-
249
+ ```ruby
250
+ # If you still have a client instance.
251
+ client.renew_access_token
252
+
253
+ # If you are renewing from stored token/session details.
254
+ client.renew_access_token(access_key, access_secret, session_handle)
255
+ ```
256
+
239
257
  This will invalidate the previous token and refresh the `access_key` and `access_secret` as specified in the
240
258
  initial authorisation process. You must always know the previous token's details to renew access to this
241
259
  session.
@@ -249,13 +267,15 @@ Each of the below record types is implemented within this library. To allow for
249
267
  time in a single application, the model classes are accessed from the instance of PublicApplication, PrivateApplication
250
268
  or PartnerApplication. All class-level operations occur on this singleton. For example:
251
269
 
252
- xero = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
253
- xero.authorize_from_access(session[:xero_auth][:access_token], session[:xero_auth][:access_key])
254
-
255
- contacts = xero.Contact.all(:order => 'Name')
256
-
257
- new_contact = xero.Contact.build(:name => 'ABC Development')
258
- saved = new_contact.save
270
+ ```ruby
271
+ xero = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY, YOUR_OAUTH_CONSUMER_SECRET)
272
+ xero.authorize_from_access(session[:xero_auth][:access_token], session[:xero_auth][:access_key])
273
+
274
+ contacts = xero.Contact.all(:order => 'Name')
275
+
276
+ new_contact = xero.Contact.build(:name => 'ABC Development')
277
+ saved = new_contact.save
278
+ ```
259
279
 
260
280
  ### \#all([options])
261
281
 
@@ -297,7 +317,9 @@ creating these records.
297
317
 
298
318
  You can specify find filters by providing the :where option with a hash. For example:
299
319
 
300
- invoices = Xero.Invoice.all(:where => {:type => 'ACCREC', :amount_due_is_not => 0})
320
+ ```ruby
321
+ invoices = Xero.Invoice.all(:where => {:type => 'ACCREC', :amount_due_is_not => 0})
322
+ ```
301
323
 
302
324
  will automatically create the Xero string:
303
325
 
@@ -355,15 +377,19 @@ Records may be associated with each other via two different methods, `has_many`
355
377
 
356
378
  **has\_many example:**
357
379
 
358
- invoice = xero.Invoice.find('cd09aa49-134d-40fb-a52b-b63c6a91d712')
359
- invoice.line_items.each do | line_item |
360
- puts "Line Description: #{line_item.description}"
361
- end
380
+ ```ruby
381
+ invoice = xero.Invoice.find('cd09aa49-134d-40fb-a52b-b63c6a91d712')
382
+ invoice.line_items.each do | line_item |
383
+ puts "Line Description: #{line_item.description}"
384
+ end
385
+ ```
362
386
 
363
387
  **belongs\_to example:**
364
388
 
365
- invoice = xero.Invoice.find('cd09aa49-134d-40fb-a52b-b63c6a91d712')
366
- puts "Invoice Contact Name: #{invoice.contact.name}"
389
+ ```ruby
390
+ invoice = xero.Invoice.find('cd09aa49-134d-40fb-a52b-b63c6a91d712')
391
+ puts "Invoice Contact Name: #{invoice.contact.name}"
392
+ ```
367
393
 
368
394
  Creating/Updating Data
369
395
  ----------------------
@@ -372,21 +398,27 @@ Creating/Updating Data
372
398
 
373
399
  New records can be created like:
374
400
 
375
- contact = xero.Contact.build(:name => 'Contact Name')
376
- contact.first_name = 'Joe'
377
- contact.last_name = 'Bloggs'
378
- contact.add_address(:type => 'STREET', :line1 => '12 Testing Lane', :city => 'Brisbane')
379
- contact.add_phone(:type => 'DEFAULT', :area_code => '07', :number => '3033 1234')
380
- contact.add_phone(:type => 'MOBILE', :number => '0412 123 456')
381
- contact.save
401
+ ```ruby
402
+ contact = xero.Contact.build(:name => 'Contact Name')
403
+ contact.first_name = 'Joe'
404
+ contact.last_name = 'Bloggs'
405
+ contact.add_address(:type => 'STREET', :line1 => '12 Testing Lane', :city => 'Brisbane')
406
+ contact.add_phone(:type => 'DEFAULT', :area_code => '07', :number => '3033 1234')
407
+ contact.add_phone(:type => 'MOBILE', :number => '0412 123 456')
408
+ contact.save
409
+ ```
382
410
 
383
411
  To add to a `has_many` association use the `add_{association}` method. For example:
384
412
 
385
- contact.add_address(:type => 'STREET', :line1 => '12 Testing Lane', :city => 'Brisbane')
413
+ ```ruby
414
+ contact.add_address(:type => 'STREET', :line1 => '12 Testing Lane', :city => 'Brisbane')
415
+ ```
386
416
 
387
417
  To add to a `belongs_to` association use the `build_{association}` method. For example:
388
418
 
389
- invoice.build_contact(:name => 'ABC Company')
419
+ ```ruby
420
+ invoice.build_contact(:name => 'ABC Company')
421
+ ```
390
422
 
391
423
  ### Updating
392
424
 
@@ -394,9 +426,11 @@ If the primary GUID for the record is present, the library will attempt to updat
394
426
  creating it. It is important that this record is downloaded from the Xero API first before attempting
395
427
  an update. For example:
396
428
 
397
- contact = xero.Contact.find("cd09aa49-134d-40fb-a52b-b63c6a91d712")
398
- contact.name = "Another Name Change"
399
- contact.save
429
+ ```ruby
430
+ contact = xero.Contact.find("cd09aa49-134d-40fb-a52b-b63c6a91d712")
431
+ contact.name = "Another Name Change"
432
+ contact.save
433
+ ```
400
434
 
401
435
  Have a look at the models in `lib/xeroizer/models/` to see the valid attributes, associations and
402
436
  minimum validation requirements for each of the record types.
@@ -408,15 +442,19 @@ If a record doesn't match it's internal validation requirements the `#save` meth
408
442
 
409
443
  For example:
410
444
 
411
- contact = xero.Contact.build
412
- saved = contact.save
413
-
414
- # contact.errors will contain [[:name, "can't be blank"]]
445
+ ```ruby
446
+ contact = xero.Contact.build
447
+ saved = contact.save
448
+
449
+ # contact.errors will contain [[:name, "can't be blank"]]
450
+ ```
415
451
 
416
452
  \#errors\_for(:attribute\_name) is a helper method to return just the errors associated with
417
453
  that attribute. For example:
418
454
 
419
- contact.errors_for(:name) # will contain ["can't be blank"]
455
+ ```ruby
456
+ contact.errors_for(:name) # will contain ["can't be blank"]
457
+ ```
420
458
 
421
459
  If something goes really wrong and the particular validation isn't handled by the internal
422
460
  validators then the library may raise a `Xeroizer::ApiException`.
@@ -432,39 +470,41 @@ are welcome).
432
470
 
433
471
  Reports are accessed like the following example:
434
472
 
435
- trial_balance = xero.TrialBalance.get(:date => '2011-03-21')
436
-
437
- # Array containing report headings.
438
- trial_balance.header.cells.map { | cell | cell.value }
439
-
440
- # Report rows by section
441
- trial_balance.sections.each do | section |
442
- puts "Section Title: #{section.title}"
443
- section.rows.each do | row |
444
- puts "\t#{row.cells.map { | cell | cell.value }.join("\t")}"
445
- end
473
+ ```ruby
474
+ trial_balance = xero.TrialBalance.get(:date => '2011-03-21')
475
+
476
+ # Array containing report headings.
477
+ trial_balance.header.cells.map { | cell | cell.value }
478
+
479
+ # Report rows by section
480
+ trial_balance.sections.each do | section |
481
+ puts "Section Title: #{section.title}"
482
+ section.rows.each do | row |
483
+ puts "\t#{row.cells.map { | cell | cell.value }.join("\t")}"
446
484
  end
447
-
448
- # Summary row (if only one on the report)
449
- trial_balance.summary.cells.map { | cell | cell.value }
450
-
451
- # All report rows (including HeaderRow, SectionRow, Row and SummaryRow)
452
- trial_balance.rows.each do | row |
453
- case row
454
- when Xeroizer::Report::HeaderRow
455
- # do something with header
456
-
457
- when Xeroizer::Report::SectionRow
458
- # do something with section, will need to step into the rows for this section
459
-
460
- when Xeroizer::Report::Row
461
- # do something for standard report rows
462
-
463
- when Xeroizer::Report::SummaryRow
464
- # do something for summary rows
465
-
466
- end
485
+ end
486
+
487
+ # Summary row (if only one on the report)
488
+ trial_balance.summary.cells.map { | cell | cell.value }
489
+
490
+ # All report rows (including HeaderRow, SectionRow, Row and SummaryRow)
491
+ trial_balance.rows.each do | row |
492
+ case row
493
+ when Xeroizer::Report::HeaderRow
494
+ # do something with header
495
+
496
+ when Xeroizer::Report::SectionRow
497
+ # do something with section, will need to step into the rows for this section
498
+
499
+ when Xeroizer::Report::Row
500
+ # do something for standard report rows
501
+
502
+ when Xeroizer::Report::SummaryRow
503
+ # do something for summary rows
504
+
467
505
  end
506
+ end
507
+ ```
468
508
 
469
509
  Xero API Rate Limits
470
510
  --------------------
@@ -481,7 +521,9 @@ If required, the library can handle these exceptions internally by sleeping
481
521
  for a configurable number of seconds and then repeating the last request.
482
522
  You can set this option when initializing an application:
483
523
 
484
- # Sleep for 2 seconds every time the rate limit is exceeded.
485
- client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY,
486
- YOUR_OAUTH_CONSUMER_SECRET,
487
- :rate_limit_sleep => 2)
524
+ ```ruby
525
+ # Sleep for 2 seconds every time the rate limit is exceeded.
526
+ client = Xeroizer::PublicApplication.new(YOUR_OAUTH_CONSUMER_KEY,
527
+ YOUR_OAUTH_CONSUMER_SECRET,
528
+ :rate_limit_sleep => 2)
529
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 2.15.0
@@ -25,6 +25,7 @@ module Xeroizer
25
25
  string :line_amount_types
26
26
  string :narration
27
27
  string :url
28
+ string :external_link_provider_name # only seems to be read-only at the moment
28
29
  boolean :show_on_cash_basis_reports
29
30
  datetime :updated_date_utc, :api_name => 'UpdatedDateUTC'
30
31
 
@@ -51,7 +51,7 @@ module Xeroizer
51
51
  end
52
52
 
53
53
  def []=(attribute, value)
54
- self.send("#{attribute}=", value)
54
+ self.send("#{attribute}=".to_sym, value)
55
55
  end
56
56
 
57
57
  def new_record?
@@ -40,7 +40,7 @@ module Xeroizer
40
40
  if field[:calculated]
41
41
  record.attributes[field[:internal_name]] = value
42
42
  else
43
- record.send("#{field[:internal_name]}=", value)
43
+ record.send("#{field[:internal_name]}=".to_sym, value)
44
44
  end
45
45
  end
46
46
  end
data/xeroizer.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "xeroizer"
8
- s.version = "0.5.2"
8
+ s.version = "2.15.0"
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"]
@@ -368,7 +368,6 @@ Gem::Specification.new do |s|
368
368
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
369
369
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
370
370
  s.add_runtime_dependency(%q<i18n>, [">= 0"])
371
- s.add_runtime_dependency(%q<yard>, [">= 0"])
372
371
  s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
373
372
  s.add_runtime_dependency(%q<oauth>, [">= 0.3.6"])
374
373
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
@@ -381,7 +380,6 @@ Gem::Specification.new do |s|
381
380
  s.add_dependency(%q<activesupport>, [">= 0"])
382
381
  s.add_dependency(%q<nokogiri>, [">= 0"])
383
382
  s.add_dependency(%q<i18n>, [">= 0"])
384
- s.add_dependency(%q<yard>, [">= 0"])
385
383
  s.add_dependency(%q<builder>, [">= 2.1.2"])
386
384
  s.add_dependency(%q<oauth>, [">= 0.3.6"])
387
385
  s.add_dependency(%q<activesupport>, [">= 0"])
@@ -395,7 +393,6 @@ Gem::Specification.new do |s|
395
393
  s.add_dependency(%q<activesupport>, [">= 0"])
396
394
  s.add_dependency(%q<nokogiri>, [">= 0"])
397
395
  s.add_dependency(%q<i18n>, [">= 0"])
398
- s.add_dependency(%q<yard>, [">= 0"])
399
396
  s.add_dependency(%q<builder>, [">= 2.1.2"])
400
397
  s.add_dependency(%q<oauth>, [">= 0.3.6"])
401
398
  s.add_dependency(%q<activesupport>, [">= 0"])
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xeroizer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
- - 0
8
- - 5
9
7
  - 2
10
- version: 0.5.2
8
+ - 15
9
+ - 0
10
+ version: 2.15.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Wayne Robinson
@@ -94,20 +94,6 @@ dependencies:
94
94
  - !ruby/object:Gem::Dependency
95
95
  prerelease: false
96
96
  version_requirements: &id006 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- requirement: *id006
106
- name: yard
107
- type: :runtime
108
- - !ruby/object:Gem::Dependency
109
- prerelease: false
110
- version_requirements: &id007 !ruby/object:Gem::Requirement
111
97
  none: false
112
98
  requirements:
113
99
  - - ">="
@@ -118,12 +104,12 @@ dependencies:
118
104
  - 1
119
105
  - 2
120
106
  version: 2.1.2
121
- requirement: *id007
107
+ requirement: *id006
122
108
  name: builder
123
109
  type: :runtime
124
110
  - !ruby/object:Gem::Dependency
125
111
  prerelease: false
126
- version_requirements: &id008 !ruby/object:Gem::Requirement
112
+ version_requirements: &id007 !ruby/object:Gem::Requirement
127
113
  none: false
128
114
  requirements:
129
115
  - - ">="
@@ -134,12 +120,12 @@ dependencies:
134
120
  - 3
135
121
  - 6
136
122
  version: 0.3.6
137
- requirement: *id008
123
+ requirement: *id007
138
124
  name: oauth
139
125
  type: :runtime
140
126
  - !ruby/object:Gem::Dependency
141
127
  prerelease: false
142
- version_requirements: &id009 !ruby/object:Gem::Requirement
128
+ version_requirements: &id008 !ruby/object:Gem::Requirement
143
129
  none: false
144
130
  requirements:
145
131
  - - ">="
@@ -148,12 +134,12 @@ dependencies:
148
134
  segments:
149
135
  - 0
150
136
  version: "0"
151
- requirement: *id009
137
+ requirement: *id008
152
138
  name: activesupport
153
139
  type: :runtime
154
140
  - !ruby/object:Gem::Dependency
155
141
  prerelease: false
156
- version_requirements: &id010 !ruby/object:Gem::Requirement
142
+ version_requirements: &id009 !ruby/object:Gem::Requirement
157
143
  none: false
158
144
  requirements:
159
145
  - - ">="
@@ -162,12 +148,12 @@ dependencies:
162
148
  segments:
163
149
  - 0
164
150
  version: "0"
165
- requirement: *id010
151
+ requirement: *id009
166
152
  name: nokogiri
167
153
  type: :runtime
168
154
  - !ruby/object:Gem::Dependency
169
155
  prerelease: false
170
- version_requirements: &id011 !ruby/object:Gem::Requirement
156
+ version_requirements: &id010 !ruby/object:Gem::Requirement
171
157
  none: false
172
158
  requirements:
173
159
  - - ">="
@@ -176,12 +162,12 @@ dependencies:
176
162
  segments:
177
163
  - 0
178
164
  version: "0"
179
- requirement: *id011
165
+ requirement: *id010
180
166
  name: mocha
181
167
  type: :development
182
168
  - !ruby/object:Gem::Dependency
183
169
  prerelease: false
184
- version_requirements: &id012 !ruby/object:Gem::Requirement
170
+ version_requirements: &id011 !ruby/object:Gem::Requirement
185
171
  none: false
186
172
  requirements:
187
173
  - - ">="
@@ -190,7 +176,7 @@ dependencies:
190
176
  segments:
191
177
  - 0
192
178
  version: "0"
193
- requirement: *id012
179
+ requirement: *id011
194
180
  name: shoulda
195
181
  type: :development
196
182
  description: Ruby library for the Xero accounting system API.