like_query 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/like_query/model_extensions.rb +23 -21
- data/lib/like_query/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcd1bdff2f0937db63147911ec7703739405d67bc30f35c19aa8261ee1ea5c38
|
4
|
+
data.tar.gz: e3fd7d9a4a235ed6010f3a950827d69c87e1d351908b915ae29b453c3d91bf90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c73483e9cbd7cf1d93da216d7210780694fd27445241e860e93fbafe0973cefdc2c35eaa01319ab1a8f5c017cf1952e37764bf8606fd3b4e4633f21634118b7c
|
7
|
+
data.tar.gz: ea335097891ce39c54d1177aad72d5b311b944c8923b37c3718c23e09948caeb98f980a47816be4e6b65258667e0b81bc6367c2a5e2781faf8f1e10f8fdfbb3b
|
@@ -101,23 +101,25 @@ module LikeQuery
|
|
101
101
|
match_number = str.match(/^(\d+(?:\.\d+)?)$/)
|
102
102
|
match_range = str.match(/^(\d+(?:\.\d+)?)(\.\.)(\d+(?:\.\d+)?)$/)
|
103
103
|
|
104
|
-
if match_range
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
104
|
+
res = if match_range
|
105
|
+
mr = match_range.to_s
|
106
|
+
{
|
107
|
+
float_from: mr.split('..').first.to_f,
|
108
|
+
float_until: mr.split('..').last.to_f,
|
109
|
+
}
|
110
|
+
elsif match_number
|
111
|
+
mn = match_number.to_s
|
112
|
+
{
|
113
|
+
float_from: mn,
|
114
|
+
float_until: mn,
|
115
|
+
}
|
116
|
+
else
|
117
|
+
{
|
118
|
+
string: "%#{str}%"
|
119
|
+
}
|
120
|
+
end
|
121
|
+
res[:string] = "%#{str}%"
|
122
|
+
res
|
121
123
|
end
|
122
124
|
|
123
125
|
def create_arel(schema_column, search_string, association = nil)
|
@@ -130,10 +132,10 @@ module LikeQuery
|
|
130
132
|
end
|
131
133
|
arel = base_object.arel_table[schema_column]
|
132
134
|
|
133
|
-
if search_string[:float_from]
|
134
|
-
|
135
|
-
|
136
|
-
|
135
|
+
if search_string[:float_from] && [:float, :decimal, :big_decimal, :integer, :bigint].include?(type)
|
136
|
+
|
137
|
+
arel.between(search_string[:float_from]..search_string[:float_until])
|
138
|
+
|
137
139
|
else
|
138
140
|
arel.matches(search_string[:string])
|
139
141
|
end
|
data/lib/like_query/version.rb
CHANGED