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.
Files changed (4) hide show
  1. data/History.txt +5 -0
  2. data/README.rdoc +1 -1
  3. data/lib/QueryBuilder.rb +15 -10
  4. metadata +3 -3
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.5.4 2009-06-04
2
+
3
+ * 1 minor enhancement:
4
+ * Added 'use_name' to 'add_table' so you can add tables under a different name
5
+
1
6
  == 0.5.4 2009-04-09
2
7
 
3
8
  * 1 minor enhancement:
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = QueryBuilder
2
2
 
3
- * http://github.com/zena/querybuilder/tree/master
3
+ * http://zenadmin.org/524
4
4
 
5
5
  == DESCRIPTION:
6
6
 
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.4'
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((>=|<=|<>|<|=|>)|((not\s+like|like|lt|le|eq|ne|ge|gt)\s+))/
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 << "include clause #{clause.inspect}"
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
- if !@table_counter[table_name]
467
- @table_counter[table_name] = 0
468
- @tables << table_name
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[table_name] += 1
471
- @tables << "#{table_name} AS #{table(table_name)}"
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
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-09 00:00:00 +02:00
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://github.com/zena/querybuilder/tree/master
77
+ homepage: http://zenadmin.org/524
78
78
  post_install_message:
79
79
  rdoc_options:
80
80
  - --main