querybuilder 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/README.rdoc +1 -1
- data/lib/query_builder/info.rb +1 -1
- data/lib/querybuilder_ext.c +2256 -2156
- data/lib/querybuilder_rb.rb +2107 -2020
- data/lib/querybuilder_syntax.rl +1 -1
- data/querybuilder.gemspec +2 -2
- data/test/querybuilder/filters.yml +10 -0
- metadata +4 -4
data/lib/querybuilder_syntax.rl
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
literal = (string | number | rubyless);
|
20
20
|
|
21
21
|
field = var %field ('.' %function var %method ('(' (var %field | literal) (',' (var % field | literal))* ')')*)*;
|
22
|
-
op = ws* ('+' | '-' | '<' | '<=' | '=' | '>=' | '>') $str_a;
|
22
|
+
op = ws* ('+' | '-' | '<' | '<=' | '=' | '>=' | '>' | '<>' | '!=' ) $str_a;
|
23
23
|
text_op = ws+ (('or' | 'and' | 'lt' | 'le' | 'eq' | 'ne' | 'ge' | 'gt' | 'match') $str_a | ('not' $str_a %operator ws+)? 'like' $str_a);
|
24
24
|
operator = (op %operator | text_op %operator ws+ );
|
25
25
|
interval = ws+ ('second'|'minute'|'hour'|'day'|'week'|'month'|'year') $str_a %interval 's'?;
|
data/querybuilder.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{querybuilder}
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gaspard Bucher"]
|
12
|
-
s.date = %q{2012-
|
12
|
+
s.date = %q{2012-08-24}
|
13
13
|
s.description = %q{QueryBuilder is an interpreter for the "pseudo sql" language. This language
|
14
14
|
can be used for two purposes:
|
15
15
|
|
@@ -3,6 +3,16 @@ simple:
|
|
3
3
|
sxp: '[:query, [:scope, [:filter, [:relation, "objects"], [:"=", [:field, "name"], [:string, "foo"]]], "site"]]'
|
4
4
|
res: "%Q{SELECT objects.* FROM objects WHERE objects.name = 'foo'}"
|
5
5
|
|
6
|
+
not_equal:
|
7
|
+
src: "objects where name <> 'foo' in site"
|
8
|
+
sxp: '[:query, [:scope, [:filter, [:relation, "objects"], [:"<>", [:field, "name"], [:string, "foo"]]], "site"]]'
|
9
|
+
res: "%Q{SELECT objects.* FROM objects WHERE objects.name <> 'foo'}"
|
10
|
+
|
11
|
+
not_equal_alt:
|
12
|
+
src: "objects where name != 'foo' in site"
|
13
|
+
sxp: '[:query, [:scope, [:filter, [:relation, "objects"], [:"!=", [:field, "name"], [:string, "foo"]]], "site"]]'
|
14
|
+
res: "%Q{SELECT objects.* FROM objects WHERE objects.name <> 'foo'}"
|
15
|
+
|
6
16
|
recipients_where_kpath:
|
7
17
|
src: "recipients where kpath like 'NRCC%'"
|
8
18
|
res: "[%Q{SELECT objects.* FROM links,objects WHERE objects.kpath LIKE 'NRCC%' AND objects.id = links.target_id AND links.relation_id = 4 AND links.source_id = ?}, id]"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: querybuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 2
|
10
|
+
version: 1.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gaspard Bucher
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-08-24 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|