ledger_sync 2.0.0.pre.1 → 2.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b77798289157965cac34c12dcf2753b9686a3685f69dfcf1b0c6012e0f8c72e
4
- data.tar.gz: 89187325145ea11757a2a7a3aa1c7665db371ae0155a5ced5ecc6dc9d605f74e
3
+ metadata.gz: 1cf6f5673db192ad47561bec18aea0d49c520865c3dcf5e4bd7c671930ab629d
4
+ data.tar.gz: 194207990f3cd94f7511f6a52e021f20b0fd39983d0680b33458d2582e6973a2
5
5
  SHA512:
6
- metadata.gz: 2219e4e3f5007be773dc335abd8c2415fac518b3abbf71e81887a06f9fc34b294c7c6756dfd49c6be1e2f6a0f1a5fd00784db444a34684054c23e616c60629ab
7
- data.tar.gz: b20684cedfcd1ce96c346ad2f224f2c038a6c4852f25f9d811ce69f7479d0f2fa9b202c164230359bd0c5387396031dd28b91ff6d5b4fd298a05764dcf59ccfe
6
+ metadata.gz: 958087d98e123fedff5a73eb89ba42d3eed8934643cdcc4880b7ef60bca7b87adcaeecb256f884eeff6e2689d6e3bb7389d1d17ebca6af2d745706eaae46d798
7
+ data.tar.gz: 939329c7c8518d52ae1423c76a61545489ed8ca8a2c31eb338853bf45d093be82c185f3b8317b05e10bb6643f598504162ecedf50cb8a58bd73c14c53b46a318
@@ -8,7 +8,7 @@ jobs:
8
8
  rubocop:
9
9
  strategy:
10
10
  matrix:
11
- ruby-version: [2.6.3, 2.6.6, 2.7.1]
11
+ ruby-version: [2.5.8, 2.6.3, 2.6.6, 2.7.1, 3.0.0]
12
12
  runs-on: [ubuntu-latest]
13
13
  steps:
14
14
  - uses: actions/checkout@v2
@@ -24,7 +24,7 @@ jobs:
24
24
  rspec:
25
25
  strategy:
26
26
  matrix:
27
- ruby-version: [2.6.3, 2.6.6, 2.7.1]
27
+ ruby-version: [2.5.8, 2.6.3, 2.6.6, 2.7.1, 3.0.0]
28
28
  runs-on: [ubuntu-latest]
29
29
  steps:
30
30
  - uses: actions/checkout@v2
@@ -37,12 +37,16 @@ jobs:
37
37
  ruby-version: ${{ matrix.ruby-version }}
38
38
  bundler-cache: true
39
39
  - name: rspec and report to coveralls
40
- env:
41
- COVERALLS_REPO_TOKEN: ${{ github.event_name == 'push' && secrets.COVERALLS_REPO_TOKEN }}
42
40
  run: bundle exec rspec --order rand
41
+ - name: Coveralls
42
+ uses: coverallsapp/github-action@master
43
+ with:
44
+ github-token: ${{ secrets.GITHUB_TOKEN }}
45
+ parallel: true
46
+ flag-name: run-${{ matrix.ruby-version }}
43
47
  publish:
44
48
  runs-on: ubuntu-latest
45
- needs: ['rubocop', 'rspec']
49
+ needs: ["rubocop", "rspec"]
46
50
  if: github.event_name == 'release' && github.event.action == 'created'
47
51
  steps:
48
52
  - name: Checkout
@@ -64,4 +68,4 @@ jobs:
64
68
  gem build *.gemspec
65
69
  gem push *.gem
66
70
  env:
67
- GEM_HOST_API_KEY: "${{ secrets.RUBY_GEM_KEY }}"
71
+ GEM_HOST_API_KEY: "${{ secrets.RUBY_GEM_KEY }}"
data/.travis.yml CHANGED
@@ -5,6 +5,7 @@ rvm:
5
5
  - 2.6.6
6
6
  - 2.6.3
7
7
  - 2.7.1
8
+ - 3.0.0
8
9
  - ruby-head
9
10
  before_install:
10
11
  - gem update --system
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ledger_sync (2.0.0)
4
+ ledger_sync (2.2.0)
5
5
  activemodel
6
6
  colorize
7
7
  dry-schema (~> 1.5.4)
@@ -20,34 +20,35 @@ PATH
20
20
  GEM
21
21
  remote: https://rubygems.org/
22
22
  specs:
23
- activemodel (6.0.3.4)
24
- activesupport (= 6.0.3.4)
25
- activesupport (6.0.3.4)
23
+ activemodel (6.1.4)
24
+ activesupport (= 6.1.4)
25
+ activesupport (6.1.4)
26
26
  concurrent-ruby (~> 1.0, >= 1.0.2)
27
- i18n (>= 0.7, < 2)
28
- minitest (~> 5.1)
29
- tzinfo (~> 1.1)
30
- zeitwerk (~> 2.2, >= 2.2.2)
31
- addressable (2.7.0)
27
+ i18n (>= 1.6, < 2)
28
+ minitest (>= 5.1)
29
+ tzinfo (~> 2.0)
30
+ zeitwerk (~> 2.3)
31
+ addressable (2.8.0)
32
32
  public_suffix (>= 2.0.2, < 5.0)
33
- ast (2.4.1)
34
- awesome_print (1.8.0)
33
+ ast (2.4.2)
34
+ awesome_print (1.9.2)
35
35
  bump (0.9.0)
36
36
  byebug (11.1.3)
37
- childprocess (4.0.0)
38
- climate_control (0.2.0)
37
+ childprocess (4.1.0)
38
+ climate_control (1.0.1)
39
39
  colorator (1.1.0)
40
40
  colorize (0.8.1)
41
- concurrent-ruby (1.1.7)
42
- coveralls (0.8.23)
43
- json (>= 1.8, < 3)
44
- simplecov (~> 0.16.1)
45
- term-ansicolor (~> 1.3)
46
- thor (>= 0.19.4, < 2.0)
47
- tins (~> 1.6)
48
- crack (0.4.4)
41
+ concurrent-ruby (1.1.9)
42
+ coveralls (0.7.2)
43
+ multi_json (~> 1.3)
44
+ rest-client (= 1.6.7)
45
+ simplecov (>= 0.7)
46
+ term-ansicolor (= 1.2.2)
47
+ thor (= 0.18.1)
48
+ crack (0.4.5)
49
+ rexml
49
50
  diff-lcs (1.4.4)
50
- docile (1.3.2)
51
+ docile (1.4.0)
51
52
  dotenv (2.7.6)
52
53
  dry-configurable (0.12.1)
53
54
  concurrent-ruby (~> 1.0)
@@ -55,12 +56,12 @@ GEM
55
56
  dry-container (0.7.2)
56
57
  concurrent-ruby (~> 1.0)
57
58
  dry-configurable (~> 0.1, >= 0.1.3)
58
- dry-core (0.5.0)
59
+ dry-core (0.6.0)
59
60
  concurrent-ruby (~> 1.0)
60
61
  dry-equalizer (0.3.0)
61
62
  dry-inflector (0.2.0)
62
63
  dry-initializer (3.0.4)
63
- dry-logic (1.1.0)
64
+ dry-logic (1.2.0)
64
65
  concurrent-ruby (~> 1.0)
65
66
  dry-core (~> 0.5, >= 0.5)
66
67
  dry-schema (1.5.6)
@@ -90,63 +91,87 @@ GEM
90
91
  eventmachine (1.2.7)
91
92
  factory_bot (6.1.0)
92
93
  activesupport (>= 5.0.0)
93
- faraday (1.3.0)
94
+ faraday (1.7.0)
95
+ faraday-em_http (~> 1.0)
96
+ faraday-em_synchrony (~> 1.0)
97
+ faraday-excon (~> 1.1)
98
+ faraday-httpclient (~> 1.0.1)
94
99
  faraday-net_http (~> 1.0)
100
+ faraday-net_http_persistent (~> 1.1)
101
+ faraday-patron (~> 1.0)
102
+ faraday-rack (~> 1.0)
95
103
  multipart-post (>= 1.2, < 3)
96
- ruby2_keywords
104
+ ruby2_keywords (>= 0.0.4)
97
105
  faraday-detailed_logger (2.3.0)
98
106
  faraday (>= 0.8, < 2)
107
+ faraday-em_http (1.0.0)
108
+ faraday-em_synchrony (1.0.0)
109
+ faraday-excon (1.1.0)
110
+ faraday-httpclient (1.0.1)
99
111
  faraday-net_http (1.0.1)
100
- faraday_middleware (1.0.0)
112
+ faraday-net_http_persistent (1.2.0)
113
+ faraday-patron (1.0.0)
114
+ faraday-rack (1.0.0)
115
+ faraday_middleware (1.1.0)
101
116
  faraday (~> 1.0)
102
- ffi (1.13.1)
117
+ ffi (1.15.3)
103
118
  fingerprintable (1.2.1)
104
119
  colorize
105
120
  forwardable-extended (2.6.0)
106
121
  hashdiff (1.0.1)
107
122
  http_parser.rb (0.6.0)
108
- i18n (0.9.5)
123
+ i18n (1.8.10)
109
124
  concurrent-ruby (~> 1.0)
110
125
  iniparse (1.5.0)
111
- jekyll (3.8.7)
126
+ jekyll (4.2.0)
112
127
  addressable (~> 2.4)
113
128
  colorator (~> 1.0)
114
129
  em-websocket (~> 0.5)
115
- i18n (~> 0.7)
116
- jekyll-sass-converter (~> 1.0)
130
+ i18n (~> 1.0)
131
+ jekyll-sass-converter (~> 2.0)
117
132
  jekyll-watch (~> 2.0)
118
- kramdown (~> 1.14)
133
+ kramdown (~> 2.3)
134
+ kramdown-parser-gfm (~> 1.0)
119
135
  liquid (~> 4.0)
120
- mercenary (~> 0.3.3)
136
+ mercenary (~> 0.4.0)
121
137
  pathutil (~> 0.9)
122
- rouge (>= 1.7, < 4)
138
+ rouge (~> 3.0)
123
139
  safe_yaml (~> 1.0)
140
+ terminal-table (~> 2.0)
124
141
  jekyll-menus (0.6.1)
125
142
  jekyll (>= 3.6, < 5.0)
126
143
  jekyll-paginate (1.1.0)
127
- jekyll-paginate-v2 (1.9.4)
128
- jekyll (~> 3.0)
129
- jekyll-sass-converter (1.5.2)
130
- sass (~> 3.4)
144
+ jekyll-paginate-v2 (3.0.0)
145
+ jekyll (>= 3.0, < 5.0)
146
+ jekyll-sass-converter (2.1.0)
147
+ sassc (> 2.0.1, < 3.0)
131
148
  jekyll-watch (2.2.1)
132
149
  listen (~> 3.0)
133
- json (2.3.1)
134
- kramdown (1.17.0)
150
+ kramdown (2.3.1)
151
+ rexml
152
+ kramdown-parser-gfm (1.1.0)
153
+ kramdown (~> 2.0)
135
154
  liquid (4.0.3)
136
- listen (3.2.1)
155
+ listen (3.6.0)
137
156
  rb-fsevent (~> 0.10, >= 0.10.3)
138
157
  rb-inotify (~> 0.9, >= 0.9.10)
139
- mercenary (0.3.6)
140
- minitest (5.14.2)
158
+ mercenary (0.4.0)
159
+ mime-types (3.3.1)
160
+ mime-types-data (~> 3.2015)
161
+ mime-types-data (3.2021.0704)
162
+ mini_portile2 (2.6.1)
163
+ minitest (5.14.4)
164
+ multi_json (1.15.0)
141
165
  multipart-post (2.1.1)
142
- nokogiri (1.11.1-x86_64-darwin)
166
+ nokogiri (1.12.3)
167
+ mini_portile2 (~> 2.6.1)
143
168
  racc (~> 1.4)
144
169
  openssl (2.2.0)
145
170
  overcommit (0.57.0)
146
171
  childprocess (>= 0.6.3, < 5)
147
172
  iniparse (~> 1.4)
148
- parallel (1.20.0)
149
- parser (2.7.2.0)
173
+ parallel (1.20.1)
174
+ parser (3.0.2.0)
150
175
  ast (~> 2.4.1)
151
176
  pathutil (0.16.2)
152
177
  forwardable-extended (~> 2.6)
@@ -156,27 +181,29 @@ GEM
156
181
  racc (1.5.2)
157
182
  rack (2.2.3)
158
183
  rainbow (3.0.0)
159
- rake (13.0.1)
160
- rb-fsevent (0.10.4)
184
+ rake (13.0.6)
185
+ rb-fsevent (0.11.0)
161
186
  rb-inotify (0.10.1)
162
187
  ffi (~> 1.0)
163
- regexp_parser (1.8.2)
188
+ regexp_parser (2.1.1)
164
189
  resonad (1.4.0)
165
- rexml (3.2.4)
166
- rouge (3.24.0)
190
+ rest-client (1.6.7)
191
+ mime-types (>= 1.16)
192
+ rexml (3.2.5)
193
+ rouge (3.26.0)
167
194
  rspec (3.10.0)
168
195
  rspec-core (~> 3.10.0)
169
196
  rspec-expectations (~> 3.10.0)
170
197
  rspec-mocks (~> 3.10.0)
171
- rspec-core (3.10.0)
198
+ rspec-core (3.10.1)
172
199
  rspec-support (~> 3.10.0)
173
- rspec-expectations (3.10.0)
200
+ rspec-expectations (3.10.1)
174
201
  diff-lcs (>= 1.2.0, < 2.0)
175
202
  rspec-support (~> 3.10.0)
176
- rspec-mocks (3.10.0)
203
+ rspec-mocks (3.10.2)
177
204
  diff-lcs (>= 1.2.0, < 2.0)
178
205
  rspec-support (~> 3.10.0)
179
- rspec-support (3.10.0)
206
+ rspec-support (3.10.2)
180
207
  rubocop (1.0.0)
181
208
  parallel (~> 1.10)
182
209
  parser (>= 2.7.1.5)
@@ -186,38 +213,36 @@ GEM
186
213
  rubocop-ast (>= 0.6.0)
187
214
  ruby-progressbar (~> 1.7)
188
215
  unicode-display_width (>= 1.4.0, < 2.0)
189
- rubocop-ast (1.1.1)
190
- parser (>= 2.7.1.5)
191
- ruby-progressbar (1.10.1)
192
- ruby2_keywords (0.0.4)
216
+ rubocop-ast (1.10.0)
217
+ parser (>= 3.0.1.1)
218
+ ruby-progressbar (1.11.0)
219
+ ruby2_keywords (0.0.5)
193
220
  safe_yaml (1.0.5)
194
- sass (3.7.4)
195
- sass-listen (~> 4.0.0)
196
- sass-listen (4.0.0)
197
- rb-fsevent (~> 0.9, >= 0.9.4)
198
- rb-inotify (~> 0.9, >= 0.9.7)
199
- simplecov (0.16.1)
221
+ sassc (2.4.0)
222
+ ffi (~> 1.9)
223
+ simplecov (0.21.2)
200
224
  docile (~> 1.1)
201
- json (>= 1.8, < 3)
202
- simplecov-html (~> 0.10.0)
203
- simplecov-html (0.10.2)
225
+ simplecov-html (~> 0.11)
226
+ simplecov_json_formatter (~> 0.1)
227
+ simplecov-html (0.12.3)
228
+ simplecov-lcov (0.8.0)
229
+ simplecov_json_formatter (0.1.3)
204
230
  simply_serializable (1.5.1)
205
231
  fingerprintable (>= 1.2.1)
206
- sync (0.5.0)
207
- term-ansicolor (1.7.1)
208
- tins (~> 1.0)
209
- thor (1.0.1)
210
- thread_safe (0.3.6)
211
- tins (1.26.0)
212
- sync
213
- tzinfo (1.2.8)
214
- thread_safe (~> 0.1)
232
+ term-ansicolor (1.2.2)
233
+ tins (~> 0.8)
234
+ terminal-table (2.0.0)
235
+ unicode-display_width (~> 1.1, >= 1.1.1)
236
+ thor (0.18.1)
237
+ tins (0.13.2)
238
+ tzinfo (2.0.4)
239
+ concurrent-ruby (~> 1.0)
215
240
  unicode-display_width (1.7.0)
216
- webmock (3.9.5)
217
- addressable (>= 2.3.6)
241
+ webmock (3.14.0)
242
+ addressable (>= 2.8.0)
218
243
  crack (>= 0.3.2)
219
244
  hashdiff (>= 0.4.0, < 2.0.0)
220
- zeitwerk (2.4.1)
245
+ zeitwerk (2.4.2)
221
246
 
222
247
  PLATFORMS
223
248
  ruby
@@ -228,19 +253,21 @@ DEPENDENCIES
228
253
  bundler (~> 2.1)
229
254
  byebug
230
255
  climate_control
231
- coveralls (~> 0.8.23)
256
+ coveralls
232
257
  dotenv
233
258
  factory_bot (~> 6.1.0)
234
- jekyll (~> 3.8.4)
235
- jekyll-menus (~> 0.6.0)
259
+ jekyll (~> 4.2.0)
260
+ jekyll-menus (~> 0.6.1)
236
261
  jekyll-paginate (~> 1.1)
237
- jekyll-paginate-v2 (~> 1.9)
262
+ jekyll-paginate-v2 (~> 3.0)
238
263
  ledger_sync!
239
264
  overcommit (~> 0.57.0)
240
265
  rake (~> 13.0)
241
266
  rspec (~> 3.2)
242
267
  rubocop (= 1.0.0)
268
+ simplecov
269
+ simplecov-lcov
243
270
  webmock
244
271
 
245
272
  BUNDLED WITH
246
- 2.1.4
273
+ 2.2.3
data/README.md CHANGED
@@ -24,3 +24,4 @@ A big thank you to our maintainers:
24
24
  - [@jozefvaclavik](https://github.com/jozefvaclavik)
25
25
  - [@SeanBolt](https://github.com/SeanBolt)
26
26
  - And the whole [Modern Treasury](https://www.moderntreasury.com) team
27
+
data/ledger_sync.gemspec CHANGED
@@ -35,17 +35,19 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency('bundler', '~> 2.1')
36
36
  spec.add_development_dependency('byebug', '>= 0')
37
37
  spec.add_development_dependency('climate_control')
38
- spec.add_development_dependency('coveralls', '~> 0.8.23')
38
+ spec.add_development_dependency('coveralls')
39
39
  spec.add_development_dependency('dotenv')
40
40
  spec.add_development_dependency('factory_bot', '~> 6.1.0')
41
- spec.add_development_dependency('jekyll', '~> 3.8.4')
42
- spec.add_development_dependency('jekyll-menus', '~> 0.6.0')
41
+ spec.add_development_dependency('jekyll', '~> 4.2.0')
42
+ spec.add_development_dependency('jekyll-menus', '~> 0.6.1')
43
43
  spec.add_development_dependency('jekyll-paginate', '~> 1.1')
44
- spec.add_development_dependency('jekyll-paginate-v2', '~> 1.9')
44
+ spec.add_development_dependency('jekyll-paginate-v2', '~> 3.0')
45
45
  spec.add_development_dependency('overcommit', '~> 0.57.0')
46
46
  spec.add_development_dependency('rake', '~> 13.0')
47
47
  spec.add_development_dependency('rspec', '~> 3.2')
48
48
  spec.add_development_dependency('rubocop', '1.0.0')
49
+ spec.add_development_dependency('simplecov')
50
+ spec.add_development_dependency('simplecov-lcov')
49
51
  spec.add_development_dependency('webmock', '>= 0')
50
52
  spec.add_runtime_dependency('activemodel', '>= 0')
51
53
  spec.add_runtime_dependency('colorize', '>= 0')
@@ -58,9 +58,11 @@ module LedgerSync
58
58
  attr_reader :resource
59
59
 
60
60
  def initialize(*args, resource:, **keywords)
61
+ @resource = resource
62
+
61
63
  super(
62
64
  *args,
63
- {
65
+ **{
64
66
  message: "Unknown URL format for #{resource.class}"
65
67
  }.merge(keywords)
66
68
  )
@@ -56,8 +56,8 @@ module LedgerSync
56
56
  )
57
57
  end
58
58
 
59
- def searcher_class_for(*args)
60
- self.class.searcher_class_for(*args)
59
+ def searcher_class_for(*args, **keywords)
60
+ self.class.searcher_class_for(*args, **keywords)
61
61
  end
62
62
 
63
63
  def url_for(*_args)
@@ -93,8 +93,8 @@ module LedgerSync
93
93
  {}
94
94
  end
95
95
 
96
- def operation_class_for(*args)
97
- Client.operation_class_for(*args)
96
+ def operation_class_for(*args, **keywords)
97
+ Client.operation_class_for(*args, **keywords)
98
98
  end
99
99
 
100
100
  def resource_from_ledger_type(type:, converter: nil)
@@ -57,7 +57,7 @@ module LedgerSync
57
57
  # Initialize empty values
58
58
  resource_attributes.each_key { |e| instance_variable_set("@#{e}", nil) }
59
59
 
60
- assign_attributes(data)
60
+ assign_attributes(**data)
61
61
 
62
62
  super()
63
63
  end
@@ -3,12 +3,12 @@
3
3
  module LedgerSync
4
4
  module ResultBase
5
5
  module HelperMethods
6
- def Success(value = nil, *args) # rubocop:disable Naming/MethodName
7
- self::Success.new(value, *args)
6
+ def Success(value = nil, *args, **keywords) # rubocop:disable Naming/MethodName
7
+ self::Success.new(value, *args, **keywords)
8
8
  end
9
9
 
10
- def Failure(error = nil, *args) # rubocop:disable Naming/MethodName
11
- self::Failure.new(error, *args)
10
+ def Failure(error = nil, *args, **keywords) # rubocop:disable Naming/MethodName
11
+ self::Failure.new(error, *args, **keywords)
12
12
  end
13
13
  end
14
14
 
@@ -24,6 +24,12 @@ module LedgerSync
24
24
  end
25
25
 
26
26
  class Result
27
+ module ResultTypeBase
28
+ def initialize(*args, **keywords) # rubocop:disable Lint/UnusedMethodArgument
29
+ super(*args)
30
+ end
31
+ end
32
+
27
33
  include ResultBase
28
34
  end
29
35
 
@@ -37,10 +43,10 @@ module LedgerSync
37
43
  end
38
44
  end
39
45
 
40
- def initialize(*args, operation:, resource:, response:)
41
- @operation = operation
42
- @resource = resource
43
- @response = response
46
+ def initialize(*args, **keywords)
47
+ @operation = keywords.fetch(:operation)
48
+ @resource = keywords.fetch(:resource)
49
+ @response = keywords.fetch(:response)
44
50
  super(*args)
45
51
  end
46
52
  end
@@ -63,10 +69,10 @@ module LedgerSync
63
69
  end
64
70
  end
65
71
 
66
- def initialize(*args, searcher:, **keywords)
72
+ def initialize(*args, searcher:, **keywords) # rubocop:disable Lint/UnusedMethodArgument
67
73
  @resources = searcher.resources
68
74
  @searcher = searcher
69
- super(*args, **keywords)
75
+ super(*args)
70
76
  end
71
77
 
72
78
  def next_searcher
@@ -99,7 +105,7 @@ module LedgerSync
99
105
  end
100
106
  end
101
107
 
102
- def initialize(validator:)
108
+ def initialize(validator, **keywords) # rubocop:disable Lint/UnusedMethodArgument
103
109
  raise 'The argument must be a validator' unless validator.is_a?(Util::Validator)
104
110
 
105
111
  @validator = validator
@@ -39,17 +39,24 @@ module LedgerSync
39
39
 
40
40
  require 'webmock/rspec'
41
41
  require 'simplecov'
42
+ require 'simplecov-lcov'
42
43
  require 'coveralls'
44
+
45
+ SimpleCov::Formatter::LcovFormatter.config do |c|
46
+ c.report_with_single_file = true
47
+ c.single_report_path = 'coverage/lcov.info'
48
+ end
43
49
  Coveralls.wear!('rails')
44
50
 
45
51
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
46
52
  [
47
53
  Coveralls::SimpleCov::Formatter,
48
- SimpleCov::Formatter::HTMLFormatter
54
+ SimpleCov::Formatter::HTMLFormatter,
55
+ SimpleCov::Formatter::LcovFormatter
49
56
  ]
50
57
  )
51
58
 
52
- SimpleCov.start do
59
+ SimpleCov.start('rails') do
53
60
  add_filter 'lib/ledger_sync/util/debug.rb'
54
61
  end
55
62
 
@@ -84,7 +84,7 @@ end
84
84
 
85
85
  FactoryBot.define do
86
86
  skip_create
87
- initialize_with { new(attributes) } # Allows initializing read-only attrs
87
+ initialize_with { new(**attributes) } # Allows initializing read-only attrs
88
88
  end
89
89
 
90
90
  module FactoryBot
@@ -32,7 +32,8 @@ module LedgerSync
32
32
  :reference_many
33
33
  end
34
34
 
35
- def valid?(value:)
35
+ def valid?(args = {})
36
+ value = args.fetch(:value)
36
37
  return false unless value.is_a?(Array)
37
38
  return true if (resource_classes & value.map(&:class)).any?
38
39
  return true if value.is_a?(Array) && value.empty?
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'dotenv'
4
+
3
5
  module LedgerSync
4
6
  module Util
5
7
  class DotenvUpdator
@@ -9,27 +11,29 @@ module LedgerSync
9
11
  @file_path = args.fetch(:file_path, File.join(Dir.pwd, '.env.local'))
10
12
  end
11
13
 
12
- def update(args = {})
14
+ def update(args = {}) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
13
15
  client = args.fetch(:client)
14
16
  prefix = args.fetch(:prefix, "#{client.class.config.root_key.upcase}_")
15
17
 
16
18
  to_save = client.ledger_attributes_to_save.dup.stringify_keys
17
19
 
18
20
  Tempfile.open(".#{File.basename(file_path)}", File.dirname(file_path)) do |tempfile|
19
- File.open(file_path).each do |line|
20
- env_key = line.split('=').first
21
- client_method = env_key.split(prefix).last.downcase
22
-
23
- if line =~ /\A#{prefix}/ && to_save.key?(client_method)
24
- env_value = ENV[env_key]
25
- new_value = to_save.delete(client_method)
26
- tempfile.puts "#{env_key}=#{new_value}"
27
- next if env_value == new_value.to_s
28
-
29
- ENV[env_key] = new_value.to_s
30
- tempfile.puts "# #{env_key}=#{env_value} # Updated on #{Time.now}"
31
- else
32
- tempfile.puts line
21
+ if File.file?(file_path)
22
+ File.open(file_path).each do |line|
23
+ env_key = line.split('=').first
24
+ client_method = env_key.split(prefix).last.downcase
25
+
26
+ if line =~ /\A#{prefix}/ && to_save.key?(client_method)
27
+ env_value = ENV[env_key]
28
+ new_value = to_save.delete(client_method)
29
+ tempfile.puts "#{env_key}=#{new_value}"
30
+ next if env_value == new_value.to_s
31
+
32
+ ENV[env_key] = new_value.to_s
33
+ tempfile.puts "# #{env_key}=#{env_value} # Updated on #{Time.now}"
34
+ else
35
+ tempfile.puts line
36
+ end
33
37
  end
34
38
  end
35
39
 
@@ -40,11 +40,11 @@ module LedgerSync
40
40
  end
41
41
 
42
42
  def failure
43
- ValidationResult.Failure(validator: self)
43
+ ValidationResult.Failure(self)
44
44
  end
45
45
 
46
46
  def success
47
- ValidationResult.Success(validator: self)
47
+ ValidationResult.Success(self)
48
48
  end
49
49
  end
50
50
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # :nocov:
4
4
  module LedgerSync
5
- VERSION = '2.0.0'
5
+ VERSION = '2.2.0'
6
6
 
7
7
  def self.version
8
8
  if ENV['PRE_RELEASE']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ledger_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Jackson
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: coveralls
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.8.23
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.8.23
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: dotenv
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 3.8.4
131
+ version: 4.2.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 3.8.4
138
+ version: 4.2.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: jekyll-menus
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.6.0
145
+ version: 0.6.1
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.6.0
152
+ version: 0.6.1
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: jekyll-paginate
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '1.9'
173
+ version: '3.0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '1.9'
180
+ version: '3.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: overcommit
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +234,34 @@ dependencies:
234
234
  - - '='
235
235
  - !ruby/object:Gem::Version
236
236
  version: 1.0.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: simplecov-lcov
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
237
265
  - !ruby/object:Gem::Dependency
238
266
  name: webmock
239
267
  requirement: !ruby/object:Gem::Requirement
@@ -816,11 +844,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
816
844
  version: 2.5.8
817
845
  required_rubygems_version: !ruby/object:Gem::Requirement
818
846
  requirements:
819
- - - ">"
847
+ - - ">="
820
848
  - !ruby/object:Gem::Version
821
- version: 1.3.1
849
+ version: '0'
822
850
  requirements: []
823
- rubygems_version: 3.0.3
851
+ rubyforge_project:
852
+ rubygems_version: 2.7.6.2
824
853
  signing_key:
825
854
  specification_version: 4
826
855
  summary: Sync common objects to accounting software.