hoodoo 1.12.0 → 1.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cd0bbca0d44ff8c52c354e140565325d8447f10
|
4
|
+
data.tar.gz: 5faa6103ed09143226c2d869069af59c0ea5a76f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3a8f6e8f61b54b65b9842fffe90aa1e0503fc4678a876ffcdf75de4075792cf8ff1c444bdb9b72c722a9ced24f4916ebfbdff338425c97dbe53c18e153bfd7a
|
7
|
+
data.tar.gz: 47ff963da7a1ff972fba27090290398bfcd35612d5657df877b3f623c3726dbd8e3fd2ed3668df1a43c6df5e3f5caf6b04ec0489bfd0f3ae441aa7ba387eab42
|
@@ -82,6 +82,14 @@ module Hoodoo
|
|
82
82
|
#
|
83
83
|
def self.instantiate( model )
|
84
84
|
model.extend( ClassMethods )
|
85
|
+
|
86
|
+
framework_data = Hoodoo::ActiveRecord::Support.framework_search_and_filter_data()
|
87
|
+
|
88
|
+
model.nz_co_loyalty_hoodoo_search_with ||= {}
|
89
|
+
model.nz_co_loyalty_hoodoo_filter_with ||= {}
|
90
|
+
|
91
|
+
model.nz_co_loyalty_hoodoo_search_with.merge!( framework_data )
|
92
|
+
model.nz_co_loyalty_hoodoo_filter_with.merge!( framework_data )
|
85
93
|
end
|
86
94
|
|
87
95
|
# Collection of class methods that get defined on an including class via
|
@@ -711,7 +719,6 @@ module Hoodoo
|
|
711
719
|
# which assist with filling in non-nil values for this Hash.
|
712
720
|
#
|
713
721
|
def search_with( hash )
|
714
|
-
self.nz_co_loyalty_hoodoo_search_with ||= Hoodoo::ActiveRecord::Support.framework_search_and_filter_data()
|
715
722
|
self.nz_co_loyalty_hoodoo_search_with.merge!( Hoodoo::ActiveRecord::Support.process_to_map( hash ) )
|
716
723
|
end
|
717
724
|
|
@@ -733,7 +740,6 @@ module Hoodoo
|
|
733
740
|
# +map+:: As #search_with.
|
734
741
|
#
|
735
742
|
def filter_with( hash )
|
736
|
-
self.nz_co_loyalty_hoodoo_filter_with ||= Hoodoo::ActiveRecord::Support.framework_search_and_filter_data()
|
737
743
|
self.nz_co_loyalty_hoodoo_filter_with.merge!( Hoodoo::ActiveRecord::Support.process_to_map( hash ) )
|
738
744
|
end
|
739
745
|
|
data/lib/hoodoo/version.rb
CHANGED
@@ -85,6 +85,36 @@ describe Hoodoo::ActiveRecord::Finder do
|
|
85
85
|
search_with( search_and_filter_map )
|
86
86
|
filter_with( search_and_filter_map )
|
87
87
|
end
|
88
|
+
|
89
|
+
class RSpecModelFinderWithoutSearchOrFilterTest < ActiveRecord::Base
|
90
|
+
include Hoodoo::ActiveRecord::Finder
|
91
|
+
|
92
|
+
self.primary_key = :id
|
93
|
+
self.table_name = :r_spec_model_finder_tests
|
94
|
+
end
|
95
|
+
|
96
|
+
class RSpecModelFinderSubclassTest < Hoodoo::ActiveRecord::Base
|
97
|
+
self.primary_key = :id
|
98
|
+
self.table_name = :r_spec_model_finder_tests
|
99
|
+
|
100
|
+
search_and_filter_map = {
|
101
|
+
'mapped_code' => Hoodoo::ActiveRecord::Finder::SearchHelper.cs_match( 'code' )
|
102
|
+
}
|
103
|
+
|
104
|
+
search_with( search_and_filter_map )
|
105
|
+
filter_with( search_and_filter_map )
|
106
|
+
end
|
107
|
+
|
108
|
+
class RSpecModelFinderSubclassATest < RSpecModelFinderSubclassTest; end
|
109
|
+
class RSpecModelFinderSubclassBTest < RSpecModelFinderSubclassTest; end
|
110
|
+
|
111
|
+
class RSpecModelFinderSubclassWithoutSearchOrFilterTest < Hoodoo::ActiveRecord::Base
|
112
|
+
self.primary_key = :id
|
113
|
+
self.table_name = :r_spec_model_finder_tests
|
114
|
+
end
|
115
|
+
|
116
|
+
class RSpecModelFinderSubclassWithoutSearchOrFilterATest < RSpecModelFinderSubclassWithoutSearchOrFilterTest; end
|
117
|
+
class RSpecModelFinderSubclassWithoutSearchOrFilterBTest < RSpecModelFinderSubclassWithoutSearchOrFilterTest; end
|
88
118
|
end
|
89
119
|
|
90
120
|
before :each do
|
@@ -124,9 +154,37 @@ describe Hoodoo::ActiveRecord::Finder do
|
|
124
154
|
@c.save!
|
125
155
|
@code = @c.code
|
126
156
|
|
127
|
-
@a_wh
|
128
|
-
@b_wh
|
129
|
-
@c_wh
|
157
|
+
@a_wh = RSpecModelFinderTestWithHelpers.find( @a.id )
|
158
|
+
@b_wh = RSpecModelFinderTestWithHelpers.find( @b.id )
|
159
|
+
@c_wh = RSpecModelFinderTestWithHelpers.find( @c.id )
|
160
|
+
|
161
|
+
@a_wosf = RSpecModelFinderWithoutSearchOrFilterTest.find( @a.id )
|
162
|
+
@b_wosf = RSpecModelFinderWithoutSearchOrFilterTest.find( @b.id )
|
163
|
+
@c_wosf = RSpecModelFinderWithoutSearchOrFilterTest.find( @c.id )
|
164
|
+
|
165
|
+
@a_sc = RSpecModelFinderSubclassTest.find( @a.id )
|
166
|
+
@b_sc = RSpecModelFinderSubclassTest.find( @b.id )
|
167
|
+
@c_sc = RSpecModelFinderSubclassTest.find( @c.id )
|
168
|
+
|
169
|
+
@a_sc_a = RSpecModelFinderSubclassATest.find( @a.id )
|
170
|
+
@b_sc_a = RSpecModelFinderSubclassATest.find( @b.id )
|
171
|
+
@c_sc_a = RSpecModelFinderSubclassATest.find( @c.id )
|
172
|
+
|
173
|
+
@a_sc_b = RSpecModelFinderSubclassBTest.find( @a.id )
|
174
|
+
@b_sc_b = RSpecModelFinderSubclassBTest.find( @b.id )
|
175
|
+
@c_sc_b = RSpecModelFinderSubclassBTest.find( @c.id )
|
176
|
+
|
177
|
+
@a_sc_wosf = RSpecModelFinderSubclassWithoutSearchOrFilterTest.find( @a.id )
|
178
|
+
@b_sc_wosf = RSpecModelFinderSubclassWithoutSearchOrFilterTest.find( @b.id )
|
179
|
+
@c_sc_wosf = RSpecModelFinderSubclassWithoutSearchOrFilterTest.find( @c.id )
|
180
|
+
|
181
|
+
@a_sc_wosf_a = RSpecModelFinderSubclassWithoutSearchOrFilterATest.find( @a.id )
|
182
|
+
@b_sc_wosf_a = RSpecModelFinderSubclassWithoutSearchOrFilterATest.find( @b.id )
|
183
|
+
@c_sc_wosf_a = RSpecModelFinderSubclassWithoutSearchOrFilterATest.find( @c.id )
|
184
|
+
|
185
|
+
@a_sc_wosf_b = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.find( @a.id )
|
186
|
+
@b_sc_wosf_b = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.find( @b.id )
|
187
|
+
@c_sc_wosf_b = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.find( @c.id )
|
130
188
|
|
131
189
|
@list_params = Hoodoo::Services::Request::ListParameters.new
|
132
190
|
end
|
@@ -773,6 +831,81 @@ describe Hoodoo::ActiveRecord::Finder do
|
|
773
831
|
|
774
832
|
# ==========================================================================
|
775
833
|
|
834
|
+
context 'pure framework search' do
|
835
|
+
it 'on created_after' do
|
836
|
+
@list_params.search_data = {
|
837
|
+
'created_after' => @tn - 1.month
|
838
|
+
}
|
839
|
+
|
840
|
+
finder = RSpecModelFinderWithoutSearchOrFilterTest.list( @list_params )
|
841
|
+
expect( finder ).to eq( [ @c_wosf ] )
|
842
|
+
end
|
843
|
+
|
844
|
+
it 'on created_before' do
|
845
|
+
@list_params.search_data = {
|
846
|
+
'created_before' => @tn - 1.month
|
847
|
+
}
|
848
|
+
|
849
|
+
finder = RSpecModelFinderWithoutSearchOrFilterTest.list( @list_params )
|
850
|
+
expect( finder ).to eq( [ @a_wosf ] )
|
851
|
+
end
|
852
|
+
end
|
853
|
+
|
854
|
+
# ==========================================================================
|
855
|
+
|
856
|
+
context 'as a Hoodoo::ActiveRecord::Base subclass and sub-subclass' do # (instead of explicitly including the Finder module)
|
857
|
+
context 'custom search' do
|
858
|
+
it 'on mapped_code' do
|
859
|
+
@list_params.search_data = {
|
860
|
+
'mapped_code' => @code
|
861
|
+
}
|
862
|
+
|
863
|
+
finder = RSpecModelFinderSubclassTest.list( @list_params )
|
864
|
+
expect( finder ).to eq( [ @c_sc ] )
|
865
|
+
|
866
|
+
finder = RSpecModelFinderSubclassATest.list( @list_params )
|
867
|
+
expect( finder ).to eq( [ @c_sc_a ] )
|
868
|
+
|
869
|
+
finder = RSpecModelFinderSubclassBTest.list( @list_params )
|
870
|
+
expect( finder ).to eq( [ @c_sc_b ] )
|
871
|
+
end
|
872
|
+
end
|
873
|
+
|
874
|
+
context 'pure framework search' do
|
875
|
+
it 'on created_after' do
|
876
|
+
@list_params.search_data = {
|
877
|
+
'created_after' => @tn - 1.month
|
878
|
+
}
|
879
|
+
|
880
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterTest.list( @list_params )
|
881
|
+
expect( finder ).to eq( [ @c_sc_wosf ] )
|
882
|
+
|
883
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterATest.list( @list_params )
|
884
|
+
expect( finder ).to eq( [ @c_sc_wosf_a ] )
|
885
|
+
|
886
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.list( @list_params )
|
887
|
+
expect( finder ).to eq( [ @c_sc_wosf_b ] )
|
888
|
+
end
|
889
|
+
|
890
|
+
it 'on created_before' do
|
891
|
+
@list_params.search_data = {
|
892
|
+
'created_before' => @tn - 1.month
|
893
|
+
}
|
894
|
+
|
895
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterTest.list( @list_params )
|
896
|
+
expect( finder ).to eq( [ @a_sc_wosf ] )
|
897
|
+
|
898
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterATest.list( @list_params )
|
899
|
+
expect( finder ).to eq( [ @a_sc_wosf_a ] )
|
900
|
+
|
901
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.list( @list_params )
|
902
|
+
expect( finder ).to eq( [ @a_sc_wosf_b ] )
|
903
|
+
end
|
904
|
+
end
|
905
|
+
end
|
906
|
+
|
907
|
+
# ==========================================================================
|
908
|
+
|
776
909
|
context 'filter' do
|
777
910
|
it 'filters without chain' do
|
778
911
|
@list_params.filter_data = {
|
@@ -978,6 +1111,81 @@ describe Hoodoo::ActiveRecord::Finder do
|
|
978
1111
|
|
979
1112
|
# ==========================================================================
|
980
1113
|
|
1114
|
+
context 'pure framework filter' do
|
1115
|
+
it 'on created_after' do
|
1116
|
+
@list_params.filter_data = {
|
1117
|
+
'created_after' => @tn - 1.month
|
1118
|
+
}
|
1119
|
+
|
1120
|
+
finder = RSpecModelFinderWithoutSearchOrFilterTest.list( @list_params )
|
1121
|
+
expect( finder ).to eq( [ @b_wosf, @a_wosf ] )
|
1122
|
+
end
|
1123
|
+
|
1124
|
+
it 'on created_before' do
|
1125
|
+
@list_params.filter_data = {
|
1126
|
+
'created_before' => @tn - 1.month
|
1127
|
+
}
|
1128
|
+
|
1129
|
+
finder = RSpecModelFinderWithoutSearchOrFilterTest.list( @list_params )
|
1130
|
+
expect( finder ).to eq( [ @c_wosf, @b_wosf ] )
|
1131
|
+
end
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
# ==========================================================================
|
1135
|
+
|
1136
|
+
context 'as a Hoodoo::ActiveRecord::Base subclass and sub-subclass' do # (instead of explicitly including the Finder module)
|
1137
|
+
context 'custom filter' do
|
1138
|
+
it 'on mapped_code' do
|
1139
|
+
@list_params.filter_data = {
|
1140
|
+
'mapped_code' => @code
|
1141
|
+
}
|
1142
|
+
|
1143
|
+
finder = RSpecModelFinderSubclassTest.list( @list_params )
|
1144
|
+
expect( finder ).to eq( [ @b_sc, @a_sc ] )
|
1145
|
+
|
1146
|
+
finder = RSpecModelFinderSubclassATest.list( @list_params )
|
1147
|
+
expect( finder ).to eq( [ @b_sc_a, @a_sc_a ] )
|
1148
|
+
|
1149
|
+
finder = RSpecModelFinderSubclassBTest.list( @list_params )
|
1150
|
+
expect( finder ).to eq( [ @b_sc_b, @a_sc_b ] )
|
1151
|
+
end
|
1152
|
+
end
|
1153
|
+
|
1154
|
+
context 'pure framework filter' do
|
1155
|
+
it 'on created_after' do
|
1156
|
+
@list_params.filter_data = {
|
1157
|
+
'created_after' => @tn - 1.month
|
1158
|
+
}
|
1159
|
+
|
1160
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterTest.list( @list_params )
|
1161
|
+
expect( finder ).to eq( [ @b_sc_wosf, @a_sc_wosf ] )
|
1162
|
+
|
1163
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterATest.list( @list_params )
|
1164
|
+
expect( finder ).to eq( [ @b_sc_wosf_a, @a_sc_wosf_a ] )
|
1165
|
+
|
1166
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.list( @list_params )
|
1167
|
+
expect( finder ).to eq( [ @b_sc_wosf_b, @a_sc_wosf_b ] )
|
1168
|
+
end
|
1169
|
+
|
1170
|
+
it 'on created_before' do
|
1171
|
+
@list_params.filter_data = {
|
1172
|
+
'created_before' => @tn - 1.month
|
1173
|
+
}
|
1174
|
+
|
1175
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterTest.list( @list_params )
|
1176
|
+
expect( finder ).to eq( [ @c_sc_wosf, @b_sc_wosf ] )
|
1177
|
+
|
1178
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterATest.list( @list_params )
|
1179
|
+
expect( finder ).to eq( [ @c_sc_wosf_a, @b_sc_wosf_a ] )
|
1180
|
+
|
1181
|
+
finder = RSpecModelFinderSubclassWithoutSearchOrFilterBTest.list( @list_params )
|
1182
|
+
expect( finder ).to eq( [ @c_sc_wosf_b, @b_sc_wosf_b ] )
|
1183
|
+
end
|
1184
|
+
end
|
1185
|
+
end
|
1186
|
+
|
1187
|
+
# ==========================================================================
|
1188
|
+
|
981
1189
|
context '#list_in' do
|
982
1190
|
before :each do
|
983
1191
|
@scoped_1 = RSpecModelFinderTest.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoodoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.12.
|
4
|
+
version: 1.12.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loyalty New Zealand
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kgio
|