codat 0.1.6 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a1b2456d6687df09540e3f231fb900684a379771bece070ac5ca515070fc4b0
4
- data.tar.gz: 15b72b23934fcfbfd404affa282ee004316778b69c79f3e349719a5dcd9fbb8b
3
+ metadata.gz: e1829ea46fc4832baeb2a7057a91df121c6d33e8af2a92118f3743fec8e99d74
4
+ data.tar.gz: 6f3500819d9265ffcb1b11369c15ee7513dfb25952611b37773552ffdd20ad1a
5
5
  SHA512:
6
- metadata.gz: d5e4e98c94b48af0f8dbda9af71a093f3ff93e69e1b1aeabdc2bb890c9208868b87aae423ca39079f1a990f7ecfa6222b047e54e1b9578ed404ba5e002d15fc9
7
- data.tar.gz: 8d70d18e2bd0de1063b0b93fe82be49d0cf4f82369fb3271e37b23c0090b2713ac52016c0ef9c78bdafa2361dfc737721802ee914ce7e7e453120cc7884a49cf
6
+ metadata.gz: bda5c5bb7bbeab8ae74878b3f2d2f1338d2f42d271cadc36dcc994b42877ecde287429ce68b2e4188780ec64341438a9c0c6bc5a8537d5f9e28f3f38f9895e32
7
+ data.tar.gz: 207168eb3220fb3c6b344d52ebfa1868a58b56708a25e86b0a328bbd875ef79c0b8285a0c370a3b67419e21fbed7f7178a0b8f1ebd4f6533e949100a9dc215ef
data/.gitlab-ci.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  before_script:
2
2
  - ruby -v
3
3
  - which ruby
4
- - gem install bundler
4
+ - gem install bundler:2.2.33
5
5
  - bundle install --jobs $(nproc) "${FLAGS[@]}"
6
6
 
7
7
  rspec:
data/.rubocop.yml CHANGED
@@ -1,14 +1,22 @@
1
1
  require: rubocop-rspec
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.5.1
4
+ TargetRubyVersion: 3.2.0
5
+ NewCops: enable
6
+ SuggestExtensions: false
7
+
8
+ Gemspec/RequiredRubyVersion:
9
+ Enabled: false
10
+
11
+ Gemspec/RequireMFA:
12
+ Enabled: false
5
13
 
6
14
  # Don't force top level comments in every class
7
15
  Style/Documentation:
8
16
  Enabled: false
9
17
 
10
18
  # A good line length is 100 chars
11
- Metrics/LineLength:
19
+ Layout/LineLength:
12
20
  Max: 100
13
21
  AllowURI: true
14
22
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.6
1
+ 3.2.0
data/Gemfile CHANGED
@@ -6,3 +6,15 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  # Specify your gem's dependencies in codat.gemspec
8
8
  gemspec
9
+
10
+ # Dev dependencies
11
+ gem 'bundler'
12
+ gem 'dotenv', '~> 2.5'
13
+ gem 'pry-byebug', '~> 3.6'
14
+ gem 'rake'
15
+ gem 'rspec', '~> 3.0'
16
+ gem 'rubocop', '~> 1.43'
17
+ gem 'rubocop-rspec'
18
+ gem 'simplecov', '~> 0.16'
19
+ gem 'vcr', '~> 6.1.0'
20
+ gem 'webmock', '~> 3.18.1'
data/bin/console CHANGED
@@ -8,7 +8,7 @@ require 'dotenv'
8
8
  Dotenv.load
9
9
 
10
10
  Codat.configure do |config|
11
- config.api_key = ENV['API_KEY']
11
+ config.api_key = ENV.fetch('API_KEY')
12
12
  end
13
13
 
14
14
  # To avoid having to namespace everything when inside the console.
data/codat.gemspec CHANGED
@@ -27,20 +27,7 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.required_ruby_version = '>= 2.5'
29
29
 
30
- spec.add_dependency 'faraday', '~> 0.15'
31
- spec.add_dependency 'faraday_middleware', '~> 0.12'
32
- spec.add_dependency 'faraday_middleware-multi_json', '~> 0.0.6'
33
- spec.add_dependency 'multi_json', '~> 1.13'
34
- spec.add_dependency 'rainbow', '~> 3.0'
35
-
36
- spec.add_development_dependency 'bundler'
37
- spec.add_development_dependency 'dotenv', '~> 2.5'
38
- spec.add_development_dependency 'pry-byebug', '~> 3.6'
39
- spec.add_development_dependency 'rake', '~> 10.0'
40
- spec.add_development_dependency 'rspec', '~> 3.0'
41
- spec.add_development_dependency 'rubocop', '~> 0.58'
42
- spec.add_development_dependency 'rubocop-rspec', '~> 1.27'
43
- spec.add_development_dependency 'simplecov', '~> 0.16'
44
- spec.add_development_dependency 'vcr', '~> 4.0.0'
45
- spec.add_development_dependency 'webmock', '~> 3.7.2'
30
+ spec.add_dependency 'faraday', '~> 2.7'
31
+ spec.add_dependency 'multi_json', '~> 1.15'
32
+ spec.add_dependency 'rainbow', '~> 3.1'
46
33
  end
@@ -6,7 +6,7 @@ module Codat
6
6
  def self.transform(underscore_string)
7
7
  parts = underscore_string.to_s.split('_')
8
8
 
9
- rest = parts[1..-1].map(&:capitalize)
9
+ rest = parts[1..].map(&:capitalize)
10
10
 
11
11
  rest.unshift(parts[0]).join.to_sym
12
12
  end
data/lib/codat/client.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'faraday'
4
- require 'faraday_middleware/multi_json'
5
4
  require 'codat/faraday_codat_auth'
5
+ require 'multi_json'
6
6
 
7
7
  module Codat
8
8
  class Client
@@ -26,7 +26,7 @@ module Codat
26
26
  def connection
27
27
  @connection ||= Faraday.new(url: api_url) do |conn|
28
28
  conn.request :codat_auth, Codat.configuration.api_key
29
- conn.response :multi_json, symbolize_keys: true
29
+ conn.response :json, parser_options: { symbolize_names: true }
30
30
  # conn.response :logger # if Codat.configuration.debug?
31
31
  conn.adapter Faraday.default_adapter
32
32
  end
@@ -35,7 +35,7 @@ module Codat
35
35
  private
36
36
 
37
37
  def api_url
38
- BASE_URLS.dig(Codat.configuration.environment.to_sym)
38
+ BASE_URLS[Codat.configuration.environment.to_sym]
39
39
  end
40
40
  end
41
41
  end
@@ -7,6 +7,8 @@ require 'codat/errors'
7
7
  module Codat
8
8
  class FaradayCodatAuth < Faraday::Middleware
9
9
  def initialize(app, api_key = '', options = {})
10
+ super()
11
+
10
12
  @app = app
11
13
  @api_key = api_key
12
14
  @options = options
@@ -30,7 +30,7 @@ module Codat
30
30
 
31
31
  @records = records.map { |bank_statement| BankStatement.new(json: bank_statement) }
32
32
 
33
- @metadata = Metadata.new(json: json)
33
+ @metadata = Metadata.new(json:)
34
34
  end
35
35
  end
36
36
  end
@@ -24,7 +24,7 @@ module Codat
24
24
  end
25
25
 
26
26
  def self.find(company_id)
27
- url = format_url(ENDPOINTS[:single], company_id: company_id)
27
+ url = format_url(ENDPOINTS[:single], company_id:)
28
28
 
29
29
  result = get(url)
30
30
 
@@ -14,6 +14,8 @@ module Codat
14
14
  attr_reader :reports
15
15
 
16
16
  def self.inherited(other)
17
+ super
18
+
17
19
  other.attributes :currency, :most_recent_available_month, :earliest_available_month
18
20
  end
19
21
 
@@ -28,7 +30,7 @@ module Codat
28
30
  #
29
31
  # An ArgumentError is raised unless you provide a :company_id key in the params.
30
32
  def self.find(params = {})
31
- company_id = params.dig(:company_id)
33
+ company_id = params[:company_id]
32
34
 
33
35
  raise ArgumentError, 'please provide company_id' unless company_id
34
36
 
@@ -49,7 +51,7 @@ module Codat
49
51
  periodsToCompare: options.fetch(:periods_to_compare, DEFAULT_PERIODS_TO_COMPARE)
50
52
  }
51
53
 
52
- options = options.map { |key, value| [Camelizer.transform(key), value] }.to_h
54
+ options = options.transform_keys { |key| Camelizer.transform(key) }
53
55
 
54
56
  query.merge(options)
55
57
  end
@@ -69,8 +71,8 @@ module Codat
69
71
  def initialize(json: {})
70
72
  super
71
73
 
72
- @most_recent_available_month = Date.parse(json.dig(:mostRecentAvailableMonth))
73
- @earliest_available_month = Date.parse(json.dig(:earliestAvailableMonth))
74
+ @most_recent_available_month = Date.parse(json[:mostRecentAvailableMonth])
75
+ @earliest_available_month = Date.parse(json[:earliestAvailableMonth])
74
76
 
75
77
  reports_json = json.fetch(:reports, {})
76
78
  @reports = reports_json.map { |report| self.class.report_class.new(json: report) }
data/lib/codat/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codat
4
- VERSION = '0.1.6'
4
+ VERSION = '0.1.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Otero
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-20 00:00:00.000000000 Z
11
+ date: 2023-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,210 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.15'
19
+ version: '2.7'
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
- version: '0.15'
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.12'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.12'
41
- - !ruby/object:Gem::Dependency
42
- name: faraday_middleware-multi_json
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.0.6
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.0.6
26
+ version: '2.7'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: multi_json
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '1.13'
33
+ version: '1.15'
62
34
  type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '1.13'
40
+ version: '1.15'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: rainbow
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: '3.0'
47
+ version: '3.1'
76
48
  type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: bundler
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: dotenv
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '2.5'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '2.5'
111
- - !ruby/object:Gem::Dependency
112
- name: pry-byebug
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.6'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3.6'
125
- - !ruby/object:Gem::Dependency
126
- name: rake
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '10.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '10.0'
139
- - !ruby/object:Gem::Dependency
140
- name: rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '3.0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '3.0'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.58'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.58'
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop-rspec
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '1.27'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '1.27'
181
- - !ruby/object:Gem::Dependency
182
- name: simplecov
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '0.16'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '0.16'
195
- - !ruby/object:Gem::Dependency
196
- name: vcr
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 4.0.0
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: 4.0.0
209
- - !ruby/object:Gem::Dependency
210
- name: webmock
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: 3.7.2
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: 3.7.2
54
+ version: '3.1'
223
55
  description: Codat API wrapper in Ruby
224
56
  email:
225
57
  - oterosantos@gmail.com
@@ -279,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
111
  - !ruby/object:Gem::Version
280
112
  version: '0'
281
113
  requirements: []
282
- rubygems_version: 3.2.11
114
+ rubygems_version: 3.4.4
283
115
  signing_key:
284
116
  specification_version: 4
285
117
  summary: Codat API wrapper in Ruby