query_string_filter 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.1.6
@@ -16,17 +16,43 @@ grammar Filter
16
16
  rule simple
17
17
  fuzzy / equality / inequality
18
18
  end
19
-
19
+
20
20
  rule fuzzy
21
+ fuzzy_with_strings / fuzzy_with_string
22
+ end
23
+
24
+ rule fuzzy_with_strings
21
25
  key ospace ':' ospace strings
22
26
  {
23
27
  def eval
24
- { key.eval => /#{strings.eval}/ }
28
+ { key.eval => /#{strings.eval('|')}/ }
25
29
  end
26
30
  }
27
31
  end
28
-
32
+
33
+ rule fuzzy_with_string
34
+ key ospace ':' ospace string
35
+ {
36
+ def eval
37
+ { key.eval => /#{string.eval}/ }
38
+ end
39
+ }
40
+ end
41
+
29
42
  rule equality
43
+ equality_with_strings / equality_with_value
44
+ end
45
+
46
+ rule equality_with_strings
47
+ key ospace '=' ospace strings
48
+ {
49
+ def eval
50
+ { key.eval => strings.eval(',') }
51
+ end
52
+ }
53
+ end
54
+
55
+ rule equality_with_value
30
56
  key ospace '=' ospace value
31
57
  {
32
58
  def eval
@@ -39,6 +65,7 @@ grammar Filter
39
65
  gt / gte / lt / lte
40
66
  end
41
67
 
68
+ # greater than
42
69
  rule gt
43
70
  key ospace '>' ospace value
44
71
  {
@@ -48,6 +75,7 @@ grammar Filter
48
75
  }
49
76
  end
50
77
 
78
+ # greater than or equal
51
79
  rule gte
52
80
  key ospace '>=' ospace value
53
81
  {
@@ -57,6 +85,7 @@ grammar Filter
57
85
  }
58
86
  end
59
87
 
88
+ # less than
60
89
  rule lt
61
90
  key ospace '<' ospace value
62
91
  {
@@ -65,7 +94,8 @@ grammar Filter
65
94
  end
66
95
  }
67
96
  end
68
-
97
+
98
+ # less than or equal
69
99
  rule lte
70
100
  key ospace '<=' ospace value
71
101
  {
@@ -89,10 +119,10 @@ grammar Filter
89
119
  end
90
120
 
91
121
  rule strings
92
- string more:(ospace ',' ospace string)*
122
+ string more:(ospace ',' ospace string)+
93
123
  {
94
- def eval
95
- strings.map { |e| e.eval }.join("|")
124
+ def eval(separator)
125
+ strings.map { |e| e.eval }.join(separator)
96
126
  end
97
127
 
98
128
  def strings
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{query_string_filter}
8
- s.version = "0.1.5"
8
+ s.version = "0.1.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David James"]
12
- s.date = %q{2010-03-08}
12
+ s.date = %q{2010-04-13}
13
13
  s.description = %q{Convert a filter param in a query string to a conditions hash useful for MongoMapper searching}
14
14
  s.email = %q{djames@sunlightfoundation.com}
15
15
  s.extra_rdoc_files = [
@@ -131,6 +131,18 @@ describe "QueryStringFilter" do
131
131
  end
132
132
 
133
133
  describe "compound" do
134
+ it "= with 2 strings" do
135
+ expected = {
136
+ "title" => 'election,texas'
137
+ }
138
+ [
139
+ "title=election,texas",
140
+ "title = election , texas"
141
+ ].each do |s|
142
+ @filter.parse(s).should == expected
143
+ end
144
+ end
145
+
134
146
  it ": with 2 strings" do
135
147
  expected = {
136
148
  "title" => /election|texas/
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 5
9
- version: 0.1.5
8
+ - 6
9
+ version: 0.1.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - David James
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-08 00:00:00 -05:00
17
+ date: 2010-04-13 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency