moneybird-client 0.12.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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +26 -0
  3. data/.forgejo/workflows/release.yml +56 -0
  4. data/.forgejo/workflows/ruby.yml +37 -0
  5. data/.gitignore +10 -0
  6. data/.kick +17 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +1156 -0
  9. data/CODE_OF_CONDUCT.md +49 -0
  10. data/Gemfile +11 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +110 -0
  13. data/Rakefile +11 -0
  14. data/bin/console +13 -0
  15. data/bin/setup +8 -0
  16. data/lib/moneybird/client.rb +80 -0
  17. data/lib/moneybird/http_error/authorization_required.rb +8 -0
  18. data/lib/moneybird/http_error/bad_request.rb +8 -0
  19. data/lib/moneybird/http_error/forbidden.rb +8 -0
  20. data/lib/moneybird/http_error/internal_server_error.rb +8 -0
  21. data/lib/moneybird/http_error/method_not_allowed.rb +8 -0
  22. data/lib/moneybird/http_error/not_accepted.rb +8 -0
  23. data/lib/moneybird/http_error/not_found.rb +8 -0
  24. data/lib/moneybird/http_error/payment_required.rb +8 -0
  25. data/lib/moneybird/http_error/too_many_requests.rb +8 -0
  26. data/lib/moneybird/http_error/unprocessable_entity.rb +8 -0
  27. data/lib/moneybird/middleware/error_handling.rb +29 -0
  28. data/lib/moneybird/middleware/pagination/links.rb +19 -0
  29. data/lib/moneybird/middleware/pagination.rb +31 -0
  30. data/lib/moneybird/oauth.rb +91 -0
  31. data/lib/moneybird/resource/administration.rb +101 -0
  32. data/lib/moneybird/resource/contact.rb +75 -0
  33. data/lib/moneybird/resource/custom_field.rb +18 -0
  34. data/lib/moneybird/resource/document_style.rb +35 -0
  35. data/lib/moneybird/resource/documents/general_document.rb +27 -0
  36. data/lib/moneybird/resource/documents/general_journal_document.rb +28 -0
  37. data/lib/moneybird/resource/documents/purchase_invoice.rb +57 -0
  38. data/lib/moneybird/resource/documents/receipt.rb +57 -0
  39. data/lib/moneybird/resource/documents/typeless_document.rb +28 -0
  40. data/lib/moneybird/resource/estimate.rb +64 -0
  41. data/lib/moneybird/resource/external_sales_invoice.rb +61 -0
  42. data/lib/moneybird/resource/financial_account.rb +23 -0
  43. data/lib/moneybird/resource/financial_mutation.rb +39 -0
  44. data/lib/moneybird/resource/generic/event.rb +19 -0
  45. data/lib/moneybird/resource/generic/note.rb +25 -0
  46. data/lib/moneybird/resource/identity.rb +31 -0
  47. data/lib/moneybird/resource/invoice/details.rb +29 -0
  48. data/lib/moneybird/resource/invoice/payment.rb +26 -0
  49. data/lib/moneybird/resource/ledger_account.rb +19 -0
  50. data/lib/moneybird/resource/product.rb +21 -0
  51. data/lib/moneybird/resource/recurring_sales_invoice.rb +62 -0
  52. data/lib/moneybird/resource/sales_invoice.rb +98 -0
  53. data/lib/moneybird/resource/synchronization.rb +15 -0
  54. data/lib/moneybird/resource/tax_rate.rb +21 -0
  55. data/lib/moneybird/resource/webhook.rb +24 -0
  56. data/lib/moneybird/resource/workflow.rb +24 -0
  57. data/lib/moneybird/resource.rb +126 -0
  58. data/lib/moneybird/service/administration.rb +29 -0
  59. data/lib/moneybird/service/contact.rb +27 -0
  60. data/lib/moneybird/service/custom_field.rb +19 -0
  61. data/lib/moneybird/service/document_style.rb +19 -0
  62. data/lib/moneybird/service/documents/general_document.rb +23 -0
  63. data/lib/moneybird/service/documents/general_journal_document.rb +23 -0
  64. data/lib/moneybird/service/documents/purchase_invoice.rb +23 -0
  65. data/lib/moneybird/service/documents/receipt.rb +23 -0
  66. data/lib/moneybird/service/documents/typeless_document.rb +23 -0
  67. data/lib/moneybird/service/estimate.rb +23 -0
  68. data/lib/moneybird/service/external_sales_invoice.rb +22 -0
  69. data/lib/moneybird/service/financial_account.rb +19 -0
  70. data/lib/moneybird/service/financial_mutation.rb +24 -0
  71. data/lib/moneybird/service/identity.rb +22 -0
  72. data/lib/moneybird/service/ledger_account.rb +22 -0
  73. data/lib/moneybird/service/payment.rb +21 -0
  74. data/lib/moneybird/service/product.rb +22 -0
  75. data/lib/moneybird/service/recurring_sales_invoice.rb +23 -0
  76. data/lib/moneybird/service/sales_invoice.rb +26 -0
  77. data/lib/moneybird/service/tax_rate.rb +19 -0
  78. data/lib/moneybird/service/webhook.rb +21 -0
  79. data/lib/moneybird/service/workflow.rb +19 -0
  80. data/lib/moneybird/token.rb +20 -0
  81. data/lib/moneybird/traits/administration_service.rb +16 -0
  82. data/lib/moneybird/traits/delete.rb +12 -0
  83. data/lib/moneybird/traits/download_pdf.rb +11 -0
  84. data/lib/moneybird/traits/find.rb +11 -0
  85. data/lib/moneybird/traits/find_all.rb +51 -0
  86. data/lib/moneybird/traits/mark_as_uncollectible.rb +17 -0
  87. data/lib/moneybird/traits/save.rb +26 -0
  88. data/lib/moneybird/traits/send_invoice.rb +17 -0
  89. data/lib/moneybird/traits/service.rb +15 -0
  90. data/lib/moneybird/traits/synchronization.rb +13 -0
  91. data/lib/moneybird/version.rb +5 -0
  92. data/lib/moneybird/webhook.rb +31 -0
  93. data/lib/moneybird.rb +115 -0
  94. data/moneybird.gemspec +37 -0
  95. metadata +235 -0
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class Identity
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::Find
8
+ include Moneybird::Traits::FindAll
9
+ include Moneybird::Traits::Save
10
+ include Moneybird::Traits::Delete
11
+
12
+ private
13
+
14
+ def resource_class
15
+ Moneybird::Resource::Identity
16
+ end
17
+
18
+ def path
19
+ "#{administration_id}/identities"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class LedgerAccount
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::Find
8
+ include Moneybird::Traits::FindAll
9
+ include Moneybird::Traits::Save
10
+ include Moneybird::Traits::Delete
11
+
12
+ private
13
+
14
+ def resource_class
15
+ Moneybird::Resource::LedgerAccount
16
+ end
17
+
18
+ def path
19
+ "#{administration_id}/ledger_accounts"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class Payment
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::FindAll
8
+ include Moneybird::Traits::Save
9
+ include Moneybird::Traits::Delete
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Invoice::Payment
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/sales_invoices/#{options[:invoice_id]}/payments"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class Product
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::Find
8
+ include Moneybird::Traits::FindAll
9
+ include Moneybird::Traits::Save
10
+ include Moneybird::Traits::Delete
11
+
12
+ private
13
+
14
+ def resource_class
15
+ Moneybird::Resource::Product
16
+ end
17
+
18
+ def path
19
+ "#{administration_id}/products"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class RecurringSalesInvoice
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::Find
8
+ include Moneybird::Traits::FindAll
9
+ include Moneybird::Traits::Save
10
+ include Moneybird::Traits::Delete
11
+ include Moneybird::Traits::Synchronization
12
+
13
+ private
14
+
15
+ def resource_class
16
+ Moneybird::Resource::RecurringSalesInvoice
17
+ end
18
+
19
+ def path
20
+ "#{administration_id}/recurring_sales_invoices"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class SalesInvoice
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::Find
8
+ include Moneybird::Traits::FindAll
9
+ include Moneybird::Traits::Save
10
+ include Moneybird::Traits::Delete
11
+ include Moneybird::Traits::Synchronization
12
+ include Moneybird::Traits::DownloadPdf
13
+ include Moneybird::Traits::SendInvoice
14
+ include Moneybird::Traits::MarkAsUncollectible
15
+
16
+ private
17
+
18
+ def resource_class
19
+ Moneybird::Resource::SalesInvoice
20
+ end
21
+
22
+ def path
23
+ "#{administration_id}/sales_invoices"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class TaxRate
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::FindAll
8
+
9
+ private
10
+
11
+ def resource_class
12
+ Moneybird::Resource::TaxRate
13
+ end
14
+
15
+ def path
16
+ "#{administration_id}/tax_rates"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class Webhook
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::FindAll
8
+ include Moneybird::Traits::Delete
9
+ include Moneybird::Traits::Save
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Webhook
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/webhooks"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird::Service
4
+ class Workflow
5
+ include Moneybird::Traits::AdministrationService
6
+ include Moneybird::Traits::Service
7
+ include Moneybird::Traits::FindAll
8
+
9
+ private
10
+
11
+ def resource_class
12
+ Moneybird::Resource::Workflow
13
+ end
14
+
15
+ def path
16
+ "#{administration_id}/workflows"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ class Token
5
+ attr_reader :access_token, :refresh_token, :token_type, :scope, :created_at
6
+
7
+ def initialize(access_token:, refresh_token: nil, token_type: "bearer", scope: nil, created_at: nil)
8
+ @access_token = access_token
9
+ @refresh_token = refresh_token
10
+ @token_type = token_type
11
+ @scope = scope
12
+ @created_at = created_at.is_a?(Numeric) ? Time.at(created_at) : created_at
13
+ end
14
+
15
+ # Create a Client from this token
16
+ def client
17
+ Client.new(access_token)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module AdministrationService
6
+ attr_reader :client, :administration_id, :preloaded_data, :options
7
+
8
+ def initialize(client, administration_id, options = {})
9
+ @client = client
10
+ @administration_id = administration_id
11
+ @preloaded_data = options.delete(:preloaded_data)
12
+ @options = options
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module Delete
6
+ def delete(resource)
7
+ client.delete(resource_path(resource))
8
+ true
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module DownloadPdf
6
+ def download_pdf(id)
7
+ client.get("#{path}/#{id}/download_pdf")
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module Find
6
+ def find(id)
7
+ build client.get("#{path}/#{id}")
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module FindAll
6
+ def all(params = {})
7
+ each(params).to_a
8
+ end
9
+
10
+ def each_page(params = {})
11
+ return enum_for(:each_page, params) unless block_given?
12
+ client.get_each_page(path, params).map do |resources|
13
+ yield resources.map { |resource| build resource }
14
+ end
15
+ end
16
+
17
+ def each(params = {})
18
+ return enum_for(:each, params) unless block_given?
19
+ if preloaded_data
20
+ preloaded_data.each do |data|
21
+ yield data
22
+ end
23
+ else
24
+ each_page(params).each do |resources|
25
+ resources.each do |resource|
26
+ yield resource
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ def first_page(params = {})
33
+ client.get(path, params).map do |resource|
34
+ build resource
35
+ end
36
+ end
37
+
38
+ def first(params = {})
39
+ params = { per_page: 1 }.merge params
40
+ build client.get(path, params).first
41
+ end
42
+
43
+ def map(params = {})
44
+ return enum_for(:map, params) unless block_given?
45
+ each(params).map do |resource|
46
+ yield resource
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module MarkAsUncollectible
6
+ def mark_as_uncollectible_path(resource)
7
+ [path, resource.path, '/mark_as_uncollectible'].join('')
8
+ end
9
+
10
+ def mark_as_uncollectible(resource, options = {})
11
+ response = client.patch(mark_as_uncollectible_path(resource), options.to_json)
12
+ resource.attributes = response
13
+ resource
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module Save
6
+ def save(resource)
7
+ response =
8
+ if resource.persisted?
9
+ client.patch(resource_path(resource), resource.to_json)
10
+ else
11
+ client.post(resource_path(resource), resource.to_json)
12
+ end
13
+ resource.attributes = response
14
+ resource
15
+ end
16
+
17
+ def create(attributes)
18
+ build(attributes).tap do |resource|
19
+ save(resource)
20
+ end
21
+ end
22
+
23
+ alias update create
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module SendInvoice
6
+ def send_invoice_path(resource)
7
+ [path, resource.path, '/send_invoice'].join('')
8
+ end
9
+
10
+ def send_invoice(resource, options = {})
11
+ response = client.patch(send_invoice_path(resource), options.to_json)
12
+ resource.attributes = response
13
+ resource
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module Service
6
+ def build(attributes)
7
+ resource_class.build attributes.merge(client: client)
8
+ end
9
+
10
+ def resource_path(resource)
11
+ [path, resource.path].join('')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ module Traits
5
+ module Synchronization
6
+ def synchronization(params = {})
7
+ client.get("#{path}/synchronization", params).map do |resource|
8
+ Moneybird::Resource::Synchronization.new resource
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ VERSION = "0.12.0"
5
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Moneybird
4
+ class Webhook
5
+ include Moneybird::Resource
6
+ extend Moneybird::Resource::ClassMethods
7
+
8
+ has_attributes %i(
9
+ administration_id
10
+ webhook_id
11
+ webhook_token
12
+ entity_type
13
+ entity_id
14
+ state
15
+ action
16
+ entity
17
+ )
18
+
19
+ def build_entity
20
+ entity_resource_class.new(entity) if entity
21
+ end
22
+
23
+ def entity_resource_class
24
+ Object.const_get "Moneybird::Resource::#{entity_type}"
25
+ end
26
+
27
+ def self.from_json(payload)
28
+ build(JSON.parse(payload))
29
+ end
30
+ end
31
+ end
data/lib/moneybird.rb ADDED
@@ -0,0 +1,115 @@
1
+
2
+ # frozen_string_literal: true
3
+
4
+ require 'active_support'
5
+ require 'active_support/core_ext/object/json'
6
+ require 'active_support/core_ext/string/inflections'
7
+ require 'faraday'
8
+
9
+ require 'logger'
10
+ require 'uri'
11
+ require 'json'
12
+ require 'net/http'
13
+
14
+ module Moneybird
15
+ module HttpError; end
16
+ module Middleware; end
17
+ module Service; end
18
+ module Traits; end
19
+ end
20
+
21
+ require 'moneybird/resource'
22
+
23
+ ##
24
+ # Http Errors
25
+ require 'moneybird/http_error/authorization_required'
26
+ require 'moneybird/http_error/bad_request'
27
+ require 'moneybird/http_error/forbidden'
28
+ require 'moneybird/http_error/internal_server_error'
29
+ require 'moneybird/http_error/method_not_allowed'
30
+ require 'moneybird/http_error/not_accepted'
31
+ require 'moneybird/http_error/not_found'
32
+ require 'moneybird/http_error/payment_required'
33
+ require 'moneybird/http_error/too_many_requests'
34
+ require 'moneybird/http_error/unprocessable_entity'
35
+
36
+ ##
37
+ # Middleware
38
+ require 'moneybird/middleware/error_handling' # Depends on http errors
39
+ require 'moneybird/middleware/pagination/links'
40
+ require 'moneybird/middleware/pagination' # Depends on links
41
+
42
+ ##
43
+ # Resources (all depend on resource)
44
+ require 'moneybird/resource/documents/general_document'
45
+ require 'moneybird/resource/documents/general_journal_document'
46
+ require 'moneybird/resource/documents/purchase_invoice'
47
+ require 'moneybird/resource/documents/receipt'
48
+ require 'moneybird/resource/documents/typeless_document'
49
+ require 'moneybird/resource/generic/event'
50
+ require 'moneybird/resource/generic/note'
51
+ require 'moneybird/resource/invoice/details'
52
+ require 'moneybird/resource/invoice/payment'
53
+ require 'moneybird/resource/contact' # Depends on generic resources
54
+ require 'moneybird/resource/document_style'
55
+ require 'moneybird/resource/custom_field'
56
+ require 'moneybird/resource/estimate'
57
+ require 'moneybird/resource/financial_account'
58
+ require 'moneybird/resource/financial_mutation'
59
+ require 'moneybird/resource/identity'
60
+ require 'moneybird/resource/ledger_account'
61
+ require 'moneybird/resource/product'
62
+ require 'moneybird/resource/recurring_sales_invoice' # Depends on generic and invoice resources
63
+ require 'moneybird/resource/sales_invoice' # Depends on generic and invoice resources
64
+ require 'moneybird/resource/external_sales_invoice'
65
+ require 'moneybird/resource/synchronization'
66
+ require 'moneybird/resource/tax_rate'
67
+ require 'moneybird/resource/webhook'
68
+ require 'moneybird/resource/workflow'
69
+
70
+ ##
71
+ # Traits
72
+ require 'moneybird/traits/administration_service'
73
+ require 'moneybird/traits/delete'
74
+ require 'moneybird/traits/download_pdf'
75
+ require 'moneybird/traits/find'
76
+ require 'moneybird/traits/find_all'
77
+ require 'moneybird/traits/mark_as_uncollectible'
78
+ require 'moneybird/traits/save'
79
+ require 'moneybird/traits/send_invoice'
80
+ require 'moneybird/traits/service'
81
+ require 'moneybird/traits/synchronization' # Depends on synchronization resource
82
+
83
+ ##
84
+ # Services (all depend on traits and it's associated resource)
85
+ require 'moneybird/service/documents/general_document'
86
+ require 'moneybird/service/documents/general_journal_document'
87
+ require 'moneybird/service/documents/purchase_invoice'
88
+ require 'moneybird/service/documents/receipt'
89
+ require 'moneybird/service/documents/typeless_document'
90
+ require 'moneybird/service/contact'
91
+ require 'moneybird/service/document_style'
92
+ require 'moneybird/service/custom_field'
93
+ require 'moneybird/service/estimate'
94
+ require 'moneybird/service/financial_account'
95
+ require 'moneybird/service/financial_mutation'
96
+ require 'moneybird/service/identity'
97
+ require 'moneybird/service/ledger_account'
98
+ require 'moneybird/service/product'
99
+ require 'moneybird/service/recurring_sales_invoice'
100
+ require 'moneybird/service/sales_invoice'
101
+ require 'moneybird/service/external_sales_invoice'
102
+ require 'moneybird/service/tax_rate'
103
+ require 'moneybird/service/webhook'
104
+ require 'moneybird/service/workflow'
105
+ require 'moneybird/service/payment'
106
+
107
+ ##
108
+ # Special cases
109
+ require 'moneybird/resource/administration' # Depends on services
110
+ require 'moneybird/service/administration' # Depends on administration resource
111
+ require 'moneybird/token'
112
+ require 'moneybird/oauth'
113
+ require 'moneybird/client'
114
+ require 'moneybird/version'
115
+ require 'moneybird/webhook'
data/moneybird.gemspec ADDED
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'moneybird/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "moneybird-client"
8
+ spec.version = Moneybird::VERSION
9
+ spec.authors = ["ramones"]
10
+ spec.email = ["ramonvansprundel@gmail.com"]
11
+
12
+ spec.summary = %q{Library to interface with Moneybird API}
13
+ spec.description = %q{Library to interface with Moneybird API: http://developer.moneybird.com/}
14
+ spec.homepage = "https://codeberg.org/odeva/moneybird"
15
+ spec.license = "MIT"
16
+
17
+ spec.required_ruby_version = ">= 3.1.0"
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.metadata["homepage_uri"] = spec.homepage
25
+ spec.metadata["source_code_uri"] = spec.homepage
26
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
27
+ spec.metadata["rubygems_mfa_required"] = "true"
28
+
29
+ spec.add_dependency "activesupport", '>= 7.0'
30
+ spec.add_dependency "faraday", ">= 2.0.1"
31
+ spec.add_dependency "link_header", "~> 0.0.8"
32
+
33
+ spec.add_development_dependency "bundler", ">= 2.0"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
+ spec.add_development_dependency "minitest", "~> 5.0"
36
+ spec.add_development_dependency "webmock", "~> 3.1"
37
+ end