querybuilder 0.5.4 → 0.5.5
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/QueryBuilder.rb +15 -10
- metadata +3 -3
data/History.txt
CHANGED
data/README.rdoc
CHANGED
data/lib/QueryBuilder.rb
CHANGED
@@ -10,7 +10,7 @@ Syntax of a query is "RELATION [where ...|] [in ...|from SUB_QUERY|]".
|
|
10
10
|
=end
|
11
11
|
class QueryBuilder
|
12
12
|
attr_reader :tables, :where, :errors, :join_tables, :distinct, :final_parser, :page_size
|
13
|
-
VERSION = '0.5.
|
13
|
+
VERSION = '0.5.5'
|
14
14
|
|
15
15
|
@@main_table = {}
|
16
16
|
@@main_class = {}
|
@@ -280,14 +280,14 @@ class QueryBuilder
|
|
280
280
|
return
|
281
281
|
end
|
282
282
|
allowed = [:op, :bool_op]
|
283
|
-
elsif rest =~ /\A((
|
283
|
+
elsif rest =~ /\A((>=|<=|<>|\!=|<|=|>)|((not\s+like|like|lt|le|eq|ne|ge|gt)\s+))/
|
284
284
|
unless allowed.include?(:op)
|
285
285
|
@errors << clause_error(clause, rest, res)
|
286
286
|
return
|
287
287
|
end
|
288
288
|
op = $1.strip
|
289
289
|
rest = rest[op.size..-1]
|
290
|
-
op = {'lt' => '<','le' => '<=','eq' => '=','ne' => '<>','ge' => '>=','gt' => '>','like' => 'LIKE', 'not like' => 'NOT LIKE'}[op] || $1
|
290
|
+
op = {'lt' => '<', 'le' => '<=', 'eq' => '=', 'ne' => '<>', '!=' => '<>', 'ge' => '>=', 'gt' => '>', 'like' => 'LIKE', 'not like' => 'NOT LIKE'}[op] || $1
|
291
291
|
res << op
|
292
292
|
allowed = [:value, :par_open]
|
293
293
|
elsif rest =~ /\A("|')([^\1]*?)\1/
|
@@ -374,7 +374,7 @@ class QueryBuilder
|
|
374
374
|
if par_count > 0
|
375
375
|
@errors << "invalid clause #{clause.inspect}: missing closing ')'"
|
376
376
|
elsif allowed.include?(:value)
|
377
|
-
@errors << "
|
377
|
+
@errors << "invalid clause #{clause.inspect}"
|
378
378
|
else
|
379
379
|
@where << (has_or ? "(#{res})" : res)
|
380
380
|
end
|
@@ -462,13 +462,18 @@ class QueryBuilder
|
|
462
462
|
end
|
463
463
|
end
|
464
464
|
|
465
|
-
def add_table(table_name)
|
466
|
-
|
467
|
-
|
468
|
-
@
|
465
|
+
def add_table(use_name, table_name = nil)
|
466
|
+
table_name ||= use_name
|
467
|
+
if !@table_counter[use_name]
|
468
|
+
@table_counter[use_name] = 0
|
469
|
+
if use_name != table_name
|
470
|
+
@tables << "#{table_name} as #{use_name}"
|
471
|
+
else
|
472
|
+
@tables << table_name
|
473
|
+
end
|
469
474
|
else
|
470
|
-
@table_counter[
|
471
|
-
@tables << "#{table_name} AS #{table(
|
475
|
+
@table_counter[use_name] += 1
|
476
|
+
@tables << "#{table_name} AS #{table(use_name)}"
|
472
477
|
end
|
473
478
|
end
|
474
479
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: querybuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gaspard Bucher
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04
|
12
|
+
date: 2009-06-04 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -74,7 +74,7 @@ files:
|
|
74
74
|
- test/test_helper.rb
|
75
75
|
- test/test_QueryBuilder.rb
|
76
76
|
has_rdoc: true
|
77
|
-
homepage: http://
|
77
|
+
homepage: http://zenadmin.org/524
|
78
78
|
post_install_message:
|
79
79
|
rdoc_options:
|
80
80
|
- --main
|