query_params 1.2.2 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -8
- data/lib/query_params/condition.rb +10 -3
- data/lib/query_params/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 540c53d6b58cca5b5c21e13cb222083ad279cb90
|
4
|
+
data.tar.gz: 6b1da9d5ebea89aebb385dbbe59822285751e18a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e81e25440947176c532aaf455fdc3f837ac8b22692b8288c4eb29adfdc51067d60142495824b881d69e0b85b441c6cbb736c1cf9f2b09b952b08416b73f7a350
|
7
|
+
data.tar.gz: 6d0d2666b67179478b35922f193e68a999123b7ce8e41105a5937a7ac1d0c3539856a8ce731ba5d844baecb06bc8b1b23cde329dc2b415a5066061b9d525fd17
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ http://domain.com/search?filters=age::ge(18)|age::le(25)
|
|
13
13
|
Add this line to your application's Gemfile:
|
14
14
|
|
15
15
|
```ruby
|
16
|
-
gem '
|
16
|
+
gem 'query_params'
|
17
17
|
```
|
18
18
|
|
19
19
|
And then execute:
|
@@ -22,18 +22,18 @@ And then execute:
|
|
22
22
|
|
23
23
|
Or install it yourself as:
|
24
24
|
|
25
|
-
$ gem install
|
25
|
+
$ gem install query_params
|
26
26
|
|
27
27
|
## Usage
|
28
28
|
|
29
29
|
```ruby
|
30
|
-
# Complete URI
|
31
|
-
URI::QueryParams.build_uri(base_uri: "http://domain.com/search", q: "Mark", filters: ["age <= 18", "type = 1"])
|
32
|
-
# => "http://domain.com/search?q=Mark&filters=age::le(18)|type::eq(1)"
|
33
|
-
|
34
30
|
# Only query params
|
35
|
-
URI::QueryParams.filters(filters: ["
|
36
|
-
# => "
|
31
|
+
URI::QueryParams.filters(filters: ["type = 1", "height <= 1.8", "age between 18 and 21"])
|
32
|
+
# => "type::eq(1)|height::le(1.8)|age::bt(18,21)"
|
33
|
+
|
34
|
+
# Complete URI
|
35
|
+
URI::QueryParams.build_uri(base_uri: "http://domain.com/search", q: "Mark", filters: ["age <= 18"])
|
36
|
+
# => "http://domain.com/search?q=Mark&filters=age::le(18)"
|
37
37
|
```
|
38
38
|
|
39
39
|
## Contributing
|
@@ -2,7 +2,7 @@ require "query_params"
|
|
2
2
|
|
3
3
|
module Condition
|
4
4
|
|
5
|
-
OPERATORS = { "=" => "eq", ">=" => "ge", "<=" => "le" }
|
5
|
+
OPERATORS = { "=" => "eq", ">=" => "ge", "<=" => "le", "between" => "bt" }
|
6
6
|
|
7
7
|
def set_conditions(conditions)
|
8
8
|
|
@@ -21,12 +21,19 @@ module Condition
|
|
21
21
|
raise(ArgumentError, "Invalid condition: #{condition}. Send operator separate for space.") if tokens.size < 3
|
22
22
|
|
23
23
|
field = tokens[0].strip
|
24
|
-
operator = tokens[1].strip
|
24
|
+
operator = tokens[1].strip.downcase
|
25
25
|
value = tokens[2..tokens.size].join(" ").strip.gsub(/['"]/,"")
|
26
26
|
|
27
27
|
raise(ArgumentError, "Invalid operator. Accepted tokens: #{OPERATORS.values}") if OPERATORS[operator].nil?
|
28
28
|
|
29
|
-
|
29
|
+
if operator != "between"
|
30
|
+
# queryParam.eq('age', 18)
|
31
|
+
self.send(OPERATORS[operator], field, value)
|
32
|
+
else
|
33
|
+
bt_values = value.downcase.split(' and ')
|
34
|
+
# queryParam.bt('age', 18, 21)
|
35
|
+
self.send(OPERATORS[operator], field, bt_values[0], bt_values[1])
|
36
|
+
end
|
30
37
|
end
|
31
38
|
|
32
39
|
end
|
data/lib/query_params/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: query_params
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Souza
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|