trailblazer-finder 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +160 -11
- data/CHANGES.md +5 -0
- data/README.md +93 -22
- data/lib/trailblazer/finder.rb +3 -0
- data/lib/trailblazer/finder/adapters/active_record.rb +4 -0
- data/lib/trailblazer/finder/adapters/active_record/predicates.rb +42 -0
- data/lib/trailblazer/finder/adapters/friendly_id.rb +22 -24
- data/lib/trailblazer/finder/adapters/sequel.rb +5 -0
- data/lib/trailblazer/finder/adapters/sequel/predicates.rb +43 -0
- data/lib/trailblazer/finder/base.rb +3 -3
- data/lib/trailblazer/finder/features.rb +1 -0
- data/lib/trailblazer/finder/features/predicate.rb +37 -0
- data/lib/trailblazer/finder/filter.rb +2 -2
- data/lib/trailblazer/finder/predicates.rb +39 -0
- data/lib/trailblazer/finder/utils/deep_locate.rb +45 -0
- data/lib/trailblazer/finder/utils/extra.rb +1 -1
- data/lib/trailblazer/finder/utils/splitter.rb +42 -0
- data/lib/trailblazer/finder/version.rb +1 -1
- data/spec/spec_helper_sequel.rb +1 -0
- data/spec/trailblazer/finder/adapters/active_record/base_spec.rb +1 -1
- data/spec/trailblazer/finder/adapters/active_record/predicates_spec.rb +98 -0
- data/spec/trailblazer/finder/adapters/active_record/sorting_spec.rb +4 -0
- data/spec/trailblazer/finder/adapters/data_mapper/base_spec.rb +1 -1
- data/spec/trailblazer/finder/adapters/sequel/base_spec.rb +1 -1
- data/spec/trailblazer/finder/adapters/sequel/predicates_spec.rb +89 -0
- data/spec/trailblazer/finder/adapters/sequel/sorting_spec.rb +4 -0
- data/spec/trailblazer/finder/features/paging_spec.rb +1 -1
- data/spec/trailblazer/finder/features/predicates_spec.rb +99 -0
- data/spec/trailblazer/finder/features/sorting_spec.rb +3 -4
- data/spec/trailblazer/operation/predicates_spec.rb +127 -0
- data/spec/trailblazer/test_spec.rb +41 -0
- data/trailblazer-finder.gemspec +0 -2
- metadata +17 -15
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'spec_helper_sequel'
|
2
|
+
# require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Trailblazer::Finder::Adapters::Sequel::Predicates" do
|
5
|
+
class TestFinder < Trailblazer::Finder
|
6
|
+
features Predicate
|
7
|
+
adapters Sequel
|
8
|
+
|
9
|
+
entity_type { SProduct }
|
10
|
+
|
11
|
+
predicates_for :name, :price, :created_at
|
12
|
+
|
13
|
+
filter_by(:category) { |entity_type, _| entity_type.joins(:category) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def finder_with_predicate(filter = nil, value = nil, filters = {})
|
17
|
+
TestFinder.new filter: { filter => value }.merge(filters)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'equals' do
|
21
|
+
before do
|
22
|
+
SProduct.order(:id).delete
|
23
|
+
10.times do |i|
|
24
|
+
next SProduct.create name: "", price: "1#{i}" if i == 7
|
25
|
+
next SProduct.create name: nil, price: "1#{i}" if i == 8
|
26
|
+
next SProduct.create name: "product_4", price: "1#{i}" if i == 9
|
27
|
+
SProduct.create name: "product_#{i}", price: "1#{i}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'it finds single row with name equal to product_5' do
|
32
|
+
finder = finder_with_predicate 'name_eq', 'product_5'
|
33
|
+
expect(finder.results.all.map(&:price)).to eq [15]
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'it finds multiple rows with name equal to product_4' do
|
37
|
+
finder = finder_with_predicate 'name_eq', 'product_4'
|
38
|
+
expect(finder.results.all.map(&:price)).to eq [14, 19]
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'it finds rows with name not equal to product_4' do
|
42
|
+
finder = finder_with_predicate 'name_not_eq', 'product_4'
|
43
|
+
expect(finder.results.all.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_5", "product_6", ""]
|
44
|
+
expect(finder.results.all.map(&:price)).to eq [10, 11, 12, 13, 15, 16, 17]
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'it finds multiple rows with name blank (empty/nil)' do
|
48
|
+
finder = finder_with_predicate 'name_blank', ''
|
49
|
+
expect(finder.results.all.map(&:price)).to eq [17, 18]
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'it finds multiple rows with name not blank (empty/nil)' do
|
53
|
+
finder = finder_with_predicate 'name_not_blank', ''
|
54
|
+
expect(finder.results.all.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5", "product_6", "product_4"]
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'it finds multiple rows with price less than 15' do
|
58
|
+
finder = finder_with_predicate 'price_lt', 15
|
59
|
+
expect(finder.results.all.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4"]
|
60
|
+
expect(finder.results.all.map(&:price)).to eq [10, 11, 12, 13, 14]
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'it finds multiple rows with price equal to and less than 15' do
|
64
|
+
finder = finder_with_predicate 'price_lte', 15
|
65
|
+
expect(finder.results.all.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5"]
|
66
|
+
expect(finder.results.all.map(&:price)).to eq [10, 11, 12, 13, 14, 15]
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'it finds multiple rows with price greater than 15' do
|
70
|
+
finder = finder_with_predicate 'price_gt', 15
|
71
|
+
expect(finder.results.all.map(&:name)).to eq ["product_6", "", nil, "product_4"]
|
72
|
+
expect(finder.results.all.map(&:price)).to eq [16, 17, 18, 19]
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'it finds multiple rows with price equal to and greater than 15' do
|
76
|
+
finder = finder_with_predicate 'price_gte', 15
|
77
|
+
expect(finder.results.all.map(&:name)).to eq ["product_5", "product_6", "", nil, "product_4"]
|
78
|
+
expect(finder.results.all.map(&:price)).to eq [15, 16, 17, 18, 19]
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'it finds rows with name not equal to product_4 and name not blank and price greater than 14' do
|
82
|
+
params = { name_not_blank: true, price_gt: 14 }
|
83
|
+
finder = finder_with_predicate 'name_not_eq', 'product_4', params
|
84
|
+
|
85
|
+
expect(finder.results.map(&:name)).to eq ["product_5", "product_6"]
|
86
|
+
expect(finder.results.map(&:price)).to eq [15, 16]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# require 'spec_helper_sequel'
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
module Trailblazer
|
5
|
+
class Finder
|
6
|
+
module Features
|
7
|
+
describe Predicate do
|
8
|
+
class TestFinder < Trailblazer::Finder
|
9
|
+
features Predicate
|
10
|
+
|
11
|
+
def create_product(id, name, price)
|
12
|
+
{
|
13
|
+
id: id,
|
14
|
+
name: name,
|
15
|
+
price: price,
|
16
|
+
created_at: Time.now,
|
17
|
+
updated_at: Time.now
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
entity_type do
|
22
|
+
Array.new(10) do |i|
|
23
|
+
next create_product(i+1, "", "1#{i}".to_i)if i == 7
|
24
|
+
next create_product(i+1, nil, "1#{i}".to_i) if i == 8
|
25
|
+
next create_product(i+1, "product_4", "1#{i}".to_i) if i == 9
|
26
|
+
create_product(i+1, "product_#{i}", "1#{i}".to_i)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
predicates_for :name, :price, :created_at
|
31
|
+
end
|
32
|
+
|
33
|
+
def finder_with_predicate(filter = nil, value = nil, filters = {})
|
34
|
+
TestFinder.new filter: { filter => value }.merge(filters)
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'eqauls' do
|
38
|
+
it 'it finds single row with name equal to product_5' do
|
39
|
+
finder = finder_with_predicate 'name_eq', 'product_5'
|
40
|
+
expect(finder.results.map { |n| n[:price] }).to eq [15]
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'it finds multiple rows with name equal to product_4' do
|
44
|
+
finder = finder_with_predicate 'name_eq', 'product_4'
|
45
|
+
expect(finder.results.map { |n| n[:price] }).to eq [14, 19]
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'it finds rows with name not equal to product_4' do
|
49
|
+
finder = finder_with_predicate 'name_not_eq', 'product_4'
|
50
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_0", "product_1", "product_2", "product_3", "product_5", "product_6", ""]
|
51
|
+
expect(finder.results.map { |n| n[:price] }).to eq [10, 11, 12, 13, 15, 16, 17]
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'it finds multiple rows with name blank (empty/nil)' do
|
55
|
+
finder = finder_with_predicate 'name_blank', ''
|
56
|
+
expect(finder.results.map { |n| n[:price] }).to eq [17, 18]
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'it finds multiple rows with name not blank (empty/nil)' do
|
60
|
+
finder = finder_with_predicate 'name_not_blank', ''
|
61
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5", "product_6", "product_4"]
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'it finds multiple rows with price less than 15' do
|
65
|
+
finder = finder_with_predicate 'price_lt', 15
|
66
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_0", "product_1", "product_2", "product_3", "product_4"]
|
67
|
+
expect(finder.results.map { |n| n[:price] }).to eq [10, 11, 12, 13, 14]
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'it finds multiple rows with price equal to and less than 15' do
|
71
|
+
finder = finder_with_predicate 'price_lte', 15
|
72
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5"]
|
73
|
+
expect(finder.results.map { |n| n[:price] }).to eq [10, 11, 12, 13, 14, 15]
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'it finds multiple rows with price greater than 15' do
|
77
|
+
finder = finder_with_predicate 'price_gt', 15
|
78
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_6", "", nil, "product_4"]
|
79
|
+
expect(finder.results.map { |n| n[:price] }).to eq [16, 17, 18, 19]
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'it finds multiple rows with price equal to and greater than 15' do
|
83
|
+
finder = finder_with_predicate 'price_gte', 15
|
84
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_5", "product_6", "", nil, "product_4"]
|
85
|
+
expect(finder.results.map { |n| n[:price] }).to eq [15, 16, 17, 18, 19]
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'it finds rows with name not equal to product_4 and name not blank and price greater than 14' do
|
89
|
+
params = { name_not_blank: true, price_gt: 14 }
|
90
|
+
finder = finder_with_predicate 'name_not_eq', 'product_4', params
|
91
|
+
|
92
|
+
expect(finder.results.map { |n| n[:name] }).to eq ["product_5", "product_6"]
|
93
|
+
expect(finder.results.map { |n| n[:price] }).to eq [15, 16]
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -9,10 +9,9 @@ module Trailblazer
|
|
9
9
|
true
|
10
10
|
end
|
11
11
|
|
12
|
-
def finder_class
|
13
|
-
Class.new do
|
14
|
-
|
15
|
-
include Trailblazer::Finder::Features::Sorting
|
12
|
+
def finder_class
|
13
|
+
Class.new(Trailblazer::Finder) do
|
14
|
+
features Sorting
|
16
15
|
|
17
16
|
entity_type do
|
18
17
|
[
|
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
require 'trailblazer'
|
3
|
+
require 'spec_helper_active_record'
|
4
|
+
|
5
|
+
class Product::PredicateFinderNoEntity < Trailblazer::Finder
|
6
|
+
features Predicate
|
7
|
+
adapters ActiveRecord
|
8
|
+
|
9
|
+
predicates_for :name, :price, :created_at
|
10
|
+
|
11
|
+
filter_by(:category) { |entity_type, _| entity_type.joins(:category) }
|
12
|
+
end
|
13
|
+
|
14
|
+
class Product::PredicateFinderWithEntity < Trailblazer::Finder
|
15
|
+
features Predicate
|
16
|
+
adapters ActiveRecord
|
17
|
+
|
18
|
+
entity_type { Product }
|
19
|
+
|
20
|
+
predicates_for :name, :price, :created_at
|
21
|
+
|
22
|
+
filter_by(:category) { |entity_type, _| entity_type.joins(:category) }
|
23
|
+
end
|
24
|
+
|
25
|
+
class Product::PredicateIndex < Trailblazer::Operation
|
26
|
+
step Finder(Product::PredicateFinderNoEntity, :all, Product)
|
27
|
+
end
|
28
|
+
|
29
|
+
class Product::PredicateIndexNoEntity < Trailblazer::Operation
|
30
|
+
step Finder(Product::PredicateFinderWithEntity, :all)
|
31
|
+
end
|
32
|
+
|
33
|
+
describe 'Trailblazer::Operation - Finder Macro - Sorting' do
|
34
|
+
before do
|
35
|
+
Product.destroy_all
|
36
|
+
Product.reset_pk_sequence
|
37
|
+
Product.delete_all
|
38
|
+
10.times do |i|
|
39
|
+
next Product.create name: "", price: "1#{i}" if i == 7
|
40
|
+
next Product.create name: nil, price: "1#{i}" if i == 8
|
41
|
+
next Product.create name: "product_4", price: "1#{i}" if i == 9
|
42
|
+
Product.create name: "product_#{i}", price: "1#{i}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
after do
|
47
|
+
Product.destroy_all
|
48
|
+
Product.reset_pk_sequence
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'it finds single row with name equal to product_5' do
|
52
|
+
params = { f: { name_eq: 'product_5' } }
|
53
|
+
result = Product::PredicateIndex.call(params: params)
|
54
|
+
|
55
|
+
expect(result[:finder].results.first.name).to eq "product_5"
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'it finds multiple rows with name equal to product_4' do
|
59
|
+
params = { f: { name_eq: 'product_4' } }
|
60
|
+
result = Product::PredicateIndex.call(params: params)
|
61
|
+
|
62
|
+
expect(result[:finder].results.first.price).to eq 14
|
63
|
+
expect(result[:finder].results.last.price).to eq 19
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'it finds rows with name not equal to product_4' do
|
67
|
+
params = { f: { name_not_eq: 'product_4' } }
|
68
|
+
result = Product::PredicateIndex.call(params: params)
|
69
|
+
|
70
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_5", "product_6", ""]
|
71
|
+
expect(result[:finder].results.map(&:price)).to eq [10, 11, 12, 13, 15, 16, 17]
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'it finds multiple rows with name blank (empty/nil)' do
|
75
|
+
params = { f: { name_blank: true } }
|
76
|
+
result = Product::PredicateIndex.call(params: params)
|
77
|
+
|
78
|
+
expect(result[:finder].results.map(&:price)).to eq [17, 18]
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'it finds multiple rows with name not blank (empty/nil)' do
|
82
|
+
params = { f: { name_not_blank: true } }
|
83
|
+
result = Product::PredicateIndex.call(params: params)
|
84
|
+
|
85
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5", "product_6", "product_4"]
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'it finds multiple rows with price less than 15' do
|
89
|
+
params = { f: { price_lt: 15 } }
|
90
|
+
result = Product::PredicateIndex.call(params: params)
|
91
|
+
|
92
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4"]
|
93
|
+
expect(result[:finder].results.map(&:price)).to eq [10, 11, 12, 13, 14]
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'it finds multiple rows with price equal to and less than 15' do
|
97
|
+
params = { f: { price_lte: 15 } }
|
98
|
+
result = Product::PredicateIndex.call(params: params)
|
99
|
+
|
100
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_4", "product_5"]
|
101
|
+
expect(result[:finder].results.map(&:price)).to eq [10, 11, 12, 13, 14, 15]
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'it finds multiple rows with price greater than 15' do
|
105
|
+
params = { f: { price_gt: 15 } }
|
106
|
+
result = Product::PredicateIndex.call(params: params)
|
107
|
+
|
108
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_6", "", nil, "product_4"]
|
109
|
+
expect(result[:finder].results.map(&:price)).to eq [16, 17, 18, 19]
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'it finds multiple rows with price equal to and greater than 15' do
|
113
|
+
params = { f: { price_gte: 15 } }
|
114
|
+
result = Product::PredicateIndex.call(params: params)
|
115
|
+
|
116
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_5", "product_6", "", nil, "product_4"]
|
117
|
+
expect(result[:finder].results.map(&:price)).to eq [15, 16, 17, 18, 19]
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'it finds rows with name not equal to product_4 and name not blank and price greater than 14' do
|
121
|
+
params = { f: { name_not_eq: 'product_4', name_not_blank: true, price_gt: 14 } }
|
122
|
+
result = Product::PredicateIndex.call(params: params)
|
123
|
+
|
124
|
+
expect(result[:finder].results.map(&:name)).to eq ["product_5", "product_6"]
|
125
|
+
expect(result[:finder].results.map(&:price)).to eq [15, 16]
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# require 'spec_helper_active_record'
|
2
|
+
#
|
3
|
+
# class TestFinder < Trailblazer::Finder
|
4
|
+
# features Predicates
|
5
|
+
# adapters ActiveRecord, FriendlyId
|
6
|
+
#
|
7
|
+
# entity_type { Product }
|
8
|
+
#
|
9
|
+
# predicates_for :name, :price, :created_at
|
10
|
+
#
|
11
|
+
# filter_by(:category) { |entity_type, _| entity_type.joins(:category) }
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# def finder_with_predicate(filter = nil, value = nil, filters = {})
|
15
|
+
# TestFinder.new filter: { filter => value }.merge(filters)
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# describe 'eqauls' do
|
19
|
+
# before do
|
20
|
+
# Product.delete_all
|
21
|
+
# 10.times do |i|
|
22
|
+
# Product.create name: "product_#{i}", price: "1#{i}"
|
23
|
+
# Product.create name: "product_4", price: "1#{1}" if i == 5
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# it 'it finds single row with name equal to product_5' do
|
28
|
+
# finder = finder_with_predicate 'name_eq', 'product_5'
|
29
|
+
# expect(finder.results.map(&:price)).to eq [15]
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# it 'it finds multiple rows with name equal to product_4' do
|
33
|
+
# finder = finder_with_predicate 'name_eq', 'product_4'
|
34
|
+
# expect(finder.results.map(&:price)).to eq [14, 11]
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# it 'it finds rows with name not equal to product_5' do
|
38
|
+
# finder = finder_with_predicate 'name_not_eq', 'product_4'
|
39
|
+
# expect(finder.results.map(&:name)).to eq ["product_0", "product_1", "product_2", "product_3", "product_5", "product_6", "product_7", "product_8", "product_9"]
|
40
|
+
# end
|
41
|
+
# end
|
data/trailblazer-finder.gemspec
CHANGED
@@ -17,8 +17,6 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency 'hashie', '~> 3.5'
|
21
|
-
|
22
20
|
spec.add_development_dependency 'bundler'
|
23
21
|
spec.add_development_dependency 'rake'
|
24
22
|
spec.add_development_dependency 'sequel'
|
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.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
@@ -11,20 +11,6 @@ bindir: bin
|
|
11
11
|
cert_chain: []
|
12
12
|
date: 2018-03-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: hashie
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '3.5'
|
21
|
-
type: :runtime
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - "~>"
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '3.5'
|
28
14
|
- !ruby/object:Gem::Dependency
|
29
15
|
name: bundler
|
30
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -284,6 +270,7 @@ files:
|
|
284
270
|
- lib/trailblazer/finder/adapters.rb
|
285
271
|
- lib/trailblazer/finder/adapters/active_record.rb
|
286
272
|
- lib/trailblazer/finder/adapters/active_record/paging.rb
|
273
|
+
- lib/trailblazer/finder/adapters/active_record/predicates.rb
|
287
274
|
- lib/trailblazer/finder/adapters/active_record/sorting.rb
|
288
275
|
- lib/trailblazer/finder/adapters/data_mapper.rb
|
289
276
|
- lib/trailblazer/finder/adapters/data_mapper/paging.rb
|
@@ -292,6 +279,7 @@ files:
|
|
292
279
|
- lib/trailblazer/finder/adapters/kaminari.rb
|
293
280
|
- lib/trailblazer/finder/adapters/sequel.rb
|
294
281
|
- lib/trailblazer/finder/adapters/sequel/paging.rb
|
282
|
+
- lib/trailblazer/finder/adapters/sequel/predicates.rb
|
295
283
|
- lib/trailblazer/finder/adapters/sequel/sorting.rb
|
296
284
|
- lib/trailblazer/finder/adapters/will_paginate.rb
|
297
285
|
- lib/trailblazer/finder/base.rb
|
@@ -302,12 +290,16 @@ files:
|
|
302
290
|
- lib/trailblazer/finder/errors/with_ignored.rb
|
303
291
|
- lib/trailblazer/finder/features.rb
|
304
292
|
- lib/trailblazer/finder/features/paging.rb
|
293
|
+
- lib/trailblazer/finder/features/predicate.rb
|
305
294
|
- lib/trailblazer/finder/features/sorting.rb
|
306
295
|
- lib/trailblazer/finder/filter.rb
|
307
296
|
- lib/trailblazer/finder/find.rb
|
297
|
+
- lib/trailblazer/finder/predicates.rb
|
298
|
+
- lib/trailblazer/finder/utils/deep_locate.rb
|
308
299
|
- lib/trailblazer/finder/utils/extra.rb
|
309
300
|
- lib/trailblazer/finder/utils/params.rb
|
310
301
|
- lib/trailblazer/finder/utils/parse.rb
|
302
|
+
- lib/trailblazer/finder/utils/splitter.rb
|
311
303
|
- lib/trailblazer/finder/utils/string.rb
|
312
304
|
- lib/trailblazer/finder/version.rb
|
313
305
|
- lib/trailblazer/operation/finder.rb
|
@@ -319,6 +311,7 @@ files:
|
|
319
311
|
- spec/support/sorting_shared_example.rb
|
320
312
|
- spec/trailblazer/finder/adapters/active_record/base_spec.rb
|
321
313
|
- spec/trailblazer/finder/adapters/active_record/paging_spec.rb
|
314
|
+
- spec/trailblazer/finder/adapters/active_record/predicates_spec.rb
|
322
315
|
- spec/trailblazer/finder/adapters/active_record/sorting_spec.rb
|
323
316
|
- spec/trailblazer/finder/adapters/data_mapper/base_spec.rb
|
324
317
|
- spec/trailblazer/finder/adapters/data_mapper/paging_spec.rb
|
@@ -327,11 +320,13 @@ files:
|
|
327
320
|
- spec/trailblazer/finder/adapters/kaminari_spec.rb
|
328
321
|
- spec/trailblazer/finder/adapters/sequel/base_spec.rb
|
329
322
|
- spec/trailblazer/finder/adapters/sequel/paging_spec.rb
|
323
|
+
- spec/trailblazer/finder/adapters/sequel/predicates_spec.rb
|
330
324
|
- spec/trailblazer/finder/adapters/sequel/sorting_spec.rb
|
331
325
|
- spec/trailblazer/finder/adapters/will_paginate_spec.rb
|
332
326
|
- spec/trailblazer/finder/adapters_spec.rb
|
333
327
|
- spec/trailblazer/finder/base_spec.rb
|
334
328
|
- spec/trailblazer/finder/features/paging_spec.rb
|
329
|
+
- spec/trailblazer/finder/features/predicates_spec.rb
|
335
330
|
- spec/trailblazer/finder/features/sorting_spec.rb
|
336
331
|
- spec/trailblazer/finder/features_spec.rb
|
337
332
|
- spec/trailblazer/finder/filter_spec.rb
|
@@ -342,7 +337,9 @@ files:
|
|
342
337
|
- spec/trailblazer/finder/utils/string_spec.rb
|
343
338
|
- spec/trailblazer/operation/finder_spec.rb
|
344
339
|
- spec/trailblazer/operation/paging_spec.rb
|
340
|
+
- spec/trailblazer/operation/predicates_spec.rb
|
345
341
|
- spec/trailblazer/operation/sorting_spec.rb
|
342
|
+
- spec/trailblazer/test_spec.rb
|
346
343
|
- trailblazer-finder.gemspec
|
347
344
|
homepage: http://trailblazer.to
|
348
345
|
licenses:
|
@@ -377,6 +374,7 @@ test_files:
|
|
377
374
|
- spec/support/sorting_shared_example.rb
|
378
375
|
- spec/trailblazer/finder/adapters/active_record/base_spec.rb
|
379
376
|
- spec/trailblazer/finder/adapters/active_record/paging_spec.rb
|
377
|
+
- spec/trailblazer/finder/adapters/active_record/predicates_spec.rb
|
380
378
|
- spec/trailblazer/finder/adapters/active_record/sorting_spec.rb
|
381
379
|
- spec/trailblazer/finder/adapters/data_mapper/base_spec.rb
|
382
380
|
- spec/trailblazer/finder/adapters/data_mapper/paging_spec.rb
|
@@ -385,11 +383,13 @@ test_files:
|
|
385
383
|
- spec/trailblazer/finder/adapters/kaminari_spec.rb
|
386
384
|
- spec/trailblazer/finder/adapters/sequel/base_spec.rb
|
387
385
|
- spec/trailblazer/finder/adapters/sequel/paging_spec.rb
|
386
|
+
- spec/trailblazer/finder/adapters/sequel/predicates_spec.rb
|
388
387
|
- spec/trailblazer/finder/adapters/sequel/sorting_spec.rb
|
389
388
|
- spec/trailblazer/finder/adapters/will_paginate_spec.rb
|
390
389
|
- spec/trailblazer/finder/adapters_spec.rb
|
391
390
|
- spec/trailblazer/finder/base_spec.rb
|
392
391
|
- spec/trailblazer/finder/features/paging_spec.rb
|
392
|
+
- spec/trailblazer/finder/features/predicates_spec.rb
|
393
393
|
- spec/trailblazer/finder/features/sorting_spec.rb
|
394
394
|
- spec/trailblazer/finder/features_spec.rb
|
395
395
|
- spec/trailblazer/finder/filter_spec.rb
|
@@ -400,4 +400,6 @@ test_files:
|
|
400
400
|
- spec/trailblazer/finder/utils/string_spec.rb
|
401
401
|
- spec/trailblazer/operation/finder_spec.rb
|
402
402
|
- spec/trailblazer/operation/paging_spec.rb
|
403
|
+
- spec/trailblazer/operation/predicates_spec.rb
|
403
404
|
- spec/trailblazer/operation/sorting_spec.rb
|
405
|
+
- spec/trailblazer/test_spec.rb
|