trailblazer-finder 0.1.1 → 0.1.2
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 +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
|