quaderno 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YWU4MDljODQ0MWYwMzk4ZjcwMWVkMDhhYjhjMjM0MDFiZDA1MDcwOA==
5
- data.tar.gz: !binary |-
6
- MWEyNGVhOTAzYjcyMzE1YTYyOTFlM2EwZWY2MzljZmM5NWQyNTRjMw==
2
+ SHA1:
3
+ metadata.gz: 6a856c49bdf181c9122a299d38bf1c6f4feb9b88
4
+ data.tar.gz: 707680768d69048f3e519935fa4376e78ca3da59
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YjBhNzg1M2ExOGUwYjZjOTcxYmRlYmZhZTFmYmUxNGQ3YjZkNTcwNjdiZjAy
10
- ZWNlNDZjZDUxYjAzZTA5ZTIzNjhiMzI1YjkyMjI0ZjI3ZjdhZWNmZjFjNDk1
11
- NDQzNDdkYTUwZGIwNzExYzMzNTZkZjA2NWI3NzUwZDdjMTQ5NDA=
12
- data.tar.gz: !binary |-
13
- N2NjODQ0MzdmNzMxZTFiNjI2MzQyZjIyODJkZjQwZTg2ZGQ1ZDM0YzFkODYy
14
- Mjc1Nzg3MDdmNDA0OTk2NGM3ZjFmMDk0MDU0NzVkNDI3ODZmZDMwNjc4NmRh
15
- ZGMzMDYzZmEyZWMyMmQ4OTY3OWUzMDQxNGVhNjM4ZTJhOWJhYWU=
6
+ metadata.gz: 06b18625ae1df44c45478df0c967a51a7c1a96fe6f5c2239bf2624afd4e16dd7260e6ed9e16a907b9f9531055bd92c73d5205bf153ebb910bd728bc4ec232259
7
+ data.tar.gz: ec16cf079c71679f5b0b785991d59425f117aaea939928c4d299843c2a9ba2e1268bf40fe1e83bbe4b9baf9c8a2dc2cdc08814f3ad24b6968bd6e254526b77f1
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Quaderno-ruby is a ruby wrapper for [quaderno api] (https://github.com/recrea/quaderno-api).
4
4
  As the API, it's mostly CRUD.
5
5
 
6
- Current version is 1.3.1. See the changelog [here](https://github.com/recrea/quaderno-ruby/blob/master/changelog.md)
6
+ Current version is 1.3.2. See the changelog [here](https://github.com/recrea/quaderno-ruby/blob/master/changelog.md)
7
7
 
8
8
  ## Installation & Configuration
9
9
 
@@ -321,6 +321,50 @@ will update the specified expense with the data of the hash passed as second par
321
321
  will delete the expense with the id passed as parameter.
322
322
 
323
323
 
324
+ ## Managing webhooks
325
+
326
+ ### Getting webhooks
327
+ ```ruby
328
+ Quaderno::Webhook.all() #=> Array
329
+ ```
330
+
331
+ will return an array with all the webhooks you have subscribed.
332
+
333
+ ### Finding an webhook
334
+ ```ruby
335
+ Quaderno::Webhook.find(id) #=> Quaderno::Webhook
336
+ ```
337
+
338
+ will return the webhook with the id passed as parameter.
339
+
340
+ ### Creating a new webhook
341
+ ```ruby
342
+ Quaderno::Webhook.create(params) #=> Quaderno::Webhook
343
+ ```
344
+
345
+ will create a webhook using the information of the hash passed as parameter and return an instance of Quaderno::Webhook with the created webhook.
346
+
347
+ ### Updating an existing webhook
348
+ ```ruby
349
+ Quaderno::Webhook.update(id, params) #=> Quaderno::Webhook
350
+ ```
351
+
352
+ will update the specified webhook with the data of the hash passed as second parameter.
353
+
354
+ ### Deleting a webhook
355
+ ```ruby
356
+ Quaderno::Webhook.delete(id) #=> Boolean
357
+ ```
358
+
359
+ ## Taxes
360
+
361
+ ### Calculating taxes
362
+ ```ruby
363
+ Quaderno::Tax.calculate(params) #=> Quaderno::Tax
364
+ ```
365
+
366
+ will calculate the taxes applied for a customer based on the data pased as parameters.
367
+
324
368
  ## Quaderno-api
325
369
 
326
370
  For further information, please visit [quaderno api] (https://github.com/recrea/quaderno-api) wiki
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.2
1
+ 1.4.0
data/changelog.md CHANGED
@@ -1,4 +1,8 @@
1
1
  #Changelog
2
+ ##1.4.0
3
+ * Added taxes calculations support
4
+ * Added webhooks documentation
5
+
2
6
  ##1.3.2
3
7
 
4
8
  * Use new urls format
@@ -30,7 +30,7 @@ module Quaderno
30
30
  def all(filter = nil)
31
31
  party_response = get("#{api_model.base_url}/api/v1/#{ api_model.api_path }.json", body: filter, basic_auth: { username: api_model.auth_token })
32
32
  check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true })
33
- array = JSON::parse party_response.body
33
+ array = party_response.parsed_response
34
34
  collection = []
35
35
  array.each do |element|
36
36
  if (api_model == Quaderno::Invoice) || (api_model == Quaderno::Estimate) || (api_model == Quaderno::Expense)
@@ -44,7 +44,7 @@ module Quaderno
44
44
  def find(id)
45
45
  party_response = get "#{api_model.base_url}/api/v1/#{ api_model.api_path }/#{ id }.json", basic_auth: { username: api_model.auth_token }
46
46
  check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
47
- hash = JSON::parse party_response.body
47
+ hash = parse party_response.parsed_response
48
48
  if (api_model == Quaderno::Invoice) || (api_model == Quaderno::Estimate) || (api_model == Quaderno::Expense)
49
49
  api_model.parse(hash)
50
50
  end
@@ -54,7 +54,7 @@ module Quaderno
54
54
  def create(params)
55
55
  party_response = post "#{api_model.base_url}/api/v1/#{ api_model.api_path }.json", body: params, basic_auth: { username: api_model.auth_token }
56
56
  check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, required_fields: true })
57
- hash = JSON::parse party_response.body
57
+ hash = party_response..parsed_response
58
58
  if (api_model == Quaderno::Invoice) || (api_model == Quaderno::Estimate) || (api_model == Quaderno::Expense)
59
59
  api_model.parse(hash)
60
60
  end
@@ -64,7 +64,7 @@ module Quaderno
64
64
  def update(id, params)
65
65
  party_response = put "#{api_model.base_url}/api/v1/#{ api_model.api_path }/#{ id }.json", body: params, basic_auth: { username: api_model.auth_token }
66
66
  check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
67
- hash = JSON::parse party_response.body
67
+ hash = party_response..parsed_response
68
68
  if (api_model == Quaderno::Invoice) || (api_model == Quaderno::Estimate) || (api_model == Quaderno::Expense)
69
69
  api_model.parse(hash)
70
70
  end
@@ -0,0 +1,16 @@
1
+ module Quaderno
2
+ class Tax < Base
3
+ api_model Quaderno::Tax
4
+ api_path 'taxes'
5
+
6
+ class << self
7
+ undef :all, :find, :create, :update, :delete, :parse
8
+ end
9
+
10
+ def self.calculate(params)
11
+ party_response = get("#{self.base_url}/api/v1/taxes/calculate.json", query: params, basic_auth: { username: api_model.auth_token } )
12
+ check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
13
+ new party_response.parsed_response
14
+ end
15
+ end
16
+ end
data/lib/quaderno-ruby.rb CHANGED
@@ -2,7 +2,7 @@ require 'ostruct'
2
2
 
3
3
  require 'quaderno-ruby/exceptions/exceptions'
4
4
  %w(crud deliver payment).each { |filename| require "quaderno-ruby/behavior/#{ filename }" }
5
- %w(base contact item invoice estimate expense document_item payment webhook).each { |filename| require "quaderno-ruby/#{ filename }" }
5
+ %w(base contact item invoice estimate expense document_item payment webhook tax).each { |filename| require "quaderno-ruby/#{ filename }" }
6
6
 
7
7
  module Quaderno
8
8
 
data/quaderno.gemspec CHANGED
@@ -2,15 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: quaderno 1.3.2 ruby lib
5
+ # stub: quaderno 1.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "quaderno"
9
- s.version = "1.3.2"
9
+ s.version = "1.4.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
12
13
  s.authors = ["Recrea"]
13
- s.date = "2014-07-01"
14
+ s.date = "2014-11-27"
14
15
  s.description = "longer description of your gem"
15
16
  s.email = "carlos@recrea.es"
16
17
  s.extra_rdoc_files = [
@@ -40,9 +41,9 @@ Gem::Specification.new do |s|
40
41
  "lib/quaderno-ruby/invoice.rb",
41
42
  "lib/quaderno-ruby/item.rb",
42
43
  "lib/quaderno-ruby/payment.rb",
44
+ "lib/quaderno-ruby/tax.rb",
43
45
  "lib/quaderno-ruby/webhook.rb",
44
46
  "quaderno.gemspec",
45
- "test/fixtures/.DS_Store",
46
47
  "test/fixtures/quaderno_cassettes/.DS_Store",
47
48
  "test/fixtures/quaderno_cassettes/all_contacts.yml",
48
49
  "test/fixtures/quaderno_cassettes/all_estimates.yml",
@@ -50,6 +51,7 @@ Gem::Specification.new do |s|
50
51
  "test/fixtures/quaderno_cassettes/all_invoices.yml",
51
52
  "test/fixtures/quaderno_cassettes/all_items.yml",
52
53
  "test/fixtures/quaderno_cassettes/all_webhooks.yml",
54
+ "test/fixtures/quaderno_cassettes/calculate_tax.yml",
53
55
  "test/fixtures/quaderno_cassettes/deleted_contact.yml",
54
56
  "test/fixtures/quaderno_cassettes/deleted_estimate.yml",
55
57
  "test/fixtures/quaderno_cassettes/deleted_expense.yml",
@@ -81,18 +83,19 @@ Gem::Specification.new do |s|
81
83
  "test/fixtures/quaderno_cassettes/updated_invoice.yml",
82
84
  "test/fixtures/quaderno_cassettes/updated_item.yml",
83
85
  "test/fixtures/quaderno_cassettes/updated_webhook.yml",
86
+ "test/fixtures/quaderno_cassettes/wrong_token.yml",
84
87
  "test/helper.rb",
85
88
  "test/unit/test_quaderno_contacts.rb",
86
89
  "test/unit/test_quaderno_estimates.rb",
87
90
  "test/unit/test_quaderno_expenses.rb",
88
91
  "test/unit/test_quaderno_invoices.rb",
89
92
  "test/unit/test_quaderno_items.rb",
93
+ "test/unit/test_quaderno_tax.rb",
90
94
  "test/unit/test_quaderno_webhooks.rb"
91
95
  ]
92
96
  s.homepage = "http://github.com/recrea/quaderno-ruby"
93
97
  s.licenses = ["MIT"]
94
- s.require_paths = ["lib"]
95
- s.rubygems_version = "2.1.11"
98
+ s.rubygems_version = "2.2.2"
96
99
  s.summary = "one-line summary of your gem"
97
100
 
98
101
  if s.respond_to? :specification_version then
@@ -0,0 +1,109 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://fMLf9TGWrRqNxJ4chcVi@assur-744.quadernoapp.com/api/v1/taxes/calculate.json?country=ES&postal_code=08080
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic Zk1MZjlUR1dyUnFOeEo0Y2hjVmk6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ server:
18
+ - nginx/1.6.0
19
+ date:
20
+ - Thu, 27 Nov 2014 12:26:48 GMT
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - close
27
+ status:
28
+ - 200 OK
29
+ x-ratelimit-limit:
30
+ - '2000'
31
+ x-ratelimit-remaining:
32
+ - '1972'
33
+ x-ua-compatible:
34
+ - IE=Edge,chrome=1
35
+ etag:
36
+ - '"f878d3db85579985c01bbf45f95467be"'
37
+ cache-control:
38
+ - must-revalidate, private, max-age=0
39
+ set-cookie:
40
+ - ahoy_visitor=79b5dcb1-53a0-4442-a610-9ce1b6eedc78; domain=.quadernoapp.com;
41
+ path=/; expires=Sun, 27-Nov-2016 12:26:48 GMT
42
+ - ahoy_visit=e7d4c176-89dc-45eb-a6ee-ec4192de018b; domain=.quadernoapp.com;
43
+ path=/; expires=Thu, 27-Nov-2014 16:26:48 GMT
44
+ - ahoy_track=true; domain=.quadernoapp.com; path=/
45
+ x-request-id:
46
+ - f54a921a8b1a89be6571392105406e1c
47
+ x-runtime:
48
+ - '0.121124'
49
+ x-rack-cache:
50
+ - miss
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"name":"VAT","rate":21.0,"notes":null}'
54
+ http_version: '1.1'
55
+ recorded_at: Thu, 27 Nov 2014 12:17:23 GMT
56
+ - request:
57
+ method: get
58
+ uri: https://fMLf9TGWrRqNxJ4chcVi@assur-744.quadernoapp.com/api/v1/taxes/calculate.json?country=ES&postal_code=35007
59
+ body:
60
+ encoding: US-ASCII
61
+ string: ''
62
+ headers:
63
+ authorization:
64
+ - Basic Zk1MZjlUR1dyUnFOeEo0Y2hjVmk6
65
+ response:
66
+ status:
67
+ code: 200
68
+ message: OK
69
+ headers:
70
+ server:
71
+ - nginx/1.6.0
72
+ date:
73
+ - Thu, 27 Nov 2014 12:26:49 GMT
74
+ content-type:
75
+ - application/json; charset=utf-8
76
+ transfer-encoding:
77
+ - chunked
78
+ connection:
79
+ - close
80
+ status:
81
+ - 200 OK
82
+ x-ratelimit-limit:
83
+ - '2000'
84
+ x-ratelimit-remaining:
85
+ - '1971'
86
+ x-ua-compatible:
87
+ - IE=Edge,chrome=1
88
+ etag:
89
+ - '"f6483dc8ea6256ea8793f35f31b443ab"'
90
+ cache-control:
91
+ - must-revalidate, private, max-age=0
92
+ set-cookie:
93
+ - ahoy_visitor=70bfb475-e0d9-4e88-af9d-fb8379142175; domain=.quadernoapp.com;
94
+ path=/; expires=Sun, 27-Nov-2016 12:26:49 GMT
95
+ - ahoy_visit=b8e08a6f-e4b1-4063-a6ab-c55e11f30ff4; domain=.quadernoapp.com;
96
+ path=/; expires=Thu, 27-Nov-2014 16:26:49 GMT
97
+ - ahoy_track=true; domain=.quadernoapp.com; path=/
98
+ x-request-id:
99
+ - 76c7b54377e3eaa47c9f1f3378d46cf1
100
+ x-runtime:
101
+ - '0.087348'
102
+ x-rack-cache:
103
+ - miss
104
+ body:
105
+ encoding: UTF-8
106
+ string: '{"name":null,"rate":0.0,"notes":"VAT reverse charged"}'
107
+ http_version: '1.1'
108
+ recorded_at: Thu, 27 Nov 2014 12:17:24 GMT
109
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://7h15154f4k370k3n@assur-744.quadernoapp.com/api/v1/taxes/calculate.json?country=ES&postal_code=08080
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic N2gxNTE1NGY0azM3MGszbjo=
12
+ response:
13
+ status:
14
+ code: 401
15
+ message: Unauthorized
16
+ headers:
17
+ server:
18
+ - nginx/1.6.0
19
+ date:
20
+ - Thu, 27 Nov 2014 12:26:50 GMT
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - close
27
+ status:
28
+ - 401 Unauthorized
29
+ x-ua-compatible:
30
+ - IE=Edge,chrome=1
31
+ cache-control:
32
+ - no-cache, private
33
+ set-cookie:
34
+ - ahoy_visitor=8e8063c8-23dd-4de2-bddc-6fe1f6f70c09; domain=.quadernoapp.com;
35
+ path=/; expires=Sun, 27-Nov-2016 12:26:50 GMT
36
+ - ahoy_visit=3be8bbfd-9aca-4073-99f0-061791482dc9; domain=.quadernoapp.com;
37
+ path=/; expires=Thu, 27-Nov-2014 16:26:50 GMT
38
+ - ahoy_track=true; domain=.quadernoapp.com; path=/
39
+ x-request-id:
40
+ - 3461fad34aa3517acf73bd10a9aa9cfa
41
+ x-runtime:
42
+ - '0.036473'
43
+ x-rack-cache:
44
+ - miss
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"error":"Wrong API key or the user does not exist."}'
48
+ http_version: '1.1'
49
+ recorded_at: Thu, 27 Nov 2014 12:17:25 GMT
50
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,41 @@
1
+ require 'helper'
2
+
3
+ class TestQuadernoTax < Test::Unit::TestCase
4
+ context "A user with an authenticate token with webhooks" do
5
+
6
+ setup do
7
+ Quaderno::Base.configure do |config|
8
+ config.auth_token = 'fMLf9TGWrRqNxJ4chcVi'
9
+ config.subdomain = 'assur-744'
10
+ end
11
+ end
12
+
13
+ should "raise exception if pass wrong arguments" do
14
+ assert_raise ArgumentError do
15
+ Quaderno::Tax.calculate 1, 2, 3
16
+ end
17
+ end
18
+
19
+ should "raise exception if token is wrong" do
20
+ VCR.use_cassette('wrong token') do
21
+ assert_raise Quaderno::Exceptions::InvalidSubdomainOrToken do
22
+ Quaderno::Base.auth_token = '7h15154f4k370k3n'
23
+ Quaderno::Tax.calculate(country: 'ES', postal_code: '08080')
24
+ end
25
+ end
26
+ end
27
+
28
+ should "calculate tax" do
29
+ VCR.use_cassette('calculate tax') do
30
+ tax = Quaderno::Tax.calculate(country: 'ES', postal_code: '08080')
31
+ assert_equal 'VAT', tax.name
32
+ assert_equal 21.0, tax.rate
33
+
34
+ tax = Quaderno::Tax.calculate(country: 'ES', postal_code: '35007')
35
+ assert tax.name.nil?
36
+ assert tax.rate.zero?
37
+ assert_equal 'VAT reverse charged', tax.notes
38
+ end
39
+ end
40
+ end
41
+ end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quaderno
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recrea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-01 00:00:00.000000000 Z
11
+ date: 2014-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.13.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.13.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.12'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.12'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: jeweler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.0.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.0.1
55
55
  description: longer description of your gem
@@ -60,7 +60,7 @@ extra_rdoc_files:
60
60
  - LICENSE.txt
61
61
  - README.md
62
62
  files:
63
- - .document
63
+ - ".document"
64
64
  - Gemfile
65
65
  - Gemfile.lock
66
66
  - LICENSE.txt
@@ -82,9 +82,9 @@ files:
82
82
  - lib/quaderno-ruby/invoice.rb
83
83
  - lib/quaderno-ruby/item.rb
84
84
  - lib/quaderno-ruby/payment.rb
85
+ - lib/quaderno-ruby/tax.rb
85
86
  - lib/quaderno-ruby/webhook.rb
86
87
  - quaderno.gemspec
87
- - test/fixtures/.DS_Store
88
88
  - test/fixtures/quaderno_cassettes/.DS_Store
89
89
  - test/fixtures/quaderno_cassettes/all_contacts.yml
90
90
  - test/fixtures/quaderno_cassettes/all_estimates.yml
@@ -92,6 +92,7 @@ files:
92
92
  - test/fixtures/quaderno_cassettes/all_invoices.yml
93
93
  - test/fixtures/quaderno_cassettes/all_items.yml
94
94
  - test/fixtures/quaderno_cassettes/all_webhooks.yml
95
+ - test/fixtures/quaderno_cassettes/calculate_tax.yml
95
96
  - test/fixtures/quaderno_cassettes/deleted_contact.yml
96
97
  - test/fixtures/quaderno_cassettes/deleted_estimate.yml
97
98
  - test/fixtures/quaderno_cassettes/deleted_expense.yml
@@ -123,12 +124,14 @@ files:
123
124
  - test/fixtures/quaderno_cassettes/updated_invoice.yml
124
125
  - test/fixtures/quaderno_cassettes/updated_item.yml
125
126
  - test/fixtures/quaderno_cassettes/updated_webhook.yml
127
+ - test/fixtures/quaderno_cassettes/wrong_token.yml
126
128
  - test/helper.rb
127
129
  - test/unit/test_quaderno_contacts.rb
128
130
  - test/unit/test_quaderno_estimates.rb
129
131
  - test/unit/test_quaderno_expenses.rb
130
132
  - test/unit/test_quaderno_invoices.rb
131
133
  - test/unit/test_quaderno_items.rb
134
+ - test/unit/test_quaderno_tax.rb
132
135
  - test/unit/test_quaderno_webhooks.rb
133
136
  homepage: http://github.com/recrea/quaderno-ruby
134
137
  licenses:
@@ -140,17 +143,17 @@ require_paths:
140
143
  - lib
141
144
  required_ruby_version: !ruby/object:Gem::Requirement
142
145
  requirements:
143
- - - ! '>='
146
+ - - ">="
144
147
  - !ruby/object:Gem::Version
145
148
  version: '0'
146
149
  required_rubygems_version: !ruby/object:Gem::Requirement
147
150
  requirements:
148
- - - ! '>='
151
+ - - ">="
149
152
  - !ruby/object:Gem::Version
150
153
  version: '0'
151
154
  requirements: []
152
155
  rubyforge_project:
153
- rubygems_version: 2.1.11
156
+ rubygems_version: 2.2.2
154
157
  signing_key:
155
158
  specification_version: 4
156
159
  summary: one-line summary of your gem
Binary file