querybuilder 0.5.4 → 0.5.5
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/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
|