trailblazer-finder 0.90.0 → 0.91.0

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: 0c3605d464db4d05bd07e54aec870bd62820657704a730ebc02d11f904dcd964
4
- data.tar.gz: e0c677b1cf39def27bef24b5787cf0cc6a475afb9adf227baa77315ee447208b
3
+ metadata.gz: 299e4ce460407b5ae703246c2c0cd3a9306560a3d540be1ded926a1cc892456e
4
+ data.tar.gz: 470abe97adffcaa66406a2013bae3990ad6a2d82e89132f7cb0ca157b038458e
5
5
  SHA512:
6
- metadata.gz: 251cf565e7ca50200c70a997bbbe8c96d28232b28d8bd8001129612194ee2065f57b6198b965cb60f19420f988ad1af17cdcd50c4ad23a50d6eff2241d4a2845
7
- data.tar.gz: dcad67e86a906c097f00b88b6b051b296819287a1401db159c401121142e794028a0a0406b8836fc74f590c368ac6a21045f39ed869d36e7b1f6642495c8ae91
6
+ metadata.gz: 4585a52d42fc8e86dd0570c2e30e290a1af08ffce6ab965e4ed674011e909006a9bd3c7ec45408a7485536e080b150d90a731e6f37c2e31d2483e6f8be5bf049
7
+ data.tar.gz: 75a02a268b5ce8d2fa02a47cf3b9f2c5fc90b08f94920c03136c5ec6070b822ce58a1716ea92a99f375b56916433577bc778d9d0e87a2f1049f96c2969223af0
@@ -9,16 +9,17 @@ module Trailblazer
9
9
  end
10
10
 
11
11
  def validate_adapter(_ctx, adapter:, **)
12
- (ORM_ADAPTERS + ["Basic"]).include? adapter.to_s
12
+ ORM_ADAPTERS.(adapter.to_s)
13
13
  end
14
14
 
15
- def invalid?((ctx, _flow_options), **_circuit_options)
15
+ def invalid?(_e, (ctx, _flow_options), **_circuit_options)
16
16
  (ctx[:errors] ||= []) << {adapter: "The specified adapter are invalid"}
17
17
  end
18
18
 
19
19
  step :set_adapter
20
- step :validate_adapter
21
- fail :invalid?
20
+ step Rescue(Dry::Types::ConstraintError, handler: :invalid?) {
21
+ step :validate_adapter
22
+ }
22
23
  end
23
24
  end
24
25
  end
@@ -17,8 +17,8 @@ module Trailblazer
17
17
  def set_paginator(ctx, **)
18
18
  paginator = ctx.dig(:config, :paginator)
19
19
  return true unless paginator
20
- return false unless ORM_ADAPTERS.include?(ctx[:orm][:adapter])
21
- return false unless PAGING_ADAPTERS.include?(paginator)
20
+ return false unless EXT_ORM_ADAPTERS.(ctx[:orm][:adapter])
21
+ return false unless PAGING_ADAPTERS.(paginator)
22
22
 
23
23
  ctx[:orm][:paging] = "Trailblazer::Finder::Adapters::#{paginator}::Paging"
24
24
  true
@@ -33,9 +33,15 @@ module Trailblazer
33
33
  }
34
34
  end
35
35
 
36
+ def invalid_paginator_handler(_e, (ctx, _flow_options), **)
37
+ invalid_paginator_error(ctx)
38
+ end
39
+
36
40
  step :set_adapter, fast_track: true
37
- step :set_paginator
38
- fail :invalid_paginator_error
41
+ step Rescue(Dry::Types::ConstraintError, handler: :invalid_paginator_handler) {
42
+ step :set_paginator
43
+ fail :invalid_paginator_error
44
+ }
39
45
  end
40
46
  end
41
47
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  module Trailblazer
4
4
  class Finder
5
- ORM_ADAPTERS = %w[ActiveRecord Sequel].freeze
6
- PAGING_ADAPTERS = %w[Kaminari WillPaginate].freeze
7
5
 
8
6
  module Base
9
7
  def self.included(base)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trailblazer
4
4
  class Finder
5
- VERSION = "0.90.0"
5
+ VERSION = "0.91.0"
6
6
  end
7
7
  end
@@ -5,37 +5,40 @@ require "trailblazer"
5
5
  require "dry-types"
6
6
  require "ostruct"
7
7
 
8
- require "trailblazer/finder/utils/array"
9
- require "trailblazer/finder/utils/hash"
10
- require "trailblazer/finder/utils/string"
11
- require "trailblazer/finder/utils/splitter"
12
- require "trailblazer/finder/utils/extra"
13
- require "trailblazer/finder/adapters/active_record/predicates"
14
- require "trailblazer/finder/adapters/active_record/paging"
15
- require "trailblazer/finder/adapters/active_record/sorting"
16
- require "trailblazer/finder/adapters/kaminari/paging"
17
- require "trailblazer/finder/adapters/will_paginate/paging"
18
- require "trailblazer/finder/adapters/sequel/predicates"
19
- require "trailblazer/finder/adapters/sequel/paging"
20
- require "trailblazer/finder/adapters/sequel/sorting"
21
- require "trailblazer/finder/adapters/basic/predicates"
22
- require "trailblazer/finder/adapters/basic/paging"
23
- require "trailblazer/finder/adapters/basic/sorting"
24
- require "trailblazer/finder/activities/prepare"
25
- require "trailblazer/finder/activities/process"
26
- require "trailblazer/finder/activities/find"
27
- require "trailblazer/finder/helpers/basic"
28
- require "trailblazer/finder/helpers/sorting"
29
- require "trailblazer/finder/dsl"
30
- require "trailblazer/finder/find"
31
- require "trailblazer/finder/base"
32
- require "trailblazer/operation/finder"
8
+ require_relative "finder/utils/array"
9
+ require_relative "finder/utils/hash"
10
+ require_relative "finder/utils/string"
11
+ require_relative "finder/utils/splitter"
12
+ require_relative "finder/utils/extra"
13
+ require_relative "finder/adapters/active_record/predicates"
14
+ require_relative "finder/adapters/active_record/paging"
15
+ require_relative "finder/adapters/active_record/sorting"
16
+ require_relative "finder/adapters/kaminari/paging"
17
+ require_relative "finder/adapters/will_paginate/paging"
18
+ require_relative "finder/adapters/sequel/predicates"
19
+ require_relative "finder/adapters/sequel/paging"
20
+ require_relative "finder/adapters/sequel/sorting"
21
+ require_relative "finder/adapters/basic/predicates"
22
+ require_relative "finder/adapters/basic/paging"
23
+ require_relative "finder/adapters/basic/sorting"
24
+ require_relative "finder/activities/prepare"
25
+ require_relative "finder/activities/process"
26
+ require_relative "finder/activities/find"
27
+ require_relative "finder/helpers/basic"
28
+ require_relative "finder/helpers/sorting"
29
+ require_relative "finder/dsl"
30
+ require_relative "finder/find"
31
+ require_relative "finder/base"
32
+ require_relative "operation/finder"
33
33
 
34
34
  module Trailblazer
35
35
  class Finder
36
36
  module Types
37
37
  include Dry.Types(default: :nominal)
38
38
  end
39
+ EXT_ORM_ADAPTERS = Types::Strict::String.enum("ActiveRecord", "Sequel")
40
+ ORM_ADAPTERS = EXT_ORM_ADAPTERS | Types::Strict::String.enum("Basic")
41
+ PAGING_ADAPTERS = Types::Strict::String.enum("Kaminari", "WillPaginate")
39
42
 
40
43
  include Base
41
44
  end
@@ -1,7 +1,7 @@
1
1
  module Trailblazer
2
2
  class Operation
3
3
  def self.Finder(finder_class, action = nil, entity = nil)
4
- task = Trailblazer::Activity::TaskBuilder::Binary(Finder.new)
4
+ task = Trailblazer::Activity::Circuit::TaskAdapter.for_step(Finder.new, binary: true)
5
5
  injections = [
6
6
  :params,
7
7
  {:"finder.class" => ->(*) { finder_class }},
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.90.0
4
+ version: 0.91.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-06-07 00:00:00.000000000 Z
13
+ date: 2024-01-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dry-types
@@ -111,21 +111,7 @@ dependencies:
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  - !ruby/object:Gem::Dependency
114
- name: rspec
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: '3.5'
120
- type: :development
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '3.5'
127
- - !ruby/object:Gem::Dependency
128
- name: rspec_junit_formatter
114
+ name: maxitest
129
115
  requirement: !ruby/object:Gem::Requirement
130
116
  requirements:
131
117
  - - ">="
@@ -139,21 +125,7 @@ dependencies:
139
125
  - !ruby/object:Gem::Version
140
126
  version: '0'
141
127
  - !ruby/object:Gem::Dependency
142
- name: rspec-mocks
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '3.5'
148
- type: :development
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: '3.5'
155
- - !ruby/object:Gem::Dependency
156
- name: rubocop
128
+ name: sequel
157
129
  requirement: !ruby/object:Gem::Requirement
158
130
  requirements:
159
131
  - - ">="
@@ -167,7 +139,7 @@ dependencies:
167
139
  - !ruby/object:Gem::Version
168
140
  version: '0'
169
141
  - !ruby/object:Gem::Dependency
170
- name: rubocop-rspec
142
+ name: simplecov
171
143
  requirement: !ruby/object:Gem::Requirement
172
144
  requirements:
173
145
  - - ">="
@@ -181,21 +153,21 @@ dependencies:
181
153
  - !ruby/object:Gem::Version
182
154
  version: '0'
183
155
  - !ruby/object:Gem::Dependency
184
- name: sequel
156
+ name: trailblazer
185
157
  requirement: !ruby/object:Gem::Requirement
186
158
  requirements:
187
- - - ">="
159
+ - - "~>"
188
160
  - !ruby/object:Gem::Version
189
- version: '0'
161
+ version: 2.1.0
190
162
  type: :development
191
163
  prerelease: false
192
164
  version_requirements: !ruby/object:Gem::Requirement
193
165
  requirements:
194
- - - ">="
166
+ - - "~>"
195
167
  - !ruby/object:Gem::Version
196
- version: '0'
168
+ version: 2.1.0
197
169
  - !ruby/object:Gem::Dependency
198
- name: simplecov
170
+ name: trailblazer-developer
199
171
  requirement: !ruby/object:Gem::Requirement
200
172
  requirements:
201
173
  - - ">="
@@ -209,21 +181,7 @@ dependencies:
209
181
  - !ruby/object:Gem::Version
210
182
  version: '0'
211
183
  - !ruby/object:Gem::Dependency
212
- name: trailblazer
213
- requirement: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - "~>"
216
- - !ruby/object:Gem::Version
217
- version: 2.1.0
218
- type: :development
219
- prerelease: false
220
- version_requirements: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - "~>"
223
- - !ruby/object:Gem::Version
224
- version: 2.1.0
225
- - !ruby/object:Gem::Dependency
226
- name: trailblazer-developer
184
+ name: will_paginate
227
185
  requirement: !ruby/object:Gem::Requirement
228
186
  requirements:
229
187
  - - ">="
@@ -237,7 +195,7 @@ dependencies:
237
195
  - !ruby/object:Gem::Version
238
196
  version: '0'
239
197
  - !ruby/object:Gem::Dependency
240
- name: will_paginate
198
+ name: minitest-trailblazer
241
199
  requirement: !ruby/object:Gem::Requirement
242
200
  requirements:
243
201
  - - ">="
@@ -298,11 +256,11 @@ files:
298
256
  - lib/trailblazer/finder/utils/string.rb
299
257
  - lib/trailblazer/finder/version.rb
300
258
  - lib/trailblazer/operation/finder.rb
301
- - trailblazer-finder.gemspec
302
- homepage: http://trailblazer.to
259
+ homepage: https://trailblazer.to
303
260
  licenses:
304
261
  - LGPL-3.0
305
- metadata: {}
262
+ metadata:
263
+ rubygems_mfa_required: 'true'
306
264
  post_install_message:
307
265
  rdoc_options: []
308
266
  require_paths:
@@ -318,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
276
  - !ruby/object:Gem::Version
319
277
  version: '0'
320
278
  requirements: []
321
- rubygems_version: 3.2.22
279
+ rubygems_version: 3.4.22
322
280
  signing_key:
323
281
  specification_version: 4
324
282
  summary: Trailblazer based finder objects. It is designed to be used on its own as
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path("lib", __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "trailblazer/finder/version"
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = "trailblazer-finder"
9
- spec.version = Trailblazer::Finder::VERSION
10
- spec.description = "Trailblazer Finder Objects"
11
- spec.summary = "Trailblazer based finder objects. It is designed to be used on its own as a separate gem. It was influenced by popular Ransack gem, but in addition to ActiveRecord, it can be used with Sequel, Hash objects, and RomRB."
12
- spec.authors = ["Nick Sutterer", "Marc Tich", "Abdelkader Boudih"]
13
- spec.email = %w[apotonick@gmail.com marc@mudsu.com terminale@gmail.com]
14
- spec.homepage = "http://trailblazer.to"
15
- spec.license = "LGPL-3.0"
16
- spec.files = Dir.glob("lib/**/*")
17
- spec.files << ["trailblazer-finder.gemspec"]
18
- spec.test_files = spec.files.grep(%r{^(test)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_dependency "dry-types", ">= 1.0.0"
22
- spec.add_dependency "trailblazer-activity", ">= 0.13.0"
23
-
24
- spec.add_development_dependency "activerecord"
25
- spec.add_development_dependency "bundler"
26
- spec.add_development_dependency "kaminari"
27
- spec.add_development_dependency "kaminari-activerecord"
28
- spec.add_development_dependency "rake"
29
- spec.add_development_dependency "rspec", "~> 3.5"
30
- spec.add_development_dependency "rspec_junit_formatter"
31
- spec.add_development_dependency "rspec-mocks", "~> 3.5"
32
- spec.add_development_dependency "rubocop"
33
- spec.add_development_dependency "rubocop-rspec"
34
- spec.add_development_dependency "sequel"
35
- spec.add_development_dependency "simplecov"
36
- spec.add_development_dependency "trailblazer", "~> 2.1.0"
37
- spec.add_development_dependency "trailblazer-developer"
38
- spec.add_development_dependency "will_paginate"
39
-
40
- spec.required_ruby_version = ">= 2.5.0"
41
- end