trailblazer-finder 0.50.0 → 0.70.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +16 -0
  3. data/.rubocop.yml +7 -1
  4. data/CHANGES.md +6 -0
  5. data/Gemfile +3 -1
  6. data/Rakefile +0 -6
  7. data/lib/trailblazer/finder/activities/find.rb +16 -16
  8. data/lib/trailblazer/finder/activities/prepare_adapter.rb +2 -3
  9. data/lib/trailblazer/finder/activities/prepare_entity.rb +2 -2
  10. data/lib/trailblazer/finder/activities/prepare_paging.rb +2 -2
  11. data/lib/trailblazer/finder/activities/prepare_properties.rb +1 -5
  12. data/lib/trailblazer/finder/activities/process_adapters.rb +8 -2
  13. data/lib/trailblazer/finder/adapters/active_record/paging.rb +1 -1
  14. data/lib/trailblazer/finder/adapters/active_record/predicates.rb +14 -14
  15. data/lib/trailblazer/finder/adapters/active_record/sorting.rb +1 -1
  16. data/lib/trailblazer/finder/adapters/basic/paging.rb +1 -1
  17. data/lib/trailblazer/finder/adapters/basic/predicates.rb +14 -14
  18. data/lib/trailblazer/finder/adapters/basic/sorting.rb +1 -1
  19. data/lib/trailblazer/finder/adapters/kaminari/paging.rb +1 -1
  20. data/lib/trailblazer/finder/adapters/sequel/paging.rb +1 -1
  21. data/lib/trailblazer/finder/adapters/sequel/predicates.rb +14 -14
  22. data/lib/trailblazer/finder/adapters/sequel/sorting.rb +1 -1
  23. data/lib/trailblazer/finder/adapters/will_paginate/paging.rb +1 -1
  24. data/lib/trailblazer/finder/dsl.rb +1 -1
  25. data/lib/trailblazer/finder/find.rb +2 -1
  26. data/lib/trailblazer/finder/helpers/sorting.rb +4 -1
  27. data/lib/trailblazer/finder/version.rb +1 -1
  28. data/lib/trailblazer/finder.rb +1 -7
  29. data/lib/trailblazer/operation/finder.rb +2 -2
  30. data/spec/spec_helper.rb +0 -1
  31. data/spec/trailblazer/finder/adapters/active_record_spec.rb +4 -4
  32. data/spec/trailblazer/finder/adapters/basic_spec.rb +12 -3
  33. data/spec/trailblazer/finder/adapters/kaminari_spec.rb +1 -1
  34. data/spec/trailblazer/finder/adapters/sequel_spec.rb +4 -4
  35. data/spec/trailblazer/operation/finder_spec.rb +0 -1
  36. data/trailblazer-finder.gemspec +4 -5
  37. metadata +20 -34
  38. data/.travis.yml +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cfcac8d017065a8faea558faebaa1bd9e742b7ceb9444a50eafd79d2c759bbfc
4
- data.tar.gz: fdfafe463cba185afb34934f981b3428bb357a4031f941e22cb44e1c45608e11
3
+ metadata.gz: 39f554fa2720ae7fe8f7bdc61eb44e636167a7ec85cb4c0b47da5027f80d4c3e
4
+ data.tar.gz: 83e4e41732b0c4fef9d4d5793e3f6de7ad6b66086c906854127e6018f7a7eaa5
5
5
  SHA512:
6
- metadata.gz: 89c313cc891e5ef6b1d6e07145e23541d74698b543e47f4213d621e21925ec18c60d01d66cdbc2c6fe9d2ddbbfc4d5ef201f1bb80a1264ffe70c01f3e37772e0
7
- data.tar.gz: 2a00366ecc9c10ae045ce1d1c69f455cc7a8b101be8bb360228cf8cb148833502ea6039ce30740781bd93f97c8cabf878a6129beeb072c9e4e6e0b13b5c3128f
6
+ metadata.gz: d8e69bb8c68980e657d2399fb1e6b50d63b1538e38346eb1a40465e60737940f431c052689a29c3b4ca9fdfc69b6e7d26f49f59db015e30beb5ba736522e81e5
7
+ data.tar.gz: 9fe89ed1a67614bff0a9d5a69242972ce4bd219b0d20e72bb0d356637f7dbc9c2f3ea6e27fd32eb42c32e5502e67716545f4be5e9498a3d94c3863c92e4db1e0
@@ -0,0 +1,16 @@
1
+ name: CI
2
+ on: [push, pull_request]
3
+ jobs:
4
+ test:
5
+ strategy:
6
+ fail-fast: false
7
+ matrix:
8
+ ruby: [2.5, 2.6, 2.7, '3.0']
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: ${{ matrix.ruby }}
15
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
16
+ - run: bundle exec rake
data/.rubocop.yml CHANGED
@@ -2,4 +2,10 @@ require: rubocop-rspec
2
2
 
3
3
  inherit_from:
4
4
  - https://raw.githubusercontent.com/trailblazer/meta/master/rubocop.yml
5
- - .rubocop_todo.yml
5
+
6
+ RSpec/ExampleLength:
7
+ Enabled: false
8
+ RSpec/MultipleExpectations:
9
+ Enabled: false
10
+ Layout/LineLength:
11
+ Enabled: false
data/CHANGES.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 0.70.0
2
+ * Drop Support Legacy Dry-types
3
+
4
+ # 0.60.0
5
+ * Support Ruby 3.0
6
+
1
7
  # 0.50.0
2
8
  * Breaking change: Use adapter and paginator configs instead of mixing them in adapters config.
3
9
 
data/Gemfile CHANGED
@@ -4,7 +4,9 @@ source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
6
 
7
- gem "pry-byebug"
7
+ gem "debug", platform: :mri
8
+ gem "jdbc-sqlite3", :platform => :jruby
9
+ gem "sqlite3", platform: :mri
8
10
 
9
11
  # Had to add this for a bit, since none of the latest changes have been pushed to gems yet
10
12
  # gem "trailblazer", github: "trailblazer/trailblazer"
data/Rakefile CHANGED
@@ -16,12 +16,6 @@ end
16
16
 
17
17
  RuboCop::RakeTask.new(:rubocop)
18
18
 
19
- desc "Remove temporary files"
20
- task :clean do
21
- `rm -rf *.gem doc pkg coverage test-reports`
22
- %x(rm -f `find . -name '*.rbc'`)
23
- end
24
-
25
19
  desc "Build the gem"
26
20
  task :gem do
27
21
  `gem build trailblazer-finder.gemspec`
@@ -6,8 +6,7 @@ module Trailblazer
6
6
  class Find < Trailblazer::Activity::Railway
7
7
  PREDICATES = %w[eq not_eq blank not_blank lt lte gt gte sw not_sw ew not_ew cont not_cont].freeze
8
8
 
9
-
10
- def process_params(ctx, params:, **)
9
+ def process_params(ctx, params:, **)
11
10
  params.each do |attribute, value|
12
11
  result = {}
13
12
  filter_attribute = attribute.to_sym
@@ -31,23 +30,24 @@ module Trailblazer
31
30
  step :set_finder
32
31
 
33
32
  private
34
- def fetch_filters(ctx, result, attribute)
35
- filter_attribute = ctx[:filters][attribute]
36
- result[:filter] = {}
37
- result[:name] = attribute
38
- result[:filter][:handler] = filter_attribute[:with] || filter_attribute[:block]
39
- end
40
33
 
41
- def fetch_properties(result, attribute, value, properties)
42
- splitter = Utils::Splitter.new attribute, value
43
- PREDICATES.each do |predicate|
44
- next unless splitter.split_key predicate
45
- next unless properties.include?(splitter.field.to_sym)
34
+ def fetch_filters(ctx, result, attribute)
35
+ filter_attribute = ctx[:filters][attribute]
36
+ result[:filter] = {}
37
+ result[:name] = attribute
38
+ result[:filter][:handler] = filter_attribute[:with] || filter_attribute[:block]
39
+ end
46
40
 
47
- result[:name] = splitter.field
48
- result[:predicate] = predicate
49
- end
41
+ def fetch_properties(result, attribute, value, properties)
42
+ splitter = Utils::Splitter.new attribute, value
43
+ PREDICATES.each do |predicate|
44
+ next unless splitter.split_key predicate
45
+ next unless properties.include?(splitter.field.to_sym)
46
+
47
+ result[:name] = splitter.field
48
+ result[:predicate] = predicate
50
49
  end
50
+ end
51
51
  end
52
52
  end
53
53
  end
@@ -4,7 +4,6 @@ module Trailblazer
4
4
  class Finder
5
5
  module Activities
6
6
  class PrepareAdapter < Trailblazer::Activity::Railway
7
-
8
7
  def set_adapter(ctx, **)
9
8
  ctx[:adapter] = ctx.dig(:config, :adapter) || "Basic"
10
9
  end
@@ -13,13 +12,13 @@ module Trailblazer
13
12
  (ORM_ADAPTERS + ["Basic"]).include? adapter.to_s
14
13
  end
15
14
 
16
- def is_invalid?((ctx, _flow_options), **_circuit_options)
15
+ def invalid?((ctx, _flow_options), **_circuit_options)
17
16
  (ctx[:errors] ||= []) << {adapter: "The specified adapter are invalid"}
18
17
  end
19
18
 
20
19
  step :set_adapter
21
20
  step :validate_adapter
22
- fail :is_invalid?
21
+ fail :invalid?
23
22
  end
24
23
  end
25
24
  end
@@ -5,7 +5,7 @@ module Trailblazer
5
5
  module Activities
6
6
  class PrepareEntity < Trailblazer::Activity::Railway
7
7
  def validate_entity(ctx, **)
8
- ctx.dig(:options,:entity) || ctx.dig(:config,:entity)
8
+ ctx.dig(:options, :entity) || ctx.dig(:config, :entity)
9
9
  end
10
10
 
11
11
  def invalid_entity_error(ctx, **)
@@ -13,7 +13,7 @@ module Trailblazer
13
13
  end
14
14
 
15
15
  def set_entity(ctx, **)
16
- ctx[:entity] = ctx.dig(:options,:entity) || instance_eval(&ctx[:config][:entity])
16
+ ctx[:entity] = ctx.dig(:options, :entity) || instance_eval(&ctx[:config][:entity])
17
17
  end
18
18
 
19
19
  step :validate_entity
@@ -12,8 +12,8 @@ module Trailblazer
12
12
  end
13
13
 
14
14
  def set_paging(ctx, **)
15
- ctx[:paging] = ctx.dig(:config,:paging) || {}
16
- ctx[:paging][:current_page] = ctx.dig(:params,:page) || 1
15
+ ctx[:paging] = ctx.dig(:config, :paging) || {}
16
+ ctx[:paging][:current_page] = ctx.dig(:params, :page) || 1
17
17
  return true unless ctx[:params][:per_page]
18
18
 
19
19
  ctx[:paging][:per_page] = ctx[:params][:per_page].to_i || ctx[:paging][:per_page]
@@ -18,11 +18,7 @@ module Trailblazer
18
18
  return true if properties.empty?
19
19
 
20
20
  properties.each do |key, _value|
21
- if LEGACY_DRY_TYPES
22
- return properties[key][:type].class.ancestors.include?(::Dry::Types::Definition)
23
- else
24
- return properties[key][:type].class.ancestors.include?(::Dry::Types::Nominal)
25
- end
21
+ return properties[key][:type].class.ancestors.include?(::Dry::Types::Nominal)
26
22
  end
27
23
  end
28
24
 
@@ -4,7 +4,7 @@ module Trailblazer
4
4
  class Finder
5
5
  module Activities
6
6
  class ProcessAdapters < Trailblazer::Activity::Railway
7
- def set_adapter((ctx, flow_options), **)
7
+ def set_adapter((ctx, _flow_options), **)
8
8
  adapter = ctx[:adapter]
9
9
  ctx[:orm] = {}
10
10
  ctx[:orm][:adapter] = adapter
@@ -19,12 +19,18 @@ module Trailblazer
19
19
  return true unless paginator
20
20
  return false unless ORM_ADAPTERS.include?(ctx[:orm][:adapter])
21
21
  return false unless PAGING_ADAPTERS.include?(paginator)
22
+
22
23
  ctx[:orm][:paging] = "Trailblazer::Finder::Adapters::#{paginator}::Paging"
23
24
  true
24
25
  end
25
26
 
26
27
  def invalid_paginator_error(ctx, **)
27
- (ctx[:errors] ||= []) << {paginator: "Can't use paginator #{ctx.dig(:config, :paginator)} without using an ORM like ActiveRecord or Sequel"}
28
+ (ctx[:errors] ||= []) << {
29
+ paginator: "Can't use paginator #{ctx.dig(
30
+ :config,
31
+ :paginator
32
+ )} without using an ORM like ActiveRecord or Sequel"
33
+ }
28
34
  end
29
35
 
30
36
  step :set_adapter, fast_track: true
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_paging_handler
13
- lambda do |current_page, per_page, entity|
13
+ ->(current_page, per_page, entity) do
14
14
  entity.limit(per_page).offset(([current_page, 1].max - 1) * per_page)
15
15
  end
16
16
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_eq_handler
13
- lambda do |entity, attribute, value|
13
+ ->(entity, attribute, value) do
14
14
  return if Utils::String.blank?(value.to_s)
15
15
 
16
16
  entity.where(attribute => value)
@@ -18,7 +18,7 @@ module Trailblazer
18
18
  end
19
19
 
20
20
  def set_not_eq_handler
21
- lambda do |entity, attribute, value|
21
+ ->(entity, attribute, value) do
22
22
  return if Utils::String.blank?(value.to_s)
23
23
 
24
24
  entity.where.not(attribute => value)
@@ -26,73 +26,73 @@ module Trailblazer
26
26
  end
27
27
 
28
28
  def set_blank_handler
29
- lambda do |entity, attribute, _value|
29
+ ->(entity, attribute, _value) do
30
30
  entity.where(attribute.to_sym => [nil, ""])
31
31
  end
32
32
  end
33
33
 
34
34
  def set_not_blank_handler
35
- lambda do |entity, attribute, _value|
35
+ ->(entity, attribute, _value) do
36
36
  entity.where.not(attribute.to_sym => [nil, ""])
37
37
  end
38
38
  end
39
39
 
40
40
  def set_gt_handler
41
- lambda do |entity, attribute, value|
41
+ ->(entity, attribute, value) do
42
42
  entity.where("#{attribute} > ?", value.to_f)
43
43
  end
44
44
  end
45
45
 
46
46
  def set_gte_handler
47
- lambda do |entity, attribute, value|
47
+ ->(entity, attribute, value) do
48
48
  entity.where("#{attribute} >= ?", value.to_f)
49
49
  end
50
50
  end
51
51
 
52
52
  def set_lt_handler
53
- lambda do |entity, attribute, value|
53
+ ->(entity, attribute, value) do
54
54
  entity.where("#{attribute} < ?", value.to_f)
55
55
  end
56
56
  end
57
57
 
58
58
  def set_lte_handler
59
- lambda do |entity, attribute, value|
59
+ ->(entity, attribute, value) do
60
60
  entity.where("#{attribute} <= ?", value.to_f)
61
61
  end
62
62
  end
63
63
 
64
64
  def set_cont_handler
65
- lambda do |entity, attribute, value|
65
+ ->(entity, attribute, value) do
66
66
  entity.where("#{attribute} LIKE ?", "%#{value}%")
67
67
  end
68
68
  end
69
69
 
70
70
  def set_not_cont_handler
71
- lambda do |entity, attribute, value|
71
+ ->(entity, attribute, value) do
72
72
  entity.where("#{attribute} NOT LIKE ?", "%#{value}%")
73
73
  end
74
74
  end
75
75
 
76
76
  def set_sw_handler
77
- lambda do |entity, attribute, value|
77
+ ->(entity, attribute, value) do
78
78
  entity.where("#{attribute} LIKE ?", "#{value}%")
79
79
  end
80
80
  end
81
81
 
82
82
  def set_not_sw_handler
83
- lambda do |entity, attribute, value|
83
+ ->(entity, attribute, value) do
84
84
  entity.where("#{attribute} NOT LIKE ?", "#{value}%")
85
85
  end
86
86
  end
87
87
 
88
88
  def set_ew_handler
89
- lambda do |entity, attribute, value|
89
+ ->(entity, attribute, value) do
90
90
  entity.where("#{attribute} LIKE ?", "%#{value}")
91
91
  end
92
92
  end
93
93
 
94
94
  def set_not_ew_handler
95
- lambda do |entity, attribute, value|
95
+ ->(entity, attribute, value) do
96
96
  entity.where("#{attribute} NOT LIKE ?", "%#{value}")
97
97
  end
98
98
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_sorting_handler
13
- lambda do |sort_attributes, entity|
13
+ ->(sort_attributes, entity) do
14
14
  sort_attributes.delete(:handler)
15
15
  attributes = []
16
16
  sort_attributes.each do |attr|
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_paging_handler
13
- lambda do |current_page, per_page, entity|
13
+ ->(current_page, per_page, entity) do
14
14
  entity.drop(([current_page, 1].max - 1) * per_page).first(per_page)
15
15
  end
16
16
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_eq_handler
13
- lambda do |entity, attribute, value|
13
+ ->(entity, attribute, value) do
14
14
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
15
15
 
16
16
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_s == value.to_s && !v.nil? }, entity
@@ -18,7 +18,7 @@ module Trailblazer
18
18
  end
19
19
 
20
20
  def set_not_eq_handler
21
- lambda do |entity, attribute, value|
21
+ ->(entity, attribute, value) do
22
22
  return if Utils::String.blank?(value.to_s)
23
23
 
24
24
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_s != value.to_s && !v.nil? }, entity
@@ -26,43 +26,43 @@ module Trailblazer
26
26
  end
27
27
 
28
28
  def set_blank_handler
29
- lambda do |entity, attribute, _value|
29
+ ->(entity, attribute, _value) do
30
30
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && Utils::String.blank?(v.to_s) }, entity
31
31
  end
32
32
  end
33
33
 
34
34
  def set_not_blank_handler
35
- lambda do |entity, attribute, _value|
35
+ ->(entity, attribute, _value) do
36
36
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && !Utils::String.blank?(v.to_s) }, entity
37
37
  end
38
38
  end
39
39
 
40
40
  def set_gt_handler
41
- lambda do |entity, attribute, value|
41
+ ->(entity, attribute, value) do
42
42
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_f > value.to_f }, entity
43
43
  end
44
44
  end
45
45
 
46
46
  def set_gte_handler
47
- lambda do |entity, attribute, value|
47
+ ->(entity, attribute, value) do
48
48
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_f >= value.to_f }, entity
49
49
  end
50
50
  end
51
51
 
52
52
  def set_lt_handler
53
- lambda do |entity, attribute, value|
53
+ ->(entity, attribute, value) do
54
54
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_f < value.to_f }, entity
55
55
  end
56
56
  end
57
57
 
58
58
  def set_lte_handler
59
- lambda do |entity, attribute, value|
59
+ ->(entity, attribute, value) do
60
60
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_i <= value.to_f }, entity
61
61
  end
62
62
  end
63
63
 
64
64
  def set_cont_handler
65
- lambda do |entity, attribute, value|
65
+ ->(entity, attribute, value) do
66
66
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
67
67
 
68
68
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_s.include?(value.to_s) && !v.nil? }, entity
@@ -70,7 +70,7 @@ module Trailblazer
70
70
  end
71
71
 
72
72
  def set_not_cont_handler
73
- lambda do |entity, attribute, value|
73
+ ->(entity, attribute, value) do
74
74
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
75
75
 
76
76
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && !v.to_s.include?(value.to_s) && !v.nil? }, entity
@@ -78,7 +78,7 @@ module Trailblazer
78
78
  end
79
79
 
80
80
  def set_sw_handler
81
- lambda do |entity, attribute, value|
81
+ ->(entity, attribute, value) do
82
82
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
83
83
 
84
84
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_s.start_with?(value.to_s) && !v.nil? }, entity
@@ -86,7 +86,7 @@ module Trailblazer
86
86
  end
87
87
 
88
88
  def set_not_sw_handler
89
- lambda do |entity, attribute, value|
89
+ ->(entity, attribute, value) do
90
90
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
91
91
 
92
92
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && !v.to_s.start_with?(value.to_s) && !v.nil? }, entity
@@ -94,7 +94,7 @@ module Trailblazer
94
94
  end
95
95
 
96
96
  def set_ew_handler
97
- lambda do |entity, attribute, value|
97
+ ->(entity, attribute, value) do
98
98
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
99
99
 
100
100
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && v.to_s.end_with?(value.to_s) && !v.nil? }, entity
@@ -102,7 +102,7 @@ module Trailblazer
102
102
  end
103
103
 
104
104
  def set_not_ew_handler
105
- lambda do |entity, attribute, value|
105
+ ->(entity, attribute, value) do
106
106
  return if Utils::String.blank?(value.to_s) || Utils::String.blank?(attribute.to_s)
107
107
 
108
108
  Utils::Hash.deep_locate ->(k, v, _) { k == attribute.to_sym && !v.to_s.end_with?(value.to_s) && !v.nil? }, entity
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_sorting_handler
13
- lambda do |sort_attributes, entity|
13
+ ->(sort_attributes, entity) do
14
14
  sort_attributes.delete(:handler)
15
15
  attributes = []
16
16
  sort_attributes.each do |attr|
@@ -9,7 +9,7 @@ module Trailblazer
9
9
  module_function
10
10
 
11
11
  def set_paging_handler
12
- lambda do |current_page, per_page, entity|
12
+ ->(current_page, per_page, entity) do
13
13
  entity.page(current_page).per(per_page)
14
14
  end
15
15
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_paging_handler
13
- lambda do |current_page, per_page, entity|
13
+ ->(current_page, per_page, entity) do
14
14
  entity.limit(per_page).offset(([current_page, 1].max - 1) * per_page)
15
15
  end
16
16
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_eq_handler
13
- lambda do |entity, attribute, value|
13
+ ->(entity, attribute, value) do
14
14
  return if Utils::String.blank?(value.to_s)
15
15
 
16
16
  entity.where { ::Sequel[attribute.to_sym] =~ value }
@@ -18,7 +18,7 @@ module Trailblazer
18
18
  end
19
19
 
20
20
  def set_not_eq_handler
21
- lambda do |entity, attribute, value|
21
+ ->(entity, attribute, value) do
22
22
  return if Utils::String.blank?(value.to_s)
23
23
 
24
24
  entity.where { ::Sequel[attribute.to_sym] !~ value }
@@ -26,74 +26,74 @@ module Trailblazer
26
26
  end
27
27
 
28
28
  def set_blank_handler
29
- lambda do |entity, attribute, _value|
29
+ ->(entity, attribute, _value) do
30
30
  entity.where { ::Sequel.|({::Sequel[attribute.to_sym] => nil}, {::Sequel[attribute.to_sym] => ""}) }
31
31
  end
32
32
  end
33
33
 
34
34
  def set_not_blank_handler
35
- lambda do |entity, attribute, _value|
35
+ ->(entity, attribute, _value) do
36
36
  entity.exclude(::Sequel[attribute.to_sym] => nil, ::Sequel[attribute.to_sym] => "")
37
37
  # entity.exclude(attribute.to_sym => nil).exclude(attribute.to_sym => "")
38
38
  end
39
39
  end
40
40
 
41
41
  def set_gt_handler
42
- lambda do |entity, attribute, value|
42
+ ->(entity, attribute, value) do
43
43
  entity.where { ::Sequel[attribute.to_sym] > value.to_f }
44
44
  end
45
45
  end
46
46
 
47
47
  def set_gte_handler
48
- lambda do |entity, attribute, value|
48
+ ->(entity, attribute, value) do
49
49
  entity.where { ::Sequel[attribute.to_sym] >= value.to_f }
50
50
  end
51
51
  end
52
52
 
53
53
  def set_lt_handler
54
- lambda do |entity, attribute, value|
54
+ ->(entity, attribute, value) do
55
55
  entity.where { ::Sequel[attribute.to_sym] < value.to_f }
56
56
  end
57
57
  end
58
58
 
59
59
  def set_lte_handler
60
- lambda do |entity, attribute, value|
60
+ ->(entity, attribute, value) do
61
61
  entity.where { ::Sequel[attribute.to_sym] <= value.to_f }
62
62
  end
63
63
  end
64
64
 
65
65
  def set_cont_handler
66
- lambda do |entity, attribute, value|
66
+ ->(entity, attribute, value) do
67
67
  entity.where(::Sequel.like(attribute.to_sym, "%#{value}%"))
68
68
  end
69
69
  end
70
70
 
71
71
  def set_not_cont_handler
72
- lambda do |entity, attribute, value|
72
+ ->(entity, attribute, value) do
73
73
  entity.where(~::Sequel.like(attribute.to_sym, "%#{value}%"))
74
74
  end
75
75
  end
76
76
 
77
77
  def set_sw_handler
78
- lambda do |entity, attribute, value|
78
+ ->(entity, attribute, value) do
79
79
  entity.where(::Sequel.like(attribute.to_sym, "#{value}%"))
80
80
  end
81
81
  end
82
82
 
83
83
  def set_not_sw_handler
84
- lambda do |entity, attribute, value|
84
+ ->(entity, attribute, value) do
85
85
  entity.where(~::Sequel.like(attribute.to_sym, "#{value}%"))
86
86
  end
87
87
  end
88
88
 
89
89
  def set_ew_handler
90
- lambda do |entity, attribute, value|
90
+ ->(entity, attribute, value) do
91
91
  entity.where(::Sequel.like(attribute.to_sym, "%#{value}"))
92
92
  end
93
93
  end
94
94
 
95
95
  def set_not_ew_handler
96
- lambda do |entity, attribute, value|
96
+ ->(entity, attribute, value) do
97
97
  entity.where(~::Sequel.like(attribute.to_sym, "%#{value}"))
98
98
  end
99
99
  end
@@ -10,7 +10,7 @@ module Trailblazer
10
10
  module_function
11
11
 
12
12
  def set_sorting_handler
13
- lambda do |sort_attributes, entity|
13
+ ->(sort_attributes, entity) do
14
14
  sort_attributes.delete(:handler)
15
15
  attributes = []
16
16
  sort_attributes.each do |attr|
@@ -9,7 +9,7 @@ module Trailblazer
9
9
  module_function
10
10
 
11
11
  def set_paging_handler
12
- lambda do |current_page, per_page, entity|
12
+ ->(current_page, per_page, entity) do
13
13
  entity.paginate per_page: per_page, page: current_page.zero? ? nil : current_page
14
14
  end
15
15
  end
@@ -13,7 +13,7 @@ module Trailblazer
13
13
  config[:entity] = block
14
14
  end
15
15
 
16
- def paging(options, **)
16
+ def paging(**options)
17
17
  config[:paging][:per_page] = options[:per_page] || 25
18
18
  config[:paging][:min_per_page] = options[:min_per_page] || 10
19
19
  config[:paging][:max_per_page] = options[:max_per_page] || 100
@@ -24,7 +24,8 @@ module Trailblazer
24
24
  end
25
25
 
26
26
  def process_paging(ctx)
27
- ctx.instance_exec @paging[:current_page], @paging[:per_page], (@sorting.empty? ? (process_filters ctx) : (process_sorting ctx)), &@paging[:handler]
27
+ ctx.instance_exec @paging[:current_page], @paging[:per_page],
28
+ (@sorting.empty? ? (process_filters ctx) : (process_sorting ctx)), &@paging[:handler]
28
29
  end
29
30
 
30
31
  def process_sorting(ctx)
@@ -31,7 +31,10 @@ module Trailblazer
31
31
  if sorting.nil?
32
32
  params.merge! sort: "#{attribute} #{sort_direction_for(attribute)}"
33
33
  elsif sorting.include?(attribute.to_s)
34
- params.merge! sort: sorting.gsub(/#{attribute} #{sort_direction_for(attribute)}/, "#{attribute} #{reverse_sort_direction_for(attribute)}")
34
+ params.merge! sort: sorting.gsub(
35
+ /#{attribute} #{sort_direction_for(attribute)}/,
36
+ "#{attribute} #{reverse_sort_direction_for(attribute)}"
37
+ )
35
38
  else
36
39
  params.merge! sort: "#{sorting}, #{attribute} #{sort_direction_for(attribute)}"
37
40
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Trailblazer
4
4
  class Finder
5
- VERSION = "0.50.0".freeze
5
+ VERSION = "0.70.0"
6
6
  end
7
7
  end
@@ -33,14 +33,8 @@ require "trailblazer/operation/finder"
33
33
 
34
34
  module Trailblazer
35
35
  class Finder
36
- DRY_TYPES_VERSION = Gem::Version.new(Dry::Types::VERSION)
37
- LEGACY_DRY_TYPES = DRY_TYPES_VERSION <= Gem::Version.new('1')
38
36
  module Types
39
- if LEGACY_DRY_TYPES
40
- include Dry::Types.module
41
- else
42
- include Dry.Types(default: :nominal)
43
- end
37
+ include Dry.Types(default: :nominal)
44
38
  end
45
39
 
46
40
  include Base
@@ -12,13 +12,12 @@ Trailblazer::Operation.instance_eval do
12
12
  end
13
13
 
14
14
  class Finder
15
- def call(ctx, options, **)
15
+ def call(ctx, **options)
16
16
  builder = Finder::Builder.new
17
17
  ctx[:finder] = finder = builder.call(options, options[:params])
18
18
  ctx[:model] = finder # Don't like it, but somehow it's needed if contracts are loaded
19
19
  ctx[:"result.finder"] = Trailblazer::Operation::Result.new(!finder.nil?, {})
20
20
 
21
-
22
21
  ctx[:"result.finder"].success?
23
22
  end
24
23
 
@@ -49,6 +48,7 @@ Trailblazer::Operation.instance_eval do
49
48
 
50
49
  def apply_id(params)
51
50
  return if params[:id].nil?
51
+
52
52
  params[:id_eq] = params[:id]
53
53
  end
54
54
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/setup"
4
- require "pry-byebug"
5
4
  require "trailblazer/developer"
6
5
  require "trailblazer/activity"
7
6
  require "trailblazer/activity/testing"
@@ -132,7 +132,7 @@ module Trailblazer
132
132
 
133
133
  it "sets the property and works with sw predicate" do
134
134
  5.times { |i| Product.create name: "product_#{i}" }
135
- 1.times { |i| Product.create name: "predicate_#{i}" }
135
+ Product.create name: "predicate_0"
136
136
  4.times { |i| Product.create name: "none_#{i}" }
137
137
  finder = new_finder name_sw: "pr" do
138
138
  property :name, type: Types::String
@@ -144,7 +144,7 @@ module Trailblazer
144
144
 
145
145
  it "sets the property and works with not_sw predicate" do
146
146
  5.times { |i| Product.create name: "product_#{i}" }
147
- 1.times { |i| Product.create name: "predicate_#{i}" }
147
+ Product.create name: "predicate_0"
148
148
  4.times { |i| Product.create name: "none_#{i}" }
149
149
  finder = new_finder name_not_sw: "pr" do
150
150
  property :name, type: Types::String
@@ -156,7 +156,7 @@ module Trailblazer
156
156
 
157
157
  it "sets the property and works with ew predicate" do
158
158
  5.times { |i| Product.create name: "product_#{i}_end" }
159
- 1.times { |i| Product.create name: "predicate_#{i}_endwow" }
159
+ Product.create name: "predicate_0_endwow"
160
160
  4.times { |i| Product.create name: "none_#{i}" }
161
161
  finder = new_finder name_ew: "end" do
162
162
  property :name, type: Types::String
@@ -168,7 +168,7 @@ module Trailblazer
168
168
 
169
169
  it "sets the property and works with not_ew predicate" do
170
170
  5.times { |i| Product.create name: "product_#{i}_end" }
171
- 1.times { |i| Product.create name: "predicate_#{i}_endwow" }
171
+ Product.create name: "predicate_0_endwow"
172
172
  4.times { |i| Product.create name: "none_#{i}" }
173
173
  finder = new_finder name_not_ew: "end" do
174
174
  property :name, type: Types::String
@@ -173,7 +173,10 @@ module Trailblazer
173
173
  end
174
174
 
175
175
  it "accepts per_page as a parameter" do
176
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"}, {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}]
176
+ entity = [
177
+ {id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"},
178
+ {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}
179
+ ]
177
180
  finder = new_finder entity, page: 2, per_page: 4 do
178
181
  paging per_page: 5, min_per_page: 2, max_per_page: 8
179
182
  end
@@ -183,7 +186,10 @@ module Trailblazer
183
186
  end
184
187
 
185
188
  it "uses max_per_page in finder as maximum per_page" do
186
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"}, {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}]
189
+ entity = [
190
+ {id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"},
191
+ {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}
192
+ ]
187
193
  finder = new_finder entity, page: 2, per_page: 9 do
188
194
  paging per_page: 5, min_per_page: 2, max_per_page: 8
189
195
  end
@@ -193,7 +199,10 @@ module Trailblazer
193
199
  end
194
200
 
195
201
  it "uses min_per_page in finder as minimum per_page" do
196
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"}, {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}]
202
+ entity = [
203
+ {id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}, {id: 4, value: "Test 4"},
204
+ {id: 5, value: "Test 5"}, {id: 6, value: "Test 6"}, {id: 7, value: "Test 7"}, {id: 8, value: "Test 8"}, {id: 9, value: "Test 9"}, {id: 10, value: "Test 10"}
205
+ ]
197
206
  finder = new_finder entity, page: 2, per_page: 1 do
198
207
  paging per_page: 5, min_per_page: 2, max_per_page: 8
199
208
  end
@@ -59,7 +59,7 @@ module Trailblazer
59
59
  it "accepts per_page as a parameter" do
60
60
  10.times { |i| Product.create name: "product_#{i}" }
61
61
  finder = new_finder page: 2, per_page: 4 do
62
- adapter "ActiveRecord"
62
+ adapter "ActiveRecord"
63
63
  paginator "Kaminari"
64
64
  paging per_page: 5, min_per_page: 2, max_per_page: 8
65
65
  end
@@ -132,7 +132,7 @@ module Trailblazer
132
132
 
133
133
  it "sets the property and works with sw predicate" do
134
134
  5.times { |i| SProduct.create name: "product_#{i}" }
135
- 1.times { |i| SProduct.create name: "predicate_#{i}" }
135
+ SProduct.create name: "predicate_0"
136
136
  4.times { |i| SProduct.create name: "none_#{i}" }
137
137
  finder = new_finder name_sw: "pr" do
138
138
  property :name, type: Types::String
@@ -144,7 +144,7 @@ module Trailblazer
144
144
 
145
145
  it "sets the property and works with not_sw predicate" do
146
146
  5.times { |i| SProduct.create name: "product_#{i}" }
147
- 1.times { |i| SProduct.create name: "predicate_#{i}" }
147
+ SProduct.create name: "predicate_0"
148
148
  4.times { |i| SProduct.create name: "none_#{i}" }
149
149
  finder = new_finder name_not_sw: "pr" do
150
150
  property :name, type: Types::String
@@ -156,7 +156,7 @@ module Trailblazer
156
156
 
157
157
  it "sets the property and works with ew predicate" do
158
158
  5.times { |i| SProduct.create name: "product_#{i}_end" }
159
- 1.times { |i| SProduct.create name: "predicate_#{i}_endwow" }
159
+ SProduct.create name: "predicate_0_endwow"
160
160
  4.times { |i| SProduct.create name: "none_#{i}" }
161
161
  finder = new_finder name_ew: "end" do
162
162
  property :name, type: Types::String
@@ -168,7 +168,7 @@ module Trailblazer
168
168
 
169
169
  it "sets the property and works with not_ew predicate" do
170
170
  5.times { |i| SProduct.create name: "product_#{i}_end" }
171
- 1.times { |i| SProduct.create name: "predicate_#{i}_endwow" }
171
+ SProduct.create name: "predicate_0_endwow"
172
172
  4.times { |i| SProduct.create name: "none_#{i}" }
173
173
  finder = new_finder name_not_ew: "end" do
174
174
  property :name, type: Types::String
@@ -76,7 +76,6 @@ describe "Trailblazer::Operation - Finder Macro" do
76
76
  expect(result[:finder].name).to eq "product_5"
77
77
  end
78
78
 
79
-
80
79
  it "Can find a single row by name" do
81
80
  params = {name_eq: "product_2"}
82
81
  result = Product::Show.call(params: params)
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "dry-types"
20
+ spec.add_dependency "dry-types", ">= 1.0.0"
21
21
  spec.add_dependency "trailblazer-activity", ">= 0.10.0"
22
22
 
23
23
  spec.add_development_dependency "activerecord"
@@ -26,16 +26,15 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "kaminari-activerecord"
27
27
  spec.add_development_dependency "rake"
28
28
  spec.add_development_dependency "rspec", "~> 3.5"
29
- spec.add_development_dependency "rspec-mocks", "~> 3.5"
30
29
  spec.add_development_dependency "rspec_junit_formatter"
30
+ spec.add_development_dependency "rspec-mocks", "~> 3.5"
31
31
  spec.add_development_dependency "rubocop"
32
32
  spec.add_development_dependency "rubocop-rspec"
33
33
  spec.add_development_dependency "sequel"
34
34
  spec.add_development_dependency "simplecov"
35
- spec.add_development_dependency "sqlite3"
36
35
  spec.add_development_dependency "trailblazer", "~> 2.1.0"
37
- spec.add_development_dependency "will_paginate"
38
36
  spec.add_development_dependency "trailblazer-developer"
37
+ spec.add_development_dependency "will_paginate"
39
38
 
40
- spec.required_ruby_version = ">= 2.3.8"
39
+ spec.required_ruby_version = ">= 2.5.0"
41
40
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.50.0
4
+ version: 0.70.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  - Marc Tich
9
9
  - Abdelkader Boudih
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-03-23 00:00:00.000000000 Z
13
+ date: 2021-11-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dry-types
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
28
+ version: 1.0.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: trailblazer-activity
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -124,20 +124,6 @@ dependencies:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: '3.5'
127
- - !ruby/object:Gem::Dependency
128
- name: rspec-mocks
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '3.5'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '3.5'
141
127
  - !ruby/object:Gem::Dependency
142
128
  name: rspec_junit_formatter
143
129
  requirement: !ruby/object:Gem::Requirement
@@ -153,21 +139,21 @@ dependencies:
153
139
  - !ruby/object:Gem::Version
154
140
  version: '0'
155
141
  - !ruby/object:Gem::Dependency
156
- name: rubocop
142
+ name: rspec-mocks
157
143
  requirement: !ruby/object:Gem::Requirement
158
144
  requirements:
159
- - - ">="
145
+ - - "~>"
160
146
  - !ruby/object:Gem::Version
161
- version: '0'
147
+ version: '3.5'
162
148
  type: :development
163
149
  prerelease: false
164
150
  version_requirements: !ruby/object:Gem::Requirement
165
151
  requirements:
166
- - - ">="
152
+ - - "~>"
167
153
  - !ruby/object:Gem::Version
168
- version: '0'
154
+ version: '3.5'
169
155
  - !ruby/object:Gem::Dependency
170
- name: rubocop-rspec
156
+ name: rubocop
171
157
  requirement: !ruby/object:Gem::Requirement
172
158
  requirements:
173
159
  - - ">="
@@ -181,7 +167,7 @@ dependencies:
181
167
  - !ruby/object:Gem::Version
182
168
  version: '0'
183
169
  - !ruby/object:Gem::Dependency
184
- name: sequel
170
+ name: rubocop-rspec
185
171
  requirement: !ruby/object:Gem::Requirement
186
172
  requirements:
187
173
  - - ">="
@@ -195,7 +181,7 @@ dependencies:
195
181
  - !ruby/object:Gem::Version
196
182
  version: '0'
197
183
  - !ruby/object:Gem::Dependency
198
- name: simplecov
184
+ name: sequel
199
185
  requirement: !ruby/object:Gem::Requirement
200
186
  requirements:
201
187
  - - ">="
@@ -209,7 +195,7 @@ dependencies:
209
195
  - !ruby/object:Gem::Version
210
196
  version: '0'
211
197
  - !ruby/object:Gem::Dependency
212
- name: sqlite3
198
+ name: simplecov
213
199
  requirement: !ruby/object:Gem::Requirement
214
200
  requirements:
215
201
  - - ">="
@@ -237,7 +223,7 @@ dependencies:
237
223
  - !ruby/object:Gem::Version
238
224
  version: 2.1.0
239
225
  - !ruby/object:Gem::Dependency
240
- name: will_paginate
226
+ name: trailblazer-developer
241
227
  requirement: !ruby/object:Gem::Requirement
242
228
  requirements:
243
229
  - - ">="
@@ -251,7 +237,7 @@ dependencies:
251
237
  - !ruby/object:Gem::Version
252
238
  version: '0'
253
239
  - !ruby/object:Gem::Dependency
254
- name: trailblazer-developer
240
+ name: will_paginate
255
241
  requirement: !ruby/object:Gem::Requirement
256
242
  requirements:
257
243
  - - ">="
@@ -273,9 +259,9 @@ executables: []
273
259
  extensions: []
274
260
  extra_rdoc_files: []
275
261
  files:
262
+ - ".github/workflows/ci.yml"
276
263
  - ".gitignore"
277
264
  - ".rubocop.yml"
278
- - ".travis.yml"
279
265
  - CHANGES.md
280
266
  - Gemfile
281
267
  - LICENSE.txt
@@ -340,7 +326,7 @@ homepage: http://trailblazer.to
340
326
  licenses:
341
327
  - LGPL-3.0
342
328
  metadata: {}
343
- post_install_message:
329
+ post_install_message:
344
330
  rdoc_options: []
345
331
  require_paths:
346
332
  - lib
@@ -348,7 +334,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
348
334
  requirements:
349
335
  - - ">="
350
336
  - !ruby/object:Gem::Version
351
- version: 2.3.8
337
+ version: 2.5.0
352
338
  required_rubygems_version: !ruby/object:Gem::Requirement
353
339
  requirements:
354
340
  - - ">="
@@ -356,7 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
356
342
  version: '0'
357
343
  requirements: []
358
344
  rubygems_version: 3.0.3
359
- signing_key:
345
+ signing_key:
360
346
  specification_version: 4
361
347
  summary: Trailblazer based finder objects. It is designed to be used on its own as
362
348
  a separate gem. It was influenced by popular Ransack gem, but in addition to ActiveRecord,
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- before_install:
4
- - gem install bundler
5
- matrix:
6
- include:
7
- - rvm: 2.6.5