querybuilder 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
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