arel 2.2.3 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -62,7 +62,6 @@ lib/arel/table.rb
62
62
  lib/arel/tree_manager.rb
63
63
  lib/arel/update_manager.rb
64
64
  lib/arel/visitors.rb
65
- lib/arel/visitors/bind_visitor.rb
66
65
  lib/arel/visitors/depth_first.rb
67
66
  lib/arel/visitors/dot.rb
68
67
  lib/arel/visitors/ibm_db.rb
@@ -107,7 +106,6 @@ test/test_insert_manager.rb
107
106
  test/test_select_manager.rb
108
107
  test/test_table.rb
109
108
  test/test_update_manager.rb
110
- test/visitors/test_bind_visitor.rb
111
109
  test/visitors/test_depth_first.rb
112
110
  test/visitors/test_dot.rb
113
111
  test/visitors/test_ibm_db.rb
@@ -2,38 +2,35 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "arel"
5
- s.version = "2.2.3.20120221150435"
5
+ s.version = "3.0.0.pre.20111119204131"
6
6
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Aaron Patterson", "Bryan Halmkamp", "Emilio Tagua", "Nick Kallen"]
9
- s.date = "2012-02-21"
9
+ s.date = "2011-11-20"
10
10
  s.description = "Arel is a SQL AST manager for Ruby. It\n\n1. Simplifies the generation of complex SQL queries\n2. Adapts to various RDBMS systems\n\nIt is intended to be a framework framework; that is, you can build your own ORM\nwith it, focusing on innovative object and collection modeling as opposed to\ndatabase compatibility and query generation."
11
11
  s.email = ["aaron@tenderlovemaking.com", "bryan@brynary.com", "miloops@gmail.com", "nick@example.org"]
12
12
  s.extra_rdoc_files = ["History.txt", "MIT-LICENSE.txt", "Manifest.txt", "README.markdown"]
13
- s.files = [".autotest", ".gemtest", ".travis.yml", "Gemfile", "History.txt", "MIT-LICENSE.txt", "Manifest.txt", "README.markdown", "Rakefile", "arel.gemspec", "lib/arel.rb", "lib/arel/alias_predication.rb", "lib/arel/attributes.rb", "lib/arel/attributes/attribute.rb", "lib/arel/compatibility/wheres.rb", "lib/arel/crud.rb", "lib/arel/delete_manager.rb", "lib/arel/deprecated.rb", "lib/arel/expression.rb", "lib/arel/expressions.rb", "lib/arel/factory_methods.rb", "lib/arel/insert_manager.rb", "lib/arel/math.rb", "lib/arel/nodes.rb", "lib/arel/nodes/and.rb", "lib/arel/nodes/ascending.rb", "lib/arel/nodes/binary.rb", "lib/arel/nodes/count.rb", "lib/arel/nodes/delete_statement.rb", "lib/arel/nodes/descending.rb", "lib/arel/nodes/equality.rb", "lib/arel/nodes/false.rb", "lib/arel/nodes/function.rb", "lib/arel/nodes/in.rb", "lib/arel/nodes/infix_operation.rb", "lib/arel/nodes/inner_join.rb", "lib/arel/nodes/insert_statement.rb", "lib/arel/nodes/join_source.rb", "lib/arel/nodes/named_function.rb", "lib/arel/nodes/node.rb", "lib/arel/nodes/ordering.rb", "lib/arel/nodes/outer_join.rb", "lib/arel/nodes/select_core.rb", "lib/arel/nodes/select_statement.rb", "lib/arel/nodes/sql_literal.rb", "lib/arel/nodes/string_join.rb", "lib/arel/nodes/table_alias.rb", "lib/arel/nodes/terminal.rb", "lib/arel/nodes/true.rb", "lib/arel/nodes/unary.rb", "lib/arel/nodes/unqualified_column.rb", "lib/arel/nodes/update_statement.rb", "lib/arel/nodes/values.rb", "lib/arel/nodes/with.rb", "lib/arel/order_predications.rb", "lib/arel/predications.rb", "lib/arel/relation.rb", "lib/arel/select_manager.rb", "lib/arel/sql/engine.rb", "lib/arel/sql_literal.rb", "lib/arel/table.rb", "lib/arel/tree_manager.rb", "lib/arel/update_manager.rb", "lib/arel/visitors.rb", "lib/arel/visitors/bind_visitor.rb", "lib/arel/visitors/depth_first.rb", "lib/arel/visitors/dot.rb", "lib/arel/visitors/ibm_db.rb", "lib/arel/visitors/informix.rb", "lib/arel/visitors/join_sql.rb", "lib/arel/visitors/mssql.rb", "lib/arel/visitors/mysql.rb", "lib/arel/visitors/oracle.rb", "lib/arel/visitors/order_clauses.rb", "lib/arel/visitors/postgresql.rb", "lib/arel/visitors/sqlite.rb", "lib/arel/visitors/to_sql.rb", "lib/arel/visitors/visitor.rb", "lib/arel/visitors/where_sql.rb", "test/attributes/test_attribute.rb", "test/helper.rb", "test/nodes/test_as.rb", "test/nodes/test_ascending.rb", "test/nodes/test_bin.rb", "test/nodes/test_count.rb", "test/nodes/test_delete_statement.rb", "test/nodes/test_descending.rb", "test/nodes/test_equality.rb", "test/nodes/test_infix_operation.rb", "test/nodes/test_insert_statement.rb", "test/nodes/test_named_function.rb", "test/nodes/test_node.rb", "test/nodes/test_not.rb", "test/nodes/test_or.rb", "test/nodes/test_select_core.rb", "test/nodes/test_select_statement.rb", "test/nodes/test_sql_literal.rb", "test/nodes/test_sum.rb", "test/nodes/test_update_statement.rb", "test/support/fake_record.rb", "test/test_activerecord_compat.rb", "test/test_attributes.rb", "test/test_crud.rb", "test/test_delete_manager.rb", "test/test_factory_methods.rb", "test/test_insert_manager.rb", "test/test_select_manager.rb", "test/test_table.rb", "test/test_update_manager.rb", "test/visitors/test_bind_visitor.rb", "test/visitors/test_depth_first.rb", "test/visitors/test_dot.rb", "test/visitors/test_ibm_db.rb", "test/visitors/test_informix.rb", "test/visitors/test_join_sql.rb", "test/visitors/test_mssql.rb", "test/visitors/test_mysql.rb", "test/visitors/test_oracle.rb", "test/visitors/test_postgres.rb", "test/visitors/test_sqlite.rb", "test/visitors/test_to_sql.rb"]
13
+ s.files = [".autotest", ".gemtest", ".travis.yml", "Gemfile", "History.txt", "MIT-LICENSE.txt", "Manifest.txt", "README.markdown", "Rakefile", "arel.gemspec", "lib/arel.rb", "lib/arel/alias_predication.rb", "lib/arel/attributes.rb", "lib/arel/attributes/attribute.rb", "lib/arel/compatibility/wheres.rb", "lib/arel/crud.rb", "lib/arel/delete_manager.rb", "lib/arel/deprecated.rb", "lib/arel/expression.rb", "lib/arel/expressions.rb", "lib/arel/factory_methods.rb", "lib/arel/insert_manager.rb", "lib/arel/math.rb", "lib/arel/nodes.rb", "lib/arel/nodes/and.rb", "lib/arel/nodes/ascending.rb", "lib/arel/nodes/binary.rb", "lib/arel/nodes/count.rb", "lib/arel/nodes/delete_statement.rb", "lib/arel/nodes/descending.rb", "lib/arel/nodes/equality.rb", "lib/arel/nodes/false.rb", "lib/arel/nodes/function.rb", "lib/arel/nodes/in.rb", "lib/arel/nodes/infix_operation.rb", "lib/arel/nodes/inner_join.rb", "lib/arel/nodes/insert_statement.rb", "lib/arel/nodes/join_source.rb", "lib/arel/nodes/named_function.rb", "lib/arel/nodes/node.rb", "lib/arel/nodes/ordering.rb", "lib/arel/nodes/outer_join.rb", "lib/arel/nodes/select_core.rb", "lib/arel/nodes/select_statement.rb", "lib/arel/nodes/sql_literal.rb", "lib/arel/nodes/string_join.rb", "lib/arel/nodes/table_alias.rb", "lib/arel/nodes/terminal.rb", "lib/arel/nodes/true.rb", "lib/arel/nodes/unary.rb", "lib/arel/nodes/unqualified_column.rb", "lib/arel/nodes/update_statement.rb", "lib/arel/nodes/values.rb", "lib/arel/nodes/with.rb", "lib/arel/order_predications.rb", "lib/arel/predications.rb", "lib/arel/relation.rb", "lib/arel/select_manager.rb", "lib/arel/sql/engine.rb", "lib/arel/sql_literal.rb", "lib/arel/table.rb", "lib/arel/tree_manager.rb", "lib/arel/update_manager.rb", "lib/arel/visitors.rb", "lib/arel/visitors/depth_first.rb", "lib/arel/visitors/dot.rb", "lib/arel/visitors/ibm_db.rb", "lib/arel/visitors/informix.rb", "lib/arel/visitors/join_sql.rb", "lib/arel/visitors/mssql.rb", "lib/arel/visitors/mysql.rb", "lib/arel/visitors/oracle.rb", "lib/arel/visitors/order_clauses.rb", "lib/arel/visitors/postgresql.rb", "lib/arel/visitors/sqlite.rb", "lib/arel/visitors/to_sql.rb", "lib/arel/visitors/visitor.rb", "lib/arel/visitors/where_sql.rb", "test/attributes/test_attribute.rb", "test/helper.rb", "test/nodes/test_as.rb", "test/nodes/test_ascending.rb", "test/nodes/test_bin.rb", "test/nodes/test_count.rb", "test/nodes/test_delete_statement.rb", "test/nodes/test_descending.rb", "test/nodes/test_equality.rb", "test/nodes/test_infix_operation.rb", "test/nodes/test_insert_statement.rb", "test/nodes/test_named_function.rb", "test/nodes/test_node.rb", "test/nodes/test_not.rb", "test/nodes/test_or.rb", "test/nodes/test_select_core.rb", "test/nodes/test_select_statement.rb", "test/nodes/test_sql_literal.rb", "test/nodes/test_sum.rb", "test/nodes/test_update_statement.rb", "test/support/fake_record.rb", "test/test_activerecord_compat.rb", "test/test_attributes.rb", "test/test_crud.rb", "test/test_delete_manager.rb", "test/test_factory_methods.rb", "test/test_insert_manager.rb", "test/test_select_manager.rb", "test/test_table.rb", "test/test_update_manager.rb", "test/visitors/test_depth_first.rb", "test/visitors/test_dot.rb", "test/visitors/test_ibm_db.rb", "test/visitors/test_informix.rb", "test/visitors/test_join_sql.rb", "test/visitors/test_mssql.rb", "test/visitors/test_mysql.rb", "test/visitors/test_oracle.rb", "test/visitors/test_postgres.rb", "test/visitors/test_sqlite.rb", "test/visitors/test_to_sql.rb"]
14
14
  s.homepage = "http://github.com/rails/arel"
15
15
  s.rdoc_options = ["--main", "README.markdown"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "arel"
18
18
  s.rubygems_version = "1.8.11"
19
19
  s.summary = "Arel is a SQL AST manager for Ruby"
20
- s.test_files = ["test/attributes/test_attribute.rb", "test/nodes/test_as.rb", "test/nodes/test_ascending.rb", "test/nodes/test_bin.rb", "test/nodes/test_count.rb", "test/nodes/test_delete_statement.rb", "test/nodes/test_descending.rb", "test/nodes/test_equality.rb", "test/nodes/test_infix_operation.rb", "test/nodes/test_insert_statement.rb", "test/nodes/test_named_function.rb", "test/nodes/test_node.rb", "test/nodes/test_not.rb", "test/nodes/test_or.rb", "test/nodes/test_select_core.rb", "test/nodes/test_select_statement.rb", "test/nodes/test_sql_literal.rb", "test/nodes/test_sum.rb", "test/nodes/test_update_statement.rb", "test/test_activerecord_compat.rb", "test/test_attributes.rb", "test/test_crud.rb", "test/test_delete_manager.rb", "test/test_factory_methods.rb", "test/test_insert_manager.rb", "test/test_select_manager.rb", "test/test_table.rb", "test/test_update_manager.rb", "test/visitors/test_bind_visitor.rb", "test/visitors/test_depth_first.rb", "test/visitors/test_dot.rb", "test/visitors/test_ibm_db.rb", "test/visitors/test_informix.rb", "test/visitors/test_join_sql.rb", "test/visitors/test_mssql.rb", "test/visitors/test_mysql.rb", "test/visitors/test_oracle.rb", "test/visitors/test_postgres.rb", "test/visitors/test_sqlite.rb", "test/visitors/test_to_sql.rb"]
20
+ s.test_files = ["test/attributes/test_attribute.rb", "test/nodes/test_as.rb", "test/nodes/test_ascending.rb", "test/nodes/test_bin.rb", "test/nodes/test_count.rb", "test/nodes/test_delete_statement.rb", "test/nodes/test_descending.rb", "test/nodes/test_equality.rb", "test/nodes/test_infix_operation.rb", "test/nodes/test_insert_statement.rb", "test/nodes/test_named_function.rb", "test/nodes/test_node.rb", "test/nodes/test_not.rb", "test/nodes/test_or.rb", "test/nodes/test_select_core.rb", "test/nodes/test_select_statement.rb", "test/nodes/test_sql_literal.rb", "test/nodes/test_sum.rb", "test/nodes/test_update_statement.rb", "test/test_activerecord_compat.rb", "test/test_attributes.rb", "test/test_crud.rb", "test/test_delete_manager.rb", "test/test_factory_methods.rb", "test/test_insert_manager.rb", "test/test_select_manager.rb", "test/test_table.rb", "test/test_update_manager.rb", "test/visitors/test_depth_first.rb", "test/visitors/test_dot.rb", "test/visitors/test_ibm_db.rb", "test/visitors/test_informix.rb", "test/visitors/test_join_sql.rb", "test/visitors/test_mssql.rb", "test/visitors/test_mysql.rb", "test/visitors/test_oracle.rb", "test/visitors/test_postgres.rb", "test/visitors/test_sqlite.rb", "test/visitors/test_to_sql.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_development_dependency(%q<minitest>, ["~> 2.11"])
27
- s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
28
- s.add_development_dependency(%q<hoe>, ["~> 2.13"])
26
+ s.add_development_dependency(%q<minitest>, ["~> 2.8"])
27
+ s.add_development_dependency(%q<hoe>, ["~> 2.12"])
29
28
  else
30
- s.add_dependency(%q<minitest>, ["~> 2.11"])
31
- s.add_dependency(%q<rdoc>, ["~> 3.10"])
32
- s.add_dependency(%q<hoe>, ["~> 2.13"])
29
+ s.add_dependency(%q<minitest>, ["~> 2.8"])
30
+ s.add_dependency(%q<hoe>, ["~> 2.12"])
33
31
  end
34
32
  else
35
- s.add_dependency(%q<minitest>, ["~> 2.11"])
36
- s.add_dependency(%q<rdoc>, ["~> 3.10"])
37
- s.add_dependency(%q<hoe>, ["~> 2.13"])
33
+ s.add_dependency(%q<minitest>, ["~> 2.8"])
34
+ s.add_dependency(%q<hoe>, ["~> 2.12"])
38
35
  end
39
36
  end
@@ -33,7 +33,7 @@ require 'arel/sql_literal'
33
33
  ####
34
34
 
35
35
  module Arel
36
- VERSION = '2.2.3'
36
+ VERSION = '3.0.0.rc1'
37
37
 
38
38
  def self.sql raw_sql
39
39
  Arel::Nodes::SqlLiteral.new raw_sql
@@ -39,7 +39,7 @@ module Arel
39
39
  def each &block
40
40
  return enum_for(:each) unless block_given?
41
41
 
42
- ::Arel::Visitors::DepthFirst.new(block).accept self
42
+ Visitors::DepthFirst.new(block).accept self
43
43
  end
44
44
  end
45
45
  end
@@ -6,8 +6,5 @@ module Arel
6
6
  include Arel::AliasPredication
7
7
  include Arel::OrderPredications
8
8
  end
9
-
10
- class BindParam < SqlLiteral
11
- end
12
9
  end
13
10
  end
@@ -51,7 +51,7 @@ module Arel
51
51
  if $VERBOSE
52
52
  warn "(#{caller.first}) where_clauses is deprecated and will be removed in arel 3.0.0 with no replacement"
53
53
  end
54
- to_sql = Visitors::ToSql.new @engine.connection_pool
54
+ to_sql = Visitors::ToSql.new @engine.connection
55
55
  @ctx.wheres.map { |c| to_sql.accept c }
56
56
  end
57
57
 
@@ -161,13 +161,13 @@ module Arel
161
161
 
162
162
  def wheres
163
163
  warn "#{caller[0]}: SelectManager#wheres is deprecated and will be removed in ARel 3.0.0 with no replacement"
164
- Compatibility::Wheres.new @engine.connection_pool, @ctx.wheres
164
+ Compatibility::Wheres.new @engine.connection, @ctx.wheres
165
165
  end
166
166
 
167
167
  def where_sql
168
168
  return if @ctx.wheres.empty?
169
169
 
170
- viz = Visitors::WhereSql.new @engine.connection_pool
170
+ viz = Visitors::WhereSql.new @engine.connection
171
171
  Nodes::SqlLiteral.new viz.accept @ctx
172
172
  end
173
173
 
@@ -222,7 +222,7 @@ module Arel
222
222
  end
223
223
 
224
224
  def order_clauses
225
- visitor = Visitors::OrderClauses.new(@engine.connection_pool)
225
+ visitor = Visitors::OrderClauses.new(@engine.connection)
226
226
  visitor.accept(@ast).map { |x|
227
227
  Nodes::SqlLiteral.new x
228
228
  }
@@ -109,7 +109,6 @@ module Arel
109
109
  alias :visit_Arel_Nodes_Lock :terminal
110
110
  alias :visit_Arel_Nodes_Node :terminal
111
111
  alias :visit_Arel_Nodes_SqlLiteral :terminal
112
- alias :visit_Arel_Nodes_BindParam :terminal
113
112
  alias :visit_Arel_SqlLiteral :terminal
114
113
  alias :visit_BigDecimal :terminal
115
114
  alias :visit_Bignum :terminal
@@ -65,7 +65,6 @@ module Arel
65
65
  visit_edge o, "expr"
66
66
  end
67
67
  alias :visit_Arel_Nodes_Group :unary
68
- alias :visit_Arel_Nodes_BindParam :unary
69
68
  alias :visit_Arel_Nodes_Grouping :unary
70
69
  alias :visit_Arel_Nodes_Having :unary
71
70
  alias :visit_Arel_Nodes_Limit :unary
@@ -4,30 +4,22 @@ require 'date'
4
4
  module Arel
5
5
  module Visitors
6
6
  class ToSql < Arel::Visitors::Visitor
7
- def initialize pool
8
- @pool = pool
9
- @connection = nil
7
+ attr_accessor :last_column
8
+
9
+ def initialize connection
10
+ @connection = connection
11
+ @schema_cache = connection.schema_cache
10
12
  @quoted_tables = {}
11
13
  @quoted_columns = {}
14
+ @last_column = nil
12
15
  end
13
16
 
14
17
  def accept object
15
18
  self.last_column = nil
16
- @pool.with_connection do |conn|
17
- @connection = conn
18
- super
19
- end
19
+ super
20
20
  end
21
21
 
22
22
  private
23
- def last_column= col
24
- Thread.current[:arel_visitors_to_sql_last_column] = col
25
- end
26
-
27
- def last_column
28
- Thread.current[:arel_visitors_to_sql_last_column]
29
- end
30
-
31
23
  def visit_Arel_Nodes_DeleteStatement o
32
24
  [
33
25
  "DELETE FROM #{visit o.relation}",
@@ -97,7 +89,7 @@ key on UpdateManager using UpdateManager#key=
97
89
  end
98
90
 
99
91
  def table_exists? name
100
- @pool.table_exists? name
92
+ @schema_cache.table_exists? name
101
93
  end
102
94
 
103
95
  def column_for attr
@@ -110,13 +102,13 @@ key on UpdateManager using UpdateManager#key=
110
102
  end
111
103
 
112
104
  def column_cache
113
- @pool.columns_hash
105
+ @schema_cache.columns_hash
114
106
  end
115
107
 
116
108
  def visit_Arel_Nodes_Values o
117
109
  "VALUES (#{o.expressions.zip(o.columns).map { |value, attr|
118
110
  if Nodes::SqlLiteral === value
119
- visit value
111
+ visit_Arel_Nodes_SqlLiteral value
120
112
  else
121
113
  quote(value, attr && column_for(attr))
122
114
  end
@@ -382,13 +374,14 @@ key on UpdateManager using UpdateManager#key=
382
374
 
383
375
  def literal o; o end
384
376
 
385
- alias :visit_Arel_Nodes_BindParam :literal
386
377
  alias :visit_Arel_Nodes_SqlLiteral :literal
387
378
  alias :visit_Arel_SqlLiteral :literal # This is deprecated
388
379
  alias :visit_Bignum :literal
389
380
  alias :visit_Fixnum :literal
390
381
 
391
- def quoted o; quote(o, last_column) end
382
+ def quoted o
383
+ quote(o, last_column)
384
+ end
392
385
 
393
386
  alias :visit_ActiveSupport_Multibyte_Chars :quoted
394
387
  alias :visit_ActiveSupport_StringInquirer :quoted
@@ -11,7 +11,6 @@ module Arel
11
11
  Nodes.const_get(k)
12
12
  }.grep(Class).each do |klass|
13
13
  next if Nodes::SqlLiteral == klass
14
- next if Nodes::BindParam == klass
15
14
  next if klass.name =~ /^Arel::Nodes::Test/
16
15
  assert klass.ancestors.include?(Nodes::Node), klass.name
17
16
  end
@@ -3,9 +3,10 @@ module FakeRecord
3
3
  end
4
4
 
5
5
  class Connection
6
- attr_reader :tables, :columns_hash, :visitor
6
+ attr_reader :tables, :columns_hash
7
+ attr_accessor :visitor
7
8
 
8
- def initialize(visitor)
9
+ def initialize(visitor = nil)
9
10
  @tables = %w{ users photos developers products}
10
11
  @columns = {
11
12
  'users' => [
@@ -50,6 +51,10 @@ module FakeRecord
50
51
  "\"#{name.to_s}\""
51
52
  end
52
53
 
54
+ def schema_cache
55
+ self
56
+ end
57
+
53
58
  def quote thing, column = nil
54
59
  if column && column.type == :integer
55
60
  return 'NULL' if thing.nil?
@@ -79,7 +84,8 @@ module FakeRecord
79
84
 
80
85
  def initialize
81
86
  @spec = Spec.new(:adapter => 'america')
82
- @connection = Connection.new(Arel::Visitors::ToSql.new(self))
87
+ @connection = Connection.new
88
+ @connection.visitor = Arel::Visitors::ToSql.new(connection)
83
89
  end
84
90
 
85
91
  def with_connection
@@ -93,6 +99,10 @@ module FakeRecord
93
99
  def columns_hash
94
100
  connection.columns_hash
95
101
  end
102
+
103
+ def schema_cache
104
+ connection
105
+ end
96
106
  end
97
107
 
98
108
  class Base
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the ibm_db visitor' do
6
6
  before do
7
- @visitor = IBM_DB.new Table.engine.connection_pool
7
+ @visitor = IBM_DB.new Table.engine.connection
8
8
  end
9
9
 
10
10
  it 'uses FETCH FIRST n ROWS to limit results' do
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the informix visitor' do
6
6
  before do
7
- @visitor = Informix.new Table.engine.connection_pool
7
+ @visitor = Informix.new Table.engine.connection
8
8
  end
9
9
 
10
10
  it 'uses LIMIT n to limit results' do
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the join_sql visitor' do
6
6
  before do
7
- @visitor = ToSql.new Table.engine.connection_pool
7
+ @visitor = ToSql.new Table.engine.connection
8
8
  @visitor.extend(JoinSql)
9
9
  end
10
10
 
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the mssql visitor' do
6
6
  before do
7
- @visitor = MSSQL.new Table.engine.connection_pool
7
+ @visitor = MSSQL.new Table.engine.connection
8
8
  @table = Arel::Table.new "users"
9
9
  end
10
10
 
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the mysql visitor' do
6
6
  before do
7
- @visitor = MySQL.new Table.engine.connection_pool
7
+ @visitor = MySQL.new Table.engine.connection
8
8
  end
9
9
 
10
10
  it 'squashes parenthesis on multiple unions' do
@@ -4,7 +4,7 @@ module Arel
4
4
  module Visitors
5
5
  describe 'the postgres visitor' do
6
6
  before do
7
- @visitor = PostgreSQL.new Table.engine.connection_pool
7
+ @visitor = PostgreSQL.new Table.engine.connection
8
8
  end
9
9
 
10
10
  describe 'locking' do
@@ -1,24 +1,14 @@
1
1
  require 'helper'
2
2
 
3
- class Arel::Visitors::ToSql
4
- def last_column; Thread.current[:arel_visitors_to_sql_last_column]; end
5
- end
6
-
7
3
  module Arel
8
4
  module Visitors
9
5
  describe 'the to_sql visitor' do
10
6
  before do
11
- @visitor = ToSql.new Table.engine.connection_pool
7
+ @visitor = ToSql.new Table.engine.connection
12
8
  @table = Table.new(:users)
13
9
  @attr = @table[:id]
14
10
  end
15
11
 
16
- it 'works with BindParams' do
17
- node = Nodes::BindParam.new 'omg'
18
- sql = @visitor.accept node
19
- sql.must_be_like 'omg'
20
- end
21
-
22
12
  it 'can define a dispatch method' do
23
13
  visited = false
24
14
  viz = Class.new(Arel::Visitors::Visitor) {
@@ -35,20 +25,6 @@ module Arel
35
25
  assert visited, 'hello method was called'
36
26
  end
37
27
 
38
- it "should be thread safe around usage of last_column" do
39
- visit_integer_column = Thread.new do
40
- Thread.stop
41
- @visitor.send(:visit_Arel_Attributes_Attribute, @attr)
42
- end
43
-
44
- sleep 0.2
45
- @visitor.accept(@table[:name])
46
- assert_equal(:string, @visitor.last_column.type)
47
- visit_integer_column.run
48
- visit_integer_column.join
49
- assert_equal(:string, @visitor.last_column.type)
50
- end
51
-
52
28
  it 'should not quote sql literals' do
53
29
  node = @table[Arel.star]
54
30
  sql = @visitor.accept node
@@ -226,7 +202,7 @@ module Arel
226
202
  end
227
203
  end
228
204
  in_node = Nodes::In.new @attr, %w{ a b c }
229
- visitor = visitor.new(Table.engine.connection_pool)
205
+ visitor = visitor.new(Table.engine.connection)
230
206
  visitor.expected = Table.engine.connection.columns(:users).find { |x|
231
207
  x.name == 'name'
232
208
  }
@@ -314,7 +290,7 @@ module Arel
314
290
  end
315
291
  end
316
292
  in_node = Nodes::NotIn.new @attr, %w{ a b c }
317
- visitor = visitor.new(Table.engine.connection_pool)
293
+ visitor = visitor.new(Table.engine.connection)
318
294
  visitor.expected = Table.engine.connection.columns(:users).find { |x|
319
295
  x.name == 'name'
320
296
  }
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
5
- prerelease:
4
+ version: 3.0.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Aaron Patterson
@@ -12,41 +12,41 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-02-21 00:00:00.000000000 Z
15
+ date: 2011-12-14 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: minitest
19
- requirement: &70248113196260 !ruby/object:Gem::Requirement
19
+ requirement: &70238561431700 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ~>
23
23
  - !ruby/object:Gem::Version
24
- version: '2.11'
24
+ version: '2.9'
25
25
  type: :development
26
26
  prerelease: false
27
- version_requirements: *70248113196260
27
+ version_requirements: *70238561431700
28
28
  - !ruby/object:Gem::Dependency
29
- name: rdoc
30
- requirement: &70248113195480 !ruby/object:Gem::Requirement
29
+ name: hoe
30
+ requirement: &70238561493640 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
- version: '3.10'
35
+ version: '2.12'
36
36
  type: :development
37
37
  prerelease: false
38
- version_requirements: *70248113195480
38
+ version_requirements: *70238561493640
39
39
  - !ruby/object:Gem::Dependency
40
- name: hoe
41
- requirement: &70248113194600 !ruby/object:Gem::Requirement
40
+ name: rdoc
41
+ requirement: &70238562708680 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ~>
45
45
  - !ruby/object:Gem::Version
46
- version: '2.13'
46
+ version: '3.10'
47
47
  type: :development
48
48
  prerelease: false
49
- version_requirements: *70248113194600
49
+ version_requirements: *70238562708680
50
50
  description: ! 'Arel is a SQL AST manager for Ruby. It
51
51
 
52
52
 
@@ -137,7 +137,6 @@ files:
137
137
  - lib/arel/tree_manager.rb
138
138
  - lib/arel/update_manager.rb
139
139
  - lib/arel/visitors.rb
140
- - lib/arel/visitors/bind_visitor.rb
141
140
  - lib/arel/visitors/depth_first.rb
142
141
  - lib/arel/visitors/dot.rb
143
142
  - lib/arel/visitors/ibm_db.rb
@@ -182,7 +181,6 @@ files:
182
181
  - test/test_select_manager.rb
183
182
  - test/test_table.rb
184
183
  - test/test_update_manager.rb
185
- - test/visitors/test_bind_visitor.rb
186
184
  - test/visitors/test_depth_first.rb
187
185
  - test/visitors/test_dot.rb
188
186
  - test/visitors/test_ibm_db.rb
@@ -211,9 +209,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
209
  required_rubygems_version: !ruby/object:Gem::Requirement
212
210
  none: false
213
211
  requirements:
214
- - - ! '>='
212
+ - - ! '>'
215
213
  - !ruby/object:Gem::Version
216
- version: '0'
214
+ version: 1.3.1
217
215
  requirements: []
218
216
  rubyforge_project: arel
219
217
  rubygems_version: 1.8.11
@@ -249,7 +247,6 @@ test_files:
249
247
  - test/test_select_manager.rb
250
248
  - test/test_table.rb
251
249
  - test/test_update_manager.rb
252
- - test/visitors/test_bind_visitor.rb
253
250
  - test/visitors/test_depth_first.rb
254
251
  - test/visitors/test_dot.rb
255
252
  - test/visitors/test_ibm_db.rb
@@ -1,24 +0,0 @@
1
- module Arel
2
- module Visitors
3
- module BindVisitor
4
- def initialize target
5
- @block = nil
6
- super
7
- end
8
-
9
- def accept node, &block
10
- @block = block if block_given?
11
- super
12
- end
13
-
14
- private
15
- def visit_Arel_Nodes_BindParam o
16
- if @block
17
- @block.call
18
- else
19
- super
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,39 +0,0 @@
1
- require 'helper'
2
- require 'arel/visitors/bind_visitor'
3
-
4
- module Arel
5
- module Visitors
6
- class TestBindVisitor < MiniTest::Unit::TestCase
7
- def test_visitor_yields_on_binds
8
- visitor = Class.new(Arel::Visitors::Visitor) {
9
- def initialize omg
10
- end
11
-
12
- include Arel::Visitors::BindVisitor
13
- }.new nil
14
-
15
- bp = Nodes::BindParam.new 'omg'
16
- called = false
17
- visitor.accept(bp) { called = true }
18
- assert called
19
- end
20
-
21
- def test_visitor_only_yields_on_binds
22
- visitor = Class.new(Arel::Visitors::Visitor) {
23
- def initialize omg
24
- end
25
-
26
- include Arel::Visitors::BindVisitor
27
- }.new(nil)
28
-
29
- bp = Arel.sql 'omg'
30
- called = false
31
-
32
- assert_raises(TypeError) {
33
- visitor.accept(bp) { called = true }
34
- }
35
- refute called
36
- end
37
- end
38
- end
39
- end