arel 4.0.2 → 5.0.1.20140414130214

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe1827bf9b3fb8d0df377a874b604c6d1fbb4387
4
- data.tar.gz: 050b51b492c74c09be3aa3f4a58487ef3150c57b
3
+ metadata.gz: 86a3156add2973e4e2cd8b3a852e82c26c073601
4
+ data.tar.gz: 06fc106d1ef5fdc41de327a78a8e0b467096202b
5
5
  SHA512:
6
- metadata.gz: 200b67f47b08b79e6b514035398fd8f00d810e786af0de57862ee68ec4ff228f68b036419273add78450df7c18f6da4b54b68e6b78eeacbb98575c40d426d2be
7
- data.tar.gz: 692a06c47c099852541d12c6499ef2c9bbe0f943fc5f2023f6523e6a819c14d43e7add74e834b9aa0290a17156bc4bf38ba32d043daf6248e20765664104141c
6
+ metadata.gz: ba39500686768a6865b688ce693dd6bc69e2e7ea1a7acb52ab0ad1f0d00fefb85b537f4c5405e865abe67016c166f06503ded328c3b79c2a34156c8ed75e6293
7
+ data.tar.gz: 1d916874f785a6fc85a2df91633edbc4b607612c876160e6fce14d03ebc17694fd87be197b793ec44f89a68a9815dba07161717333fb15575e36419efae16508
data/.travis.yml CHANGED
@@ -1,9 +1,13 @@
1
1
  script: "rake test"
2
2
  rvm:
3
- - rbx-19mode
3
+ - rbx
4
4
  - jruby
5
5
  - 1.9.3
6
6
  - 2.0.0
7
+ - 2.1.0
8
+ matrix:
9
+ allow_failures:
10
+ - rvm: rbx
7
11
  notifications:
8
12
  email: false
9
13
  irc:
data/Gemfile CHANGED
@@ -5,7 +5,7 @@
5
5
  source "https://rubygems.org/"
6
6
 
7
7
 
8
- gem "minitest", "~>4.4", :group => [:development, :test]
8
+ gem "minitest", "~>5.1", :group => [:development, :test]
9
9
  gem "rdoc", "~>4.0", :group => [:development, :test]
10
10
  gem "hoe", "~>3.5", :group => [:development, :test]
11
11
 
data/History.txt CHANGED
@@ -1,7 +1,24 @@
1
- === 4.0.2 / 2014-02-05
1
+ == 5.0.1 / 2014-04-14
2
+
3
+ * Bug Fixes
4
+
5
+ * Fix `SqlLiteral` YAML serialization
6
+ * PostgreSQL bugfix for invalid SQL in subqueries
7
+
8
+ == 5.0.0 / 2013-12-04
9
+
10
+ * Enhancements
11
+
12
+ * Remove deprecated code
2
13
 
3
14
  * Bug Fixes
4
15
 
16
+ * Fix serializing a relation when calling `to_yaml`
17
+
18
+ === 4.0.2 / 2014-02-05
19
+
20
+ * Bug Fixes
21
+
5
22
  * Fix `SqlLiteral` YAML serialization
6
23
  * PostgreSQL bugfix for invalid SQL in subqueries
7
24
 
@@ -17,6 +34,57 @@
17
34
  * Make visitors threadsafe by removing @last_column
18
35
  * Support `columns_for_distinct` with Oracle adapter
19
36
 
37
+ == 3.0.3 / 2013-11-12
38
+
39
+ * Enhancements
40
+
41
+ * Support ANSI 2003 window functions
42
+
43
+ * Bug Fixes
44
+
45
+ * Fix joins in Informix
46
+
47
+ == 3.0.2 / 2012-02-21
48
+
49
+ * Enhancements
50
+
51
+ * Added a module for visiting and transforming bind values
52
+ * Fix in [] to be false, not in [] to be true
53
+
54
+ * Bug Fixes
55
+
56
+ * Revert fix for LIMIT / OFFSET when query is ordered in Oracle
57
+
58
+ == 3.0.1 / 2012-02-17
59
+
60
+ * Bug Fixes
61
+
62
+ * Fixed LIMIT / OFFSET when query is ordered in Oracle
63
+
64
+ == 3.0.0 / 2012-01-12
65
+
66
+ * Enhancements
67
+
68
+ * Support connection pool and schema cache
69
+
70
+ * Bug Fixes
71
+
72
+ * Conditions with no column can be followed by other conditions in Postgres
73
+
74
+ == 2.2.3 / 2012-02-21
75
+
76
+ * Enhancements
77
+
78
+ * Added a module for visiting and transforming bind values
79
+
80
+ == 2.2.2 / 2012-02-20
81
+
82
+ * Enhancements
83
+
84
+ * Support LOCK
85
+ * Allow using non-table alias as a right-hand relation name
86
+ * Added SelectManager#distinct
87
+
20
88
  == 2.2.1 / 2011-09-15
21
89
 
22
90
  * Enhancements
data/Manifest.txt CHANGED
@@ -110,7 +110,6 @@ test/nodes/test_true.rb
110
110
  test/nodes/test_update_statement.rb
111
111
  test/nodes/test_window.rb
112
112
  test/support/fake_record.rb
113
- test/test_activerecord_compat.rb
114
113
  test/test_attributes.rb
115
114
  test/test_crud.rb
116
115
  test/test_delete_manager.rb
data/README.markdown CHANGED
@@ -7,7 +7,7 @@
7
7
  Arel is a SQL AST manager for Ruby. It
8
8
 
9
9
  1. Simplifies the generation of complex SQL queries
10
- 2. Adapts to various RDBMS systems
10
+ 2. Adapts to various RDBMSes
11
11
 
12
12
  It is intended to be a framework framework; that is, you can build your own ORM
13
13
  with it, focusing on innovative object and collection modeling as opposed to
@@ -87,12 +87,6 @@ All operators are chainable in this way, and they are chainable any number of ti
87
87
  users.where(users[:name].eq('bob')).where(users[:age].lt(25))
88
88
  ```
89
89
 
90
- Of course, many of the operators take multiple arguments, so the last example can be written more tersely:
91
-
92
- ```ruby
93
- users.where(users[:name].eq('bob'), users[:age].lt(25))
94
- ```
95
-
96
90
  The `OR` operator works like this:
97
91
 
98
92
  ```ruby
@@ -111,12 +105,10 @@ Suppose we have a table `products` with prices in different currencies. And we h
111
105
 
112
106
  ```ruby
113
107
  products = Arel::Table.new(:products)
114
- products.columns
115
- # => [products[:id], products[:name], products[:price], products[:currency_id]]
108
+ # Attributes: [:id, :name, :price, :currency_id]
116
109
 
117
110
  currency_rates = Arel::Table.new(:currency_rates)
118
- currency_rates.columns
119
- # => [currency_rates[:from_id], currency_rates[:to_id], currency_rates[:date], currency_rates[:rate]]
111
+ # Attributes: [:from_id, :to_id, :date, :rate]
120
112
  ```
121
113
 
122
114
  Now, to order products by price in user preferred currency simply call:
@@ -139,8 +131,7 @@ comments = Arel::Table.new(:comments)
139
131
  And this table has the following attributes:
140
132
 
141
133
  ```ruby
142
- comments.columns
143
- # => [comments[:id], comments[:body], comments[:parent_id]]
134
+ # [:id, :body, :parent_id]
144
135
  ```
145
136
 
146
137
  The `parent_id` column is a foreign key from the `comments` table to itself. Now, joining a table to itself requires aliasing in SQL. In fact, you may alias in Arel as well:
data/arel.gemspec CHANGED
@@ -1,41 +1,41 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: arel 4.0.2.20140205180311 ruby lib
2
+ # stub: arel 5.0.1.20140414130214 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "arel"
6
- s.version = "4.0.2.20140205180311"
6
+ s.version = "5.0.1.20140414130214"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["Aaron Patterson", "Bryan Halmkamp", "Emilio Tagua", "Nick Kallen"]
11
- s.date = "2014-02-05"
12
- 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
+ s.date = "2014-04-14"
12
+ s.description = "Arel is a SQL AST manager for Ruby. It\n\n1. Simplifies the generation of complex SQL queries\n2. Adapts to various RDBMSes\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."
13
13
  s.email = ["aaron@tenderlovemaking.com", "bryan@brynary.com", "miloops@gmail.com", "nick@example.org"]
14
14
  s.extra_rdoc_files = ["History.txt", "MIT-LICENSE.txt", "Manifest.txt", "README.markdown"]
15
- 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/extract.rb", "lib/arel/nodes/false.rb", "lib/arel/nodes/function.rb", "lib/arel/nodes/grouping.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/outer_join.rb", "lib/arel/nodes/over.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/window.rb", "lib/arel/nodes/with.rb", "lib/arel/order_predications.rb", "lib/arel/predications.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", "lib/arel/window_predications.rb", "test/attributes/test_attribute.rb", "test/helper.rb", "test/nodes/test_and.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_distinct.rb", "test/nodes/test_equality.rb", "test/nodes/test_extract.rb", "test/nodes/test_false.rb", "test/nodes/test_grouping.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_over.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_table_alias.rb", "test/nodes/test_true.rb", "test/nodes/test_update_statement.rb", "test/nodes/test_window.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_dispatch_contamination.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"]
15
+ 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/extract.rb", "lib/arel/nodes/false.rb", "lib/arel/nodes/function.rb", "lib/arel/nodes/grouping.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/outer_join.rb", "lib/arel/nodes/over.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/window.rb", "lib/arel/nodes/with.rb", "lib/arel/order_predications.rb", "lib/arel/predications.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", "lib/arel/window_predications.rb", "test/attributes/test_attribute.rb", "test/helper.rb", "test/nodes/test_and.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_distinct.rb", "test/nodes/test_equality.rb", "test/nodes/test_extract.rb", "test/nodes/test_false.rb", "test/nodes/test_grouping.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_over.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_table_alias.rb", "test/nodes/test_true.rb", "test/nodes/test_update_statement.rb", "test/nodes/test_window.rb", "test/support/fake_record.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_dispatch_contamination.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"]
16
16
  s.homepage = "http://github.com/rails/arel"
17
17
  s.licenses = ["MIT"]
18
18
  s.rdoc_options = ["--main", "README.markdown"]
19
19
  s.rubyforge_project = "arel"
20
- s.rubygems_version = "2.2.0"
20
+ s.rubygems_version = "2.2.2"
21
21
  s.summary = "Arel is a SQL AST manager for Ruby"
22
- s.test_files = ["test/attributes/test_attribute.rb", "test/nodes/test_and.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_distinct.rb", "test/nodes/test_equality.rb", "test/nodes/test_extract.rb", "test/nodes/test_false.rb", "test/nodes/test_grouping.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_over.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_table_alias.rb", "test/nodes/test_true.rb", "test/nodes/test_update_statement.rb", "test/nodes/test_window.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_dispatch_contamination.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"]
22
+ s.test_files = ["test/attributes/test_attribute.rb", "test/nodes/test_and.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_distinct.rb", "test/nodes/test_equality.rb", "test/nodes/test_extract.rb", "test/nodes/test_false.rb", "test/nodes/test_grouping.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_over.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_table_alias.rb", "test/nodes/test_true.rb", "test/nodes/test_update_statement.rb", "test/nodes/test_window.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_dispatch_contamination.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"]
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  s.specification_version = 4
26
26
 
27
27
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
- s.add_development_dependency(%q<minitest>, ["~> 5.2"])
28
+ s.add_development_dependency(%q<minitest>, ["~> 5.3"])
29
29
  s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
30
- s.add_development_dependency(%q<hoe>, ["~> 3.8"])
30
+ s.add_development_dependency(%q<hoe>, ["~> 3.6"])
31
31
  else
32
- s.add_dependency(%q<minitest>, ["~> 5.2"])
32
+ s.add_dependency(%q<minitest>, ["~> 5.3"])
33
33
  s.add_dependency(%q<rdoc>, ["~> 4.0"])
34
- s.add_dependency(%q<hoe>, ["~> 3.8"])
34
+ s.add_dependency(%q<hoe>, ["~> 3.6"])
35
35
  end
36
36
  else
37
- s.add_dependency(%q<minitest>, ["~> 5.2"])
37
+ s.add_dependency(%q<minitest>, ["~> 5.3"])
38
38
  s.add_dependency(%q<rdoc>, ["~> 4.0"])
39
- s.add_dependency(%q<hoe>, ["~> 3.8"])
39
+ s.add_dependency(%q<hoe>, ["~> 3.6"])
40
40
  end
41
41
  end
data/lib/arel/crud.rb CHANGED
@@ -2,7 +2,7 @@ module Arel
2
2
  ###
3
3
  # FIXME hopefully we can remove this
4
4
  module Crud
5
- def compile_update values
5
+ def compile_update values, pk
6
6
  um = UpdateManager.new @engine
7
7
 
8
8
  if Nodes::SqlLiteral === values
@@ -10,6 +10,7 @@ module Arel
10
10
  else
11
11
  relation = values.first.first.relation
12
12
  end
13
+ um.key = pk
13
14
  um.table relation
14
15
  um.set values
15
16
  um.take @ast.limit.expr if @ast.limit
@@ -18,19 +19,6 @@ module Arel
18
19
  um
19
20
  end
20
21
 
21
- # FIXME: this method should go away
22
- def update values
23
- if $VERBOSE
24
- warn <<-eowarn
25
- update (#{caller.first}) is deprecated and will be removed in Arel 4.0.0. Please
26
- switch to `compile_update`
27
- eowarn
28
- end
29
-
30
- um = compile_update values
31
- @engine.connection.update um.to_sql, 'AREL'
32
- end
33
-
34
22
  def compile_insert values
35
23
  im = create_insert
36
24
  im.insert values
@@ -41,17 +29,6 @@ switch to `compile_update`
41
29
  InsertManager.new @engine
42
30
  end
43
31
 
44
- # FIXME: this method should go away
45
- def insert values
46
- if $VERBOSE
47
- warn <<-eowarn
48
- insert (#{caller.first}) is deprecated and will be removed in Arel 4.0.0. Please
49
- switch to `compile_insert`
50
- eowarn
51
- end
52
- @engine.connection.insert compile_insert(values).to_sql
53
- end
54
-
55
32
  def compile_delete
56
33
  dm = DeleteManager.new @engine
57
34
  dm.wheres = @ctx.wheres
@@ -59,14 +36,5 @@ switch to `compile_insert`
59
36
  dm
60
37
  end
61
38
 
62
- def delete
63
- if $VERBOSE
64
- warn <<-eowarn
65
- delete (#{caller.first}) is deprecated and will be removed in Arel 4.0.0. Please
66
- switch to `compile_delete`
67
- eowarn
68
- end
69
- @engine.connection.delete compile_delete.to_sql, 'AREL'
70
- end
71
39
  end
72
40
  end
@@ -2,6 +2,8 @@ module Arel
2
2
  class SelectManager < Arel::TreeManager
3
3
  include Arel::Crud
4
4
 
5
+ STRING_OR_SYMBOL_CLASS = [Symbol, String]
6
+
5
7
  def initialize engine, table = nil
6
8
  super(engine)
7
9
  @ast = Nodes::SelectStatement.new
@@ -47,14 +49,6 @@ module Arel
47
49
  create_table_alias grouping(@ast), Nodes::SqlLiteral.new(other)
48
50
  end
49
51
 
50
- def where_clauses
51
- if $VERBOSE
52
- warn "(#{caller.first}) where_clauses is deprecated and will be removed in arel 4.0.0 with no replacement"
53
- end
54
- to_sql = Visitors::ToSql.new @engine.connection
55
- @ctx.wheres.map { |c| to_sql.accept c }
56
- end
57
-
58
52
  def lock locking = Arel.sql('FOR UPDATE')
59
53
  case locking
60
54
  when true
@@ -136,7 +130,7 @@ module Arel
136
130
  # FIXME: converting these to SQLLiterals is probably not good, but
137
131
  # rails tests require it.
138
132
  @ctx.projections.concat projections.map { |x|
139
- [Symbol, String].include?(x.class) ? SqlLiteral.new(x.to_s) : x
133
+ STRING_OR_SYMBOL_CLASS.include?(x.class) ? SqlLiteral.new(x.to_s) : x
140
134
  }
141
135
  self
142
136
  end
@@ -160,7 +154,7 @@ module Arel
160
154
  def order *expr
161
155
  # FIXME: We SHOULD NOT be converting these to SqlLiteral automatically
162
156
  @ast.orders.concat expr.map { |x|
163
- String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x
157
+ STRING_OR_SYMBOL_CLASS.include?(x.class) ? Nodes::SqlLiteral.new(x.to_s) : x
164
158
  }
165
159
  self
166
160
  end
@@ -169,11 +163,6 @@ module Arel
169
163
  @ast.orders
170
164
  end
171
165
 
172
- def wheres
173
- warn "#{caller[0]}: SelectManager#wheres is deprecated and will be removed in Arel 4.0.0 with no replacement"
174
- Compatibility::Wheres.new @engine.connection, @ctx.wheres
175
- end
176
-
177
166
  def where_sql
178
167
  return if @ctx.wheres.empty?
179
168
 
@@ -272,31 +261,6 @@ module Arel
272
261
  @engine.connection.send(:select, to_sql, 'AREL').map { |x| Row.new(x) }
273
262
  end
274
263
 
275
- # FIXME: this method should go away
276
- def insert values
277
- if $VERBOSE
278
- warn <<-eowarn
279
- insert (#{caller.first}) is deprecated and will be removed in Arel 4.0.0. Please
280
- switch to `compile_insert`
281
- eowarn
282
- end
283
-
284
- im = compile_insert(values)
285
- table = @ctx.froms
286
-
287
- primary_key = table.primary_key
288
- primary_key_name = primary_key.name if primary_key
289
-
290
- # FIXME: in AR tests values sometimes were Array and not Hash therefore is_a?(Hash) check is added
291
- primary_key_value = primary_key && values.is_a?(Hash) && values[primary_key]
292
- im.into table
293
- # Oracle adapter needs primary key name to generate RETURNING ... INTO ... clause
294
- # for tables which assign primary key value using trigger.
295
- # RETURNING ... INTO ... clause will be added only if primary_key_value is nil
296
- # therefore it is necessary to pass primary key value as well
297
- @engine.connection.insert im.to_sql, 'AREL', primary_key_name, primary_key_value
298
- end
299
-
300
264
  private
301
265
  def collapse exprs, existing = nil
302
266
  exprs = exprs.unshift(existing.expr) if existing
data/lib/arel/table.rb CHANGED
@@ -100,17 +100,6 @@ primary_key (#{caller.first}) is deprecated and will be removed in Arel 4.0.0
100
100
  from(self).having expr
101
101
  end
102
102
 
103
- def columns
104
- if $VERBOSE
105
- warn <<-eowarn
106
- (#{caller.first}) Arel::Table#columns is deprecated and will be removed in
107
- Arel 4.0.0 with no replacement. PEW PEW PEW!!!
108
- eowarn
109
- end
110
- @columns ||=
111
- attributes_for @engine.connection.columns(@name, "#{@name} Columns")
112
- end
113
-
114
103
  def [] name
115
104
  ::Arel::Attribute.new self, name
116
105
  end
@@ -149,15 +138,5 @@ Arel 4.0.0 with no replacement. PEW PEW PEW!!!
149
138
  end
150
139
  end
151
140
 
152
- @@table_cache = nil
153
- def self.table_cache engine # :nodoc:
154
- if $VERBOSE
155
- warn <<-eowarn
156
- (#{caller.first}) Arel::Table.table_cache is deprecated and will be removed in
157
- Arel 4.0.0 with no replacement. PEW PEW PEW!!!
158
- eowarn
159
- end
160
- @@table_cache ||= Hash[engine.connection.tables.map { |x| [x,true] }]
161
- end
162
141
  end
163
142
  end
@@ -4,9 +4,12 @@ module Arel
4
4
 
5
5
  attr_reader :ast, :engine
6
6
 
7
+ attr_accessor :bind_values
8
+
7
9
  def initialize engine
8
10
  @engine = engine
9
11
  @ctx = nil
12
+ @bind_values = []
10
13
  end
11
14
 
12
15
  def to_dot
@@ -62,8 +62,8 @@ module Arel
62
62
  x.projections.length == 1 && Arel::Nodes::Count === x.projections.first
63
63
  end
64
64
 
65
- # fixme raise exception of there is no pk?
66
- # fixme!! Table.primary_key will be depricated. What is the replacement??
65
+ # FIXME raise exception of there is no pk?
66
+ # FIXME!! Table.primary_key will be deprecated. What is the replacement??
67
67
  def find_left_table_pk o, a
68
68
  return visit o.primary_key, a if o.instance_of? Arel::Table
69
69
  find_left_table_pk o.left, a if o.kind_of? Arel::Nodes::Join
@@ -42,6 +42,10 @@ module Arel
42
42
  # `getconstant` should be a hash lookup, and no object is duped when the
43
43
  # value of the constant is pushed on the stack. Hence the crazy
44
44
  # constants below.
45
+ #
46
+ # `matches` and `doesNotMatch` operate case-insensitively via Visitor subclasses
47
+ # specialized for specific databases when necessary.
48
+ #
45
49
 
46
50
  WHERE = ' WHERE ' # :nodoc:
47
51
  SPACE = ' ' # :nodoc:
@@ -85,17 +89,7 @@ module Arel
85
89
  if o.orders.empty? && o.limit.nil?
86
90
  wheres = o.wheres
87
91
  else
88
- key = o.key
89
- unless key
90
- warn(<<-eowarn) if $VERBOSE
91
- (#{caller.first}) Using UpdateManager without setting UpdateManager#key is
92
- deprecated and support will be removed in Arel 4.0.0. Please set the primary
93
- key on UpdateManager using UpdateManager#key= '#{key.inspect}'
94
- eowarn
95
- key = o.relation.primary_key
96
- end
97
-
98
- wheres = [Nodes::In.new(key, [build_subselect(key, o)])]
92
+ wheres = [Nodes::In.new(o.key, [build_subselect(o.key, o)])]
99
93
  end
100
94
 
101
95
  [
data/lib/arel.rb CHANGED
@@ -32,7 +32,7 @@ require 'arel/sql_literal'
32
32
  ####
33
33
 
34
34
  module Arel
35
- VERSION = '4.0.2'
35
+ VERSION = '5.0.1'
36
36
 
37
37
  def self.sql raw_sql
38
38
  Arel::Nodes::SqlLiteral.new raw_sql
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestAscending < MiniTest::Unit::TestCase
5
+ class TestAscending < Minitest::Test
6
6
  def test_construct
7
7
  ascending = Ascending.new 'zomg'
8
8
  assert_equal 'zomg', ascending.expr
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestBin < MiniTest::Unit::TestCase
5
+ class TestBin < Minitest::Test
6
6
  def test_new
7
7
  assert Arel::Nodes::Bin.new('zomg')
8
8
  end
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestDescending < MiniTest::Unit::TestCase
5
+ class TestDescending < Minitest::Test
6
6
  def test_construct
7
7
  descending = Descending.new 'zomg'
8
8
  assert_equal 'zomg', descending.expr
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestInfixOperation < MiniTest::Unit::TestCase
5
+ class TestInfixOperation < Minitest::Test
6
6
  def test_construct
7
7
  operation = InfixOperation.new :+, 1, 2
8
8
  assert_equal :+, operation.operator
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestNamedFunction < MiniTest::Unit::TestCase
5
+ class TestNamedFunction < Minitest::Test
6
6
  def test_construct
7
7
  function = NamedFunction.new 'omg', 'zomg'
8
8
  assert_equal 'omg', function.name
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
 
3
3
  module Arel
4
- class TestNode < MiniTest::Unit::TestCase
4
+ class TestNode < Minitest::Test
5
5
  def test_includes_factory_methods
6
6
  assert Node.new.respond_to?(:create_join)
7
7
  end
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Nodes
5
- class TestSelectCore < MiniTest::Unit::TestCase
5
+ class TestSelectCore < Minitest::Test
6
6
  def test_clone
7
7
  core = Arel::Nodes::SelectCore.new
8
8
  core.froms = %w[a b c]
data/test/test_crud.rb CHANGED
@@ -45,7 +45,7 @@ module Arel
45
45
  table = Table.new :users
46
46
  fc = FakeCrudder.new
47
47
  fc.from table
48
- stmt = fc.compile_update [[table[:id], 'foo']]
48
+ stmt = fc.compile_update [[table[:id], 'foo']], Arel::Attributes::Attribute.new(table, 'id')
49
49
  assert_instance_of Arel::UpdateManager, stmt
50
50
  end
51
51
  end
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module FactoryMethods
5
- class TestFactoryMethods < MiniTest::Unit::TestCase
5
+ class TestFactoryMethods < Minitest::Test
6
6
  class Factory
7
7
  include Arel::FactoryMethods
8
8
  end
@@ -1,58 +1,6 @@
1
1
  require 'helper'
2
2
 
3
3
  module Arel
4
- class EngineProxy
5
- attr_reader :executed
6
- attr_reader :connection_pool
7
- attr_reader :spec
8
- attr_reader :config
9
-
10
- def initialize engine
11
- @engine = engine
12
- @executed = []
13
- @connection_pool = self
14
- @spec = self
15
- @config = { :adapter => 'sqlite3' }
16
- end
17
-
18
- def with_connection
19
- yield self
20
- end
21
-
22
- def connection
23
- self
24
- end
25
-
26
- def quote_table_name thing; @engine.connection.quote_table_name thing end
27
- def quote_column_name thing; @engine.connection.quote_column_name thing end
28
- def quote thing, column; @engine.connection.quote thing, column end
29
- def columns table, message = nil
30
- @engine.connection.columns table, message
31
- end
32
-
33
- def columns_hash
34
- @engine.connection.columns_hash
35
- end
36
-
37
- def table_exists? name
38
- @engine.connection.table_exists? name
39
- end
40
-
41
- def tables
42
- @engine.connection.tables
43
- end
44
-
45
- def visitor
46
- @engine.connection.visitor
47
- end
48
-
49
- def execute sql, name = nil, *args
50
- @executed << sql
51
- end
52
- alias :update :execute
53
- alias :delete :execute
54
- alias :insert :execute
55
- end
56
4
 
57
5
  describe 'select manager' do
58
6
  def test_join_sources
@@ -61,6 +9,13 @@ module Arel
61
9
  assert_equal "SELECT FROM 'foo'", manager.to_sql
62
10
  end
63
11
 
12
+ def test_manager_stores_bind_values
13
+ manager = Arel::SelectManager.new Table.engine
14
+ assert_equal [], manager.bind_values
15
+ manager.bind_values = [1]
16
+ assert_equal [1], manager.bind_values
17
+ end
18
+
64
19
  describe 'backwards compatibility' do
65
20
  describe 'project' do
66
21
  it 'accepts symbols as sql literals' do
@@ -435,20 +390,6 @@ module Arel
435
390
  end
436
391
  end
437
392
 
438
- describe 'insert' do
439
- it 'uses the select FROM' do
440
- engine = EngineProxy.new Table.engine
441
- table = Table.new :users
442
- manager = Arel::SelectManager.new engine
443
- manager.from table
444
- manager.insert 'VALUES(NULL)'
445
-
446
- engine.executed.last.must_be_like %{
447
- INSERT INTO "users" VALUES(NULL)
448
- }
449
- end
450
- end
451
-
452
393
  describe 'lock' do
453
394
  # This should fail on other databases
454
395
  it 'adds a lock node' do
@@ -888,9 +829,8 @@ module Arel
888
829
 
889
830
  describe 'delete' do
890
831
  it "copies from" do
891
- engine = EngineProxy.new Table.engine
892
832
  table = Table.new :users
893
- manager = Arel::SelectManager.new engine
833
+ manager = Arel::SelectManager.new Table.engine
894
834
  manager.from table
895
835
  stmt = manager.compile_delete
896
836
 
@@ -898,9 +838,8 @@ module Arel
898
838
  end
899
839
 
900
840
  it "copies where" do
901
- engine = EngineProxy.new Table.engine
902
841
  table = Table.new :users
903
- manager = Arel::SelectManager.new engine
842
+ manager = Arel::SelectManager.new Table.engine
904
843
  manager.from table
905
844
  manager.where table[:id].eq 10
906
845
  stmt = manager.compile_delete
@@ -930,12 +869,11 @@ module Arel
930
869
 
931
870
  describe 'update' do
932
871
  it 'copies limits' do
933
- engine = EngineProxy.new Table.engine
934
872
  table = Table.new :users
935
- manager = Arel::SelectManager.new engine
873
+ manager = Arel::SelectManager.new Table.engine
936
874
  manager.from table
937
875
  manager.take 1
938
- stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
876
+ stmt = manager.compile_update(SqlLiteral.new('foo = bar'), Arel::Attributes::Attribute.new(table, 'id'))
939
877
  stmt.key = table['id']
940
878
 
941
879
  stmt.to_sql.must_be_like %{
@@ -945,12 +883,11 @@ module Arel
945
883
  end
946
884
 
947
885
  it 'copies order' do
948
- engine = EngineProxy.new Table.engine
949
886
  table = Table.new :users
950
- manager = Arel::SelectManager.new engine
887
+ manager = Arel::SelectManager.new Table.engine
951
888
  manager.from table
952
889
  manager.order :foo
953
- stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
890
+ stmt = manager.compile_update(SqlLiteral.new('foo = bar'), Arel::Attributes::Attribute.new(table, 'id'))
954
891
  stmt.key = table['id']
955
892
 
956
893
  stmt.to_sql.must_be_like %{
@@ -960,22 +897,20 @@ module Arel
960
897
  end
961
898
 
962
899
  it 'takes a string' do
963
- engine = EngineProxy.new Table.engine
964
900
  table = Table.new :users
965
- manager = Arel::SelectManager.new engine
901
+ manager = Arel::SelectManager.new Table.engine
966
902
  manager.from table
967
- stmt = manager.compile_update(SqlLiteral.new('foo = bar'))
903
+ stmt = manager.compile_update(SqlLiteral.new('foo = bar'), Arel::Attributes::Attribute.new(table, 'id'))
968
904
 
969
905
  stmt.to_sql.must_be_like %{ UPDATE "users" SET foo = bar }
970
906
  end
971
907
 
972
908
  it 'copies where clauses' do
973
- engine = EngineProxy.new Table.engine
974
909
  table = Table.new :users
975
- manager = Arel::SelectManager.new engine
910
+ manager = Arel::SelectManager.new Table.engine
976
911
  manager.where table[:id].eq 10
977
912
  manager.from table
978
- stmt = manager.compile_update(table[:id] => 1)
913
+ stmt = manager.compile_update({table[:id] => 1}, Arel::Attributes::Attribute.new(table, 'id'))
979
914
 
980
915
  stmt.to_sql.must_be_like %{
981
916
  UPDATE "users" SET "id" = 1 WHERE "users"."id" = 10
@@ -983,13 +918,12 @@ module Arel
983
918
  end
984
919
 
985
920
  it 'copies where clauses when nesting is triggered' do
986
- engine = EngineProxy.new Table.engine
987
921
  table = Table.new :users
988
- manager = Arel::SelectManager.new engine
922
+ manager = Arel::SelectManager.new Table.engine
989
923
  manager.where table[:foo].eq 10
990
924
  manager.take 42
991
925
  manager.from table
992
- stmt = manager.compile_update(table[:id] => 1)
926
+ stmt = manager.compile_update({table[:id] => 1}, Arel::Attributes::Attribute.new(table, 'id'))
993
927
 
994
928
  stmt.to_sql.must_be_like %{
995
929
  UPDATE "users" SET "id" = 1 WHERE "users"."id" IN (SELECT "users"."id" FROM "users" WHERE "users"."foo" = 10 LIMIT 42)
@@ -997,11 +931,10 @@ module Arel
997
931
  end
998
932
 
999
933
  it 'executes an update statement' do
1000
- engine = EngineProxy.new Table.engine
1001
934
  table = Table.new :users
1002
- manager = Arel::SelectManager.new engine
935
+ manager = Arel::SelectManager.new Table.engine
1003
936
  manager.from table
1004
- stmt = manager.compile_update(table[:id] => 1)
937
+ stmt = manager.compile_update({table[:id] => 1}, Arel::Attributes::Attribute.new(table, 'id'))
1005
938
 
1006
939
  stmt.to_sql.must_be_like %{
1007
940
  UPDATE "users" SET "id" = 1
@@ -1019,16 +952,14 @@ module Arel
1019
952
 
1020
953
  it 'takes strings' do
1021
954
  manager = Arel::SelectManager.new Table.engine
1022
- manager.project Nodes::SqlLiteral.new('*')
955
+ manager.project '*'
1023
956
  manager.to_sql.must_be_like %{ SELECT * }
1024
957
  end
1025
958
 
1026
959
  it "takes sql literals" do
1027
960
  manager = Arel::SelectManager.new Table.engine
1028
961
  manager.project Nodes::SqlLiteral.new '*'
1029
- manager.to_sql.must_be_like %{
1030
- SELECT *
1031
- }
962
+ manager.to_sql.must_be_like %{ SELECT * }
1032
963
  end
1033
964
  end
1034
965
 
@@ -4,7 +4,7 @@ require 'support/fake_record'
4
4
 
5
5
  module Arel
6
6
  module Visitors
7
- class TestBindVisitor < MiniTest::Unit::TestCase
7
+ class TestBindVisitor < Minitest::Test
8
8
 
9
9
  ##
10
10
  # Tests visit_Arel_Nodes_Assignment correctly
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Visitors
5
- class TestDepthFirst < MiniTest::Unit::TestCase
5
+ class TestDepthFirst < Minitest::Test
6
6
  Collector = Struct.new(:calls) do
7
7
  def call object
8
8
  calls << object
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  module Arel
4
4
  module Visitors
5
- class TestDot < MiniTest::Unit::TestCase
5
+ class TestDot < Minitest::Test
6
6
  def setup
7
7
  @visitor = Visitors::Dot.new
8
8
  end
@@ -92,7 +92,14 @@ module Arel
92
92
  assert_equal 'omg(*, *)', @visitor.accept(function)
93
93
  end
94
94
 
95
- describe 'equality' do
95
+ describe 'Nodes::Equality' do
96
+ it "should escape strings" do
97
+ test = Table.new(:users)[:name].eq 'Aaron Patterson'
98
+ @visitor.accept(test).must_be_like %{
99
+ "users"."name" = 'Aaron Patterson'
100
+ }
101
+ end
102
+
96
103
  it 'should handle false' do
97
104
  sql = @visitor.accept Nodes::Equality.new(false, false)
98
105
  sql.must_be_like %{ 'f' = 'f' }
@@ -103,6 +110,23 @@ module Arel
103
110
  sql = @visitor.accept Nodes::Equality.new(table[:id], '1-fooo')
104
111
  sql.must_be_like %{ "users"."id" = 1 }
105
112
  end
113
+
114
+ it 'should handle nil' do
115
+ sql = @visitor.accept Nodes::Equality.new(@table[:name], nil)
116
+ sql.must_be_like %{ "users"."name" IS NULL }
117
+ end
118
+ end
119
+
120
+ describe 'Nodes::NotEqual' do
121
+ it 'should handle false' do
122
+ sql = @visitor.accept Nodes::NotEqual.new(@table[:active], false)
123
+ sql.must_be_like %{ "users"."active" != 'f' }
124
+ end
125
+
126
+ it 'should handle nil' do
127
+ sql = @visitor.accept Nodes::NotEqual.new(@table[:name], nil)
128
+ sql.must_be_like %{ "users"."name" IS NOT NULL }
129
+ end
106
130
  end
107
131
 
108
132
  it "should visit string subclass" do
@@ -412,15 +436,6 @@ module Arel
412
436
  end
413
437
  end
414
438
 
415
- describe 'Equality' do
416
- it "should escape strings" do
417
- test = Table.new(:users)[:name].eq 'Aaron Patterson'
418
- @visitor.accept(test).must_be_like %{
419
- "users"."name" = 'Aaron Patterson'
420
- }
421
- end
422
- end
423
-
424
439
  describe 'Constants' do
425
440
  it "should handle true" do
426
441
  test = Table.new(:users).create_true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 5.0.1.20140414130214
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-02-05 00:00:00.000000000 Z
14
+ date: 2014-04-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: minitest
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.2'
22
+ version: '5.3'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '5.2'
29
+ version: '5.3'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rdoc
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -47,19 +47,19 @@ dependencies:
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '3.8'
50
+ version: '3.6'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '3.8'
57
+ version: '3.6'
58
58
  description: |-
59
59
  Arel is a SQL AST manager for Ruby. It
60
60
 
61
61
  1. Simplifies the generation of complex SQL queries
62
- 2. Adapts to various RDBMS systems
62
+ 2. Adapts to various RDBMSes
63
63
 
64
64
  It is intended to be a framework framework; that is, you can build your own ORM
65
65
  with it, focusing on innovative object and collection modeling as opposed to
@@ -189,7 +189,6 @@ files:
189
189
  - test/nodes/test_update_statement.rb
190
190
  - test/nodes/test_window.rb
191
191
  - test/support/fake_record.rb
192
- - test/test_activerecord_compat.rb
193
192
  - test/test_attributes.rb
194
193
  - test/test_crud.rb
195
194
  - test/test_delete_manager.rb
@@ -233,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
232
  version: '0'
234
233
  requirements: []
235
234
  rubyforge_project: arel
236
- rubygems_version: 2.2.0
235
+ rubygems_version: 2.2.2
237
236
  signing_key:
238
237
  specification_version: 4
239
238
  summary: Arel is a SQL AST manager for Ruby
@@ -266,7 +265,6 @@ test_files:
266
265
  - test/nodes/test_true.rb
267
266
  - test/nodes/test_update_statement.rb
268
267
  - test/nodes/test_window.rb
269
- - test/test_activerecord_compat.rb
270
268
  - test/test_attributes.rb
271
269
  - test/test_crud.rb
272
270
  - test/test_delete_manager.rb
@@ -1,18 +0,0 @@
1
- require 'helper'
2
-
3
- module Arel
4
- describe 'activerecord compatibility' do
5
- describe 'select manager' do
6
- it 'provides wheres' do
7
- table = Table.new :users
8
- manager = Arel::SelectManager.new Table.engine
9
- manager.where table[:id].eq 1
10
- manager.where table[:name].eq 'Aaron'
11
-
12
- manager.wheres.map { |x|
13
- x.value
14
- }.join(', ').must_equal "\"users\".\"id\" = 1, \"users\".\"name\" = 'Aaron'"
15
- end
16
- end
17
- end
18
- end