quaderno 1.9.1 → 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -6
- data/Gemfile.lock +8 -5
- data/README.md +7 -1
- data/VERSION +1 -1
- data/changelog.md +5 -0
- data/lib/quaderno-ruby/behavior/crud.rb +30 -36
- data/lib/quaderno-ruby/behavior/payment.rb +12 -19
- data/lib/quaderno-ruby/behavior/retrieve.rb +20 -0
- data/lib/quaderno-ruby/contact.rb +1 -0
- data/lib/quaderno-ruby/payment.rb +0 -2
- data/lib/quaderno-ruby/tax.rb +3 -3
- data/lib/quaderno-ruby/webhook.rb +0 -2
- data/lib/quaderno-ruby.rb +1 -1
- data/quaderno.gemspec +15 -3
- data/test/fixtures/quaderno_cassettes/all_contacts.yml +295 -31
- data/test/fixtures/quaderno_cassettes/all_estimates.yml +28 -36
- data/test/fixtures/quaderno_cassettes/all_expenses.yml +60 -34
- data/test/fixtures/quaderno_cassettes/all_invoices.yml +2888 -36
- data/test/fixtures/quaderno_cassettes/all_items.yml +22 -27
- data/test/fixtures/quaderno_cassettes/all_receipts.yml +56 -0
- data/test/fixtures/quaderno_cassettes/all_webhooks.yml +98 -126
- data/test/fixtures/quaderno_cassettes/calculate_tax.yml +38 -62
- data/test/fixtures/quaderno_cassettes/create_estimate_on_downgraded_API.yml +428 -0
- data/test/fixtures/quaderno_cassettes/create_expense_on_downgraded_API.yml +510 -0
- data/test/fixtures/quaderno_cassettes/create_invoice_on_downgraded_API.yml +432 -0
- data/test/fixtures/quaderno_cassettes/create_receipt_on_downgraded_API.yml +193 -0
- data/test/fixtures/quaderno_cassettes/deleted_contact.yml +642 -113
- data/test/fixtures/quaderno_cassettes/deleted_estimate.yml +385 -120
- data/test/fixtures/quaderno_cassettes/deleted_expense.yml +414 -118
- data/test/fixtures/quaderno_cassettes/deleted_invoice.yml +3249 -120
- data/test/fixtures/quaderno_cassettes/deleted_item.yml +60 -75
- data/test/fixtures/quaderno_cassettes/deleted_receipt.yml +222 -0
- data/test/fixtures/quaderno_cassettes/deleted_webhook.yml +120 -152
- data/test/fixtures/quaderno_cassettes/delivered_estimate.yml +76 -89
- data/test/fixtures/quaderno_cassettes/delivered_invoice.yml +2935 -89
- data/test/fixtures/quaderno_cassettes/delivered_receipt.yml +140 -0
- data/test/fixtures/quaderno_cassettes/found_contact.yml +319 -60
- data/test/fixtures/quaderno_cassettes/found_estimate.yml +53 -69
- data/test/fixtures/quaderno_cassettes/found_expense.yml +121 -65
- data/test/fixtures/quaderno_cassettes/found_invoice.yml +2916 -67
- data/test/fixtures/quaderno_cassettes/found_item.yml +50 -60
- data/test/fixtures/quaderno_cassettes/found_receipt.yml +101 -0
- data/test/fixtures/quaderno_cassettes/found_webhook.yml +60 -76
- data/test/fixtures/quaderno_cassettes/new_contact.yml +22 -29
- data/test/fixtures/quaderno_cassettes/new_estimate.yml +357 -84
- data/test/fixtures/quaderno_cassettes/new_expense.yml +414 -118
- data/test/fixtures/quaderno_cassettes/new_invoice.yml +361 -84
- data/test/fixtures/quaderno_cassettes/new_item.yml +22 -29
- data/test/fixtures/quaderno_cassettes/new_receipt.yml +169 -0
- data/test/fixtures/quaderno_cassettes/new_webhook.yml +38 -50
- data/test/fixtures/quaderno_cassettes/paid_expense.yml +79 -63
- data/test/fixtures/quaderno_cassettes/paid_invoice.yml +2907 -65
- data/test/fixtures/quaderno_cassettes/rate_limit.yml +22 -26
- data/test/fixtures/quaderno_cassettes/unpay_an_expense.yml +98 -85
- data/test/fixtures/quaderno_cassettes/unpay_an_invoice.yml +2926 -87
- data/test/fixtures/quaderno_cassettes/updated_contact.yml +318 -62
- data/test/fixtures/quaderno_cassettes/updated_estimate.yml +402 -116
- data/test/fixtures/quaderno_cassettes/updated_expense.yml +395 -113
- data/test/fixtures/quaderno_cassettes/updated_invoice.yml +410 -116
- data/test/fixtures/quaderno_cassettes/updated_item.yml +49 -61
- data/test/fixtures/quaderno_cassettes/updated_receipt.yml +214 -0
- data/test/fixtures/quaderno_cassettes/updated_webhook.yml +82 -105
- data/test/fixtures/quaderno_cassettes/wrong_token.yml +11 -25
- data/test/helper.rb +4 -0
- data/test/unit/test_quaderno_contacts.rb +18 -19
- data/test/unit/test_quaderno_estimates.rb +58 -31
- data/test/unit/test_quaderno_expenses.rb +68 -41
- data/test/unit/test_quaderno_invoices.rb +74 -47
- data/test/unit/test_quaderno_items.rb +27 -26
- data/test/unit/test_quaderno_receipts.rb +156 -0
- data/test/unit/test_quaderno_tax.rb +10 -10
- data/test/unit/test_quaderno_webhooks.rb +19 -20
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba3feaca76f5023f241d8fd0b6014bfa44c1f428
|
4
|
+
data.tar.gz: 16c5c2dae1a59d643531a94fae1ebae837d25b5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6cfe30aed9a4441fa0c1ce7ad42f8bbed1059f5001ce018b4339a5fdbd338648542bb799729653c8968a0d7ebd13b0a723c576f785d54d4066fbe451913f1e1
|
7
|
+
data.tar.gz: 64d9a7b1c72c1b2c75865032208033715644e8c18dbe506fbc73acf4749b5ee939997e45bf03d49e37f373579a1663fe5c836d89b51289ab51b99cb70c1b5175
|
data/Gemfile
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source 'http://rubygems.org'
|
2
2
|
|
3
3
|
gem 'httparty', '~> 0.13.1'
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem
|
7
|
-
gem
|
6
|
+
gem 'jeweler', '~> 2.0.1'
|
7
|
+
gem 'rdoc', '~> 3.12'
|
8
8
|
end
|
9
9
|
|
10
10
|
group :test do
|
11
|
-
gem
|
11
|
+
gem 'bundler', '>= 1.0.0'
|
12
12
|
gem 'fakeweb'
|
13
13
|
gem 'minitest', '~> 4.7.5 '
|
14
|
-
gem
|
15
|
-
gem
|
14
|
+
gem 'simplecov', '>= 0'
|
15
|
+
gem 'shoulda', '>= 0'
|
16
16
|
gem 'vcr', :require => 'vcr'
|
17
17
|
end
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@ GEM
|
|
11
11
|
builder (3.2.2)
|
12
12
|
descendants_tracker (0.0.4)
|
13
13
|
thread_safe (~> 0.3, >= 0.3.1)
|
14
|
-
docile (1.1.
|
14
|
+
docile (1.1.5)
|
15
15
|
fakeweb (1.3.0)
|
16
16
|
faraday (0.9.0)
|
17
17
|
multipart-post (>= 1.2, < 3)
|
@@ -64,11 +64,11 @@ GEM
|
|
64
64
|
shoulda-context (1.2.1)
|
65
65
|
shoulda-matchers (2.6.1)
|
66
66
|
activesupport (>= 3.0.0)
|
67
|
-
simplecov (0.
|
67
|
+
simplecov (0.11.2)
|
68
68
|
docile (~> 1.1.0)
|
69
|
-
|
70
|
-
simplecov-html (~> 0.
|
71
|
-
simplecov-html (0.
|
69
|
+
json (~> 1.8)
|
70
|
+
simplecov-html (~> 0.10.0)
|
71
|
+
simplecov-html (0.10.0)
|
72
72
|
thread_safe (0.3.4)
|
73
73
|
tzinfo (0.3.39)
|
74
74
|
vcr (2.9.2)
|
@@ -86,3 +86,6 @@ DEPENDENCIES
|
|
86
86
|
shoulda
|
87
87
|
simplecov
|
88
88
|
vcr
|
89
|
+
|
90
|
+
BUNDLED WITH
|
91
|
+
1.11.2
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Quaderno-ruby is a ruby wrapper for [Quaderno API] (https://github.com/quaderno/quaderno-api).
|
4
4
|
As the API, it's mostly CRUD.
|
5
5
|
|
6
|
-
Current version is 1.9.
|
6
|
+
Current version is 1.9.2 See the changelog [here](https://github.com/quaderno/quaderno-ruby/blob/master/changelog.md)
|
7
7
|
|
8
8
|
## Installation & Configuration
|
9
9
|
|
@@ -87,6 +87,12 @@ Quaderno-ruby parses all the json responses in human readable data, so you can a
|
|
87
87
|
|
88
88
|
will return the contact with the id passed as parameter.
|
89
89
|
|
90
|
+
## Retrieving a customer contact by its payment gatewaycustomer ID
|
91
|
+
```ruby
|
92
|
+
Quaderno::Contact.retrieve_customer(PAYMENT_GATEWAY_CUSTOMER_ID, PAYMENT_GATEWAY) #=> Quaderno::Contact
|
93
|
+
```
|
94
|
+
will return the contact with the customer id passed as parameter.
|
95
|
+
|
90
96
|
### Creating a new contact
|
91
97
|
```ruby
|
92
98
|
Quaderno::Contact.create(params) #=> Quaderno::Contact
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.9.
|
1
|
+
1.9.2
|
data/changelog.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
#Changelog
|
2
2
|
|
3
|
+
##1.9.2
|
4
|
+
* Added `Quaderno::Contact.retrieve` method
|
5
|
+
* Code cleanup
|
6
|
+
* Update tests
|
7
|
+
|
3
8
|
##1.9.1
|
4
9
|
* `Quaderno::Base.authorization` raises `Quaderno::Exceptions::InvalidSubdomainOrToken` instead returning false on wrong credentials
|
5
10
|
* Inherit from `StandardError` instead of `Exception` for `Quaderno::Exceptions` by **@mvelikov**
|
@@ -6,37 +6,30 @@ module Quaderno
|
|
6
6
|
end
|
7
7
|
|
8
8
|
module ClassMethods
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
def parse(element)
|
15
|
-
payments_collection = []
|
16
|
-
(element['payments'] || []).each do |payment|
|
17
|
-
payments_collection << api_model.to_instance(Quaderno::Payment, payment)
|
18
|
-
end unless api_model == Quaderno::Estimate
|
19
|
-
element['payments'] = payments_collection
|
20
|
-
|
21
|
-
items_collection = []
|
22
|
-
element['items'].each do |item|
|
23
|
-
items_collection << api_model.to_instance(Quaderno::DocumentItem, item)
|
9
|
+
def parse_nested(element)
|
10
|
+
if element.has_key?('payments')
|
11
|
+
payments_collection = Array.new
|
12
|
+
(element['payments'] || Array.new).each { |payment| payments_collection << Quaderno::Payment.new(payment) }
|
13
|
+
element['payments'] = payments_collection
|
24
14
|
end
|
15
|
+
|
16
|
+
items_collection = Array.new
|
17
|
+
element['items'].each { |item| items_collection << Quaderno::DocumentItem.new(item) }
|
25
18
|
element['items'] = items_collection
|
19
|
+
element['contact'] = Quaderno::Contact.new(element['contact'])
|
26
20
|
|
27
|
-
|
28
|
-
element['contact'] = contact
|
21
|
+
element
|
29
22
|
end
|
30
23
|
|
31
24
|
def all(filter = nil)
|
32
|
-
|
33
|
-
check_exception_for(
|
34
|
-
array =
|
35
|
-
collection =
|
25
|
+
response = get("#{api_model.url}#{ api_model.api_path }.json", body: filter, basic_auth: { username: api_model.auth_token }, headers: version_header)
|
26
|
+
check_exception_for(response, { rate_limit: true, subdomain_or_token: true })
|
27
|
+
array = response.parsed_response
|
28
|
+
collection = Array.new
|
36
29
|
|
37
30
|
if is_a_document?
|
38
31
|
array.each do |element|
|
39
|
-
api_model.
|
32
|
+
api_model.parse_nested(element)
|
40
33
|
collection << (new element)
|
41
34
|
end
|
42
35
|
else
|
@@ -47,38 +40,39 @@ module Quaderno
|
|
47
40
|
end
|
48
41
|
|
49
42
|
def find(id)
|
50
|
-
|
51
|
-
check_exception_for(
|
52
|
-
hash =
|
43
|
+
response = get "#{api_model.url}#{ api_model.api_path }/#{ id }.json", basic_auth: { username: api_model.auth_token }, headers: version_header
|
44
|
+
check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
|
45
|
+
hash = response.parsed_response
|
53
46
|
|
54
|
-
api_model.
|
47
|
+
api_model.parse_nested(hash) if is_a_document?
|
55
48
|
|
56
49
|
new hash
|
57
50
|
end
|
58
51
|
|
59
52
|
def create(params)
|
60
|
-
|
61
|
-
check_exception_for(
|
62
|
-
hash =
|
53
|
+
response = post "#{api_model.url}#{ api_model.api_path }.json", body: params, basic_auth: { username: api_model.auth_token }, headers: version_header
|
54
|
+
check_exception_for(response, { rate_limit: true, subdomain_or_token: true, required_fields: true })
|
55
|
+
hash = response.parsed_response
|
63
56
|
|
64
|
-
api_model.
|
57
|
+
api_model.parse_nested(hash) if is_a_document?
|
65
58
|
|
66
59
|
new hash
|
67
60
|
end
|
68
61
|
|
69
62
|
def update(id, params)
|
70
|
-
|
71
|
-
check_exception_for(
|
72
|
-
hash =
|
63
|
+
response = put "#{api_model.url}#{ api_model.api_path }/#{ id }.json", body: params, basic_auth: { username: api_model.auth_token }, headers: version_header
|
64
|
+
check_exception_for(response, { rate_limit: true, required_fields: true, subdomain_or_token: true, id: true })
|
65
|
+
hash = response.parsed_response
|
73
66
|
|
74
|
-
api_model.
|
67
|
+
api_model.parse_nested(hash) if is_a_document?
|
75
68
|
|
76
69
|
new hash
|
77
70
|
end
|
78
71
|
|
79
72
|
def delete(id)
|
80
|
-
|
81
|
-
check_exception_for(
|
73
|
+
response = HTTParty.delete "#{api_model.url}#{ api_model.api_path }/#{ id }.json", basic_auth: { username: api_model.auth_token }, headers: version_header
|
74
|
+
check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true, has_documents: true })
|
75
|
+
|
82
76
|
true
|
83
77
|
end
|
84
78
|
end
|
@@ -6,30 +6,23 @@ module Quaderno
|
|
6
6
|
end
|
7
7
|
|
8
8
|
module InstanceMethods
|
9
|
-
def to_instance(klass, parsed)
|
10
|
-
klass.new(parsed)
|
11
|
-
end
|
12
9
|
|
13
10
|
def add_payment(params)
|
14
|
-
|
15
|
-
api_model.check_exception_for(
|
16
|
-
|
17
|
-
instance =
|
18
|
-
payments << instance
|
19
|
-
|
11
|
+
response = api_model.post "#{api_model.url}#{ api_model.api_path }/#{ id }/payments.json", body: params, basic_auth: { username: api_model.auth_token }, headers: self.class.version_header
|
12
|
+
api_model.check_exception_for(response, { rate_limit: true, subdomain_or_token: true, required_fields: true })
|
13
|
+
|
14
|
+
instance = Quaderno::Payment.new(response.parsed_response)
|
15
|
+
self.payments << instance
|
16
|
+
|
17
|
+
Quaderno::Payment.new instance
|
20
18
|
end
|
21
19
|
|
22
20
|
def remove_payment(payment_id)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
break
|
29
|
-
end
|
30
|
-
end
|
31
|
-
payments.delete(to_delete)
|
32
|
-
api_model.check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
|
21
|
+
response = HTTParty.delete "#{api_model.url}#{ api_model.api_path }/#{ id }/payments/#{ payment_id }.json", basic_auth: { username: api_model.auth_token }, headers: self.class.version_header
|
22
|
+
api_model.check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
|
23
|
+
|
24
|
+
self.payments.delete_if { |payment| payment.id == payment_id }
|
25
|
+
|
33
26
|
true
|
34
27
|
end
|
35
28
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Quaderno
|
2
|
+
module Behavior
|
3
|
+
module Retrieve
|
4
|
+
def self.included(receiver)
|
5
|
+
receiver.send :extend, ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
|
10
|
+
def retrieve_customer(customer_id, gateway = nil)
|
11
|
+
response = get "#{api_model.url}#{gateway || 'stripe'}/customers/#{customer_id}.json", basic_auth: { username: api_model.auth_token }, headers: version_header
|
12
|
+
check_exception_for(response, { rate_limit: true, subdomain_or_token: true, id: true })
|
13
|
+
hash = response.parsed_response
|
14
|
+
|
15
|
+
new hash
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/quaderno-ruby/tax.rb
CHANGED
@@ -2,11 +2,11 @@ module Quaderno
|
|
2
2
|
class Tax < Base
|
3
3
|
api_model Quaderno::Tax
|
4
4
|
api_path 'taxes'
|
5
|
-
|
5
|
+
|
6
6
|
class << self
|
7
|
-
undef :all, :find, :create, :update, :delete, :
|
7
|
+
undef :all, :find, :create, :update, :delete, :parse_nested
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def self.calculate(params)
|
11
11
|
party_response = get("#{self.url}taxes/calculate.json", query: params, basic_auth: { username: api_model.auth_token } )
|
12
12
|
check_exception_for(party_response, { rate_limit: true, subdomain_or_token: true, id: true })
|
data/lib/quaderno-ruby.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
|
3
3
|
require 'quaderno-ruby/exceptions/exceptions'
|
4
|
-
%w(crud deliver payment).each { |filename| require "quaderno-ruby/behavior/#{ filename }" }
|
4
|
+
%w(crud deliver payment retrieve).each { |filename| require "quaderno-ruby/behavior/#{ filename }" }
|
5
5
|
%w(base contact item invoice receipt credit estimate expense recurring document_item payment webhook tax).each { |filename| require "quaderno-ruby/#{ filename }" }
|
6
6
|
|
7
7
|
module Quaderno
|
data/quaderno.gemspec
CHANGED
@@ -2,16 +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.9.
|
5
|
+
# stub: quaderno 1.9.2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "quaderno"
|
9
|
-
s.version = "1.9.
|
9
|
+
s.version = "1.9.2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Recrea"]
|
14
|
-
s.date = "2016-06-
|
14
|
+
s.date = "2016-06-23"
|
15
15
|
s.description = " A ruby wrapper for Quaderno API "
|
16
16
|
s.email = "carlos@recrea.es"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/quaderno-ruby/behavior/crud.rb",
|
34
34
|
"lib/quaderno-ruby/behavior/deliver.rb",
|
35
35
|
"lib/quaderno-ruby/behavior/payment.rb",
|
36
|
+
"lib/quaderno-ruby/behavior/retrieve.rb",
|
36
37
|
"lib/quaderno-ruby/contact.rb",
|
37
38
|
"lib/quaderno-ruby/credit.rb",
|
38
39
|
"lib/quaderno-ruby/document_item.rb",
|
@@ -53,27 +54,36 @@ Gem::Specification.new do |s|
|
|
53
54
|
"test/fixtures/quaderno_cassettes/all_expenses.yml",
|
54
55
|
"test/fixtures/quaderno_cassettes/all_invoices.yml",
|
55
56
|
"test/fixtures/quaderno_cassettes/all_items.yml",
|
57
|
+
"test/fixtures/quaderno_cassettes/all_receipts.yml",
|
56
58
|
"test/fixtures/quaderno_cassettes/all_webhooks.yml",
|
57
59
|
"test/fixtures/quaderno_cassettes/calculate_tax.yml",
|
60
|
+
"test/fixtures/quaderno_cassettes/create_estimate_on_downgraded_API.yml",
|
61
|
+
"test/fixtures/quaderno_cassettes/create_expense_on_downgraded_API.yml",
|
62
|
+
"test/fixtures/quaderno_cassettes/create_invoice_on_downgraded_API.yml",
|
63
|
+
"test/fixtures/quaderno_cassettes/create_receipt_on_downgraded_API.yml",
|
58
64
|
"test/fixtures/quaderno_cassettes/deleted_contact.yml",
|
59
65
|
"test/fixtures/quaderno_cassettes/deleted_estimate.yml",
|
60
66
|
"test/fixtures/quaderno_cassettes/deleted_expense.yml",
|
61
67
|
"test/fixtures/quaderno_cassettes/deleted_invoice.yml",
|
62
68
|
"test/fixtures/quaderno_cassettes/deleted_item.yml",
|
69
|
+
"test/fixtures/quaderno_cassettes/deleted_receipt.yml",
|
63
70
|
"test/fixtures/quaderno_cassettes/deleted_webhook.yml",
|
64
71
|
"test/fixtures/quaderno_cassettes/delivered_estimate.yml",
|
65
72
|
"test/fixtures/quaderno_cassettes/delivered_invoice.yml",
|
73
|
+
"test/fixtures/quaderno_cassettes/delivered_receipt.yml",
|
66
74
|
"test/fixtures/quaderno_cassettes/found_contact.yml",
|
67
75
|
"test/fixtures/quaderno_cassettes/found_estimate.yml",
|
68
76
|
"test/fixtures/quaderno_cassettes/found_expense.yml",
|
69
77
|
"test/fixtures/quaderno_cassettes/found_invoice.yml",
|
70
78
|
"test/fixtures/quaderno_cassettes/found_item.yml",
|
79
|
+
"test/fixtures/quaderno_cassettes/found_receipt.yml",
|
71
80
|
"test/fixtures/quaderno_cassettes/found_webhook.yml",
|
72
81
|
"test/fixtures/quaderno_cassettes/new_contact.yml",
|
73
82
|
"test/fixtures/quaderno_cassettes/new_estimate.yml",
|
74
83
|
"test/fixtures/quaderno_cassettes/new_expense.yml",
|
75
84
|
"test/fixtures/quaderno_cassettes/new_invoice.yml",
|
76
85
|
"test/fixtures/quaderno_cassettes/new_item.yml",
|
86
|
+
"test/fixtures/quaderno_cassettes/new_receipt.yml",
|
77
87
|
"test/fixtures/quaderno_cassettes/new_webhook.yml",
|
78
88
|
"test/fixtures/quaderno_cassettes/paid_expense.yml",
|
79
89
|
"test/fixtures/quaderno_cassettes/paid_invoice.yml",
|
@@ -85,6 +95,7 @@ Gem::Specification.new do |s|
|
|
85
95
|
"test/fixtures/quaderno_cassettes/updated_expense.yml",
|
86
96
|
"test/fixtures/quaderno_cassettes/updated_invoice.yml",
|
87
97
|
"test/fixtures/quaderno_cassettes/updated_item.yml",
|
98
|
+
"test/fixtures/quaderno_cassettes/updated_receipt.yml",
|
88
99
|
"test/fixtures/quaderno_cassettes/updated_webhook.yml",
|
89
100
|
"test/fixtures/quaderno_cassettes/wrong_token.yml",
|
90
101
|
"test/helper.rb",
|
@@ -93,6 +104,7 @@ Gem::Specification.new do |s|
|
|
93
104
|
"test/unit/test_quaderno_expenses.rb",
|
94
105
|
"test/unit/test_quaderno_invoices.rb",
|
95
106
|
"test/unit/test_quaderno_items.rb",
|
107
|
+
"test/unit/test_quaderno_receipts.rb",
|
96
108
|
"test/unit/test_quaderno_tax.rb",
|
97
109
|
"test/unit/test_quaderno_webhooks.rb"
|
98
110
|
]
|