quaderno 1.3.2 → 1.4.0
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 +5 -13
- data/README.md +45 -1
- data/VERSION +1 -1
- data/changelog.md +4 -0
- data/lib/quaderno-ruby/behavior/crud.rb +4 -4
- data/lib/quaderno-ruby/tax.rb +16 -0
- data/lib/quaderno-ruby.rb +1 -1
- data/quaderno.gemspec +9 -6
- data/test/fixtures/quaderno_cassettes/calculate_tax.yml +109 -0
- data/test/fixtures/quaderno_cassettes/wrong_token.yml +50 -0
- data/test/unit/test_quaderno_tax.rb +41 -0
- metadata +16 -13
- data/test/fixtures/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MWEyNGVhOTAzYjcyMzE1YTYyOTFlM2EwZWY2MzljZmM5NWQyNTRjMw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6a856c49bdf181c9122a299d38bf1c6f4feb9b88
|
4
|
+
data.tar.gz: 707680768d69048f3e519935fa4376e78ca3da59
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
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.
|
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.
|
1
|
+
1.4.0
|
data/changelog.md
CHANGED
@@ -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 =
|
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 =
|
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 =
|
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 =
|
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.
|
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.
|
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-
|
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.
|
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.
|
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-
|
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.
|
156
|
+
rubygems_version: 2.2.2
|
154
157
|
signing_key:
|
155
158
|
specification_version: 4
|
156
159
|
summary: one-line summary of your gem
|
data/test/fixtures/.DS_Store
DELETED
Binary file
|