querybuilder 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|