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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d60ef035ce50444d3aaf2c1c4f2c910a2cbd85b2
4
- data.tar.gz: 7d5f78dc6fe37f8e648777ae43c2f3985ae2970d
3
+ metadata.gz: 540c53d6b58cca5b5c21e13cb222083ad279cb90
4
+ data.tar.gz: 6b1da9d5ebea89aebb385dbbe59822285751e18a
5
5
  SHA512:
6
- metadata.gz: 76f4a138b8b31957f31e8d20700cdfb5741ae4257e4904c6c66df3e1c6b35d4b038cc10813655ff67515ac1b85572f61a8064151ac98f2b541a0d3ec9342c011
7
- data.tar.gz: f83973ca8355438c892619c5bfb51c292a44c574d8f6a1cb8ab8a6f8ba83d89232daad6c41c82c4bee614ecfedc75de0dfb52bf4cc5340bbae5621ca78cfed96
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 'query-params'
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 query-params
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: ["age <= 18", "type = 1"])
36
- # => "age::le(18)|type::eq(1)"
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
- self.send(OPERATORS[operator], field, value)
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
@@ -1,3 +1,3 @@
1
1
  module QueryParams
2
- VERSION = "1.2.2"
2
+ VERSION = "1.3.2"
3
3
  end
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.2.2
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-13 00:00:00.000000000 Z
11
+ date: 2015-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler