arel 0.1.0

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 (132) hide show
  1. data/.gitignore +6 -0
  2. data/README.markdown +184 -0
  3. data/Rakefile +60 -0
  4. data/VERSION +1 -0
  5. data/arel.gemspec +233 -0
  6. data/doc/CONVENTIONS +17 -0
  7. data/doc/TODO +118 -0
  8. data/lib/arel.rb +10 -0
  9. data/lib/arel/algebra.rb +4 -0
  10. data/lib/arel/algebra/extensions.rb +4 -0
  11. data/lib/arel/algebra/extensions/class.rb +32 -0
  12. data/lib/arel/algebra/extensions/hash.rb +11 -0
  13. data/lib/arel/algebra/extensions/object.rb +17 -0
  14. data/lib/arel/algebra/extensions/symbol.rb +9 -0
  15. data/lib/arel/algebra/predicates.rb +41 -0
  16. data/lib/arel/algebra/primitives.rb +5 -0
  17. data/lib/arel/algebra/primitives/attribute.rb +150 -0
  18. data/lib/arel/algebra/primitives/expression.rb +43 -0
  19. data/lib/arel/algebra/primitives/ordering.rb +23 -0
  20. data/lib/arel/algebra/primitives/value.rb +14 -0
  21. data/lib/arel/algebra/relations.rb +14 -0
  22. data/lib/arel/algebra/relations/operations/alias.rb +7 -0
  23. data/lib/arel/algebra/relations/operations/group.rb +12 -0
  24. data/lib/arel/algebra/relations/operations/join.rb +64 -0
  25. data/lib/arel/algebra/relations/operations/order.rb +18 -0
  26. data/lib/arel/algebra/relations/operations/project.rb +20 -0
  27. data/lib/arel/algebra/relations/operations/skip.rb +6 -0
  28. data/lib/arel/algebra/relations/operations/take.rb +10 -0
  29. data/lib/arel/algebra/relations/operations/where.rb +16 -0
  30. data/lib/arel/algebra/relations/relation.rb +136 -0
  31. data/lib/arel/algebra/relations/row.rb +26 -0
  32. data/lib/arel/algebra/relations/utilities/compound.rb +30 -0
  33. data/lib/arel/algebra/relations/utilities/externalization.rb +24 -0
  34. data/lib/arel/algebra/relations/utilities/nil.rb +7 -0
  35. data/lib/arel/algebra/relations/writes.rb +36 -0
  36. data/lib/arel/engines.rb +2 -0
  37. data/lib/arel/engines/memory.rb +4 -0
  38. data/lib/arel/engines/memory/engine.rb +16 -0
  39. data/lib/arel/engines/memory/predicates.rb +35 -0
  40. data/lib/arel/engines/memory/primitives.rb +27 -0
  41. data/lib/arel/engines/memory/relations.rb +5 -0
  42. data/lib/arel/engines/memory/relations/array.rb +25 -0
  43. data/lib/arel/engines/memory/relations/compound.rb +9 -0
  44. data/lib/arel/engines/memory/relations/operations.rb +61 -0
  45. data/lib/arel/engines/memory/relations/writes.rb +7 -0
  46. data/lib/arel/engines/sql.rb +7 -0
  47. data/lib/arel/engines/sql/christener.rb +13 -0
  48. data/lib/arel/engines/sql/engine.rb +37 -0
  49. data/lib/arel/engines/sql/extensions.rb +4 -0
  50. data/lib/arel/engines/sql/extensions/array.rb +16 -0
  51. data/lib/arel/engines/sql/extensions/nil_class.rb +11 -0
  52. data/lib/arel/engines/sql/extensions/object.rb +15 -0
  53. data/lib/arel/engines/sql/extensions/range.rb +15 -0
  54. data/lib/arel/engines/sql/formatters.rb +113 -0
  55. data/lib/arel/engines/sql/predicates.rb +51 -0
  56. data/lib/arel/engines/sql/primitives.rb +85 -0
  57. data/lib/arel/engines/sql/relations.rb +9 -0
  58. data/lib/arel/engines/sql/relations/operations/alias.rb +5 -0
  59. data/lib/arel/engines/sql/relations/operations/join.rb +33 -0
  60. data/lib/arel/engines/sql/relations/relation.rb +50 -0
  61. data/lib/arel/engines/sql/relations/table.rb +52 -0
  62. data/lib/arel/engines/sql/relations/utilities/compound.rb +10 -0
  63. data/lib/arel/engines/sql/relations/utilities/externalization.rb +14 -0
  64. data/lib/arel/engines/sql/relations/utilities/nil.rb +6 -0
  65. data/lib/arel/engines/sql/relations/utilities/recursion.rb +13 -0
  66. data/lib/arel/engines/sql/relations/writes.rb +39 -0
  67. data/lib/arel/session.rb +48 -0
  68. data/spec/arel/algebra/unit/predicates/binary_spec.rb +33 -0
  69. data/spec/arel/algebra/unit/predicates/equality_spec.rb +27 -0
  70. data/spec/arel/algebra/unit/predicates/in_spec.rb +10 -0
  71. data/spec/arel/algebra/unit/primitives/attribute_spec.rb +183 -0
  72. data/spec/arel/algebra/unit/primitives/expression_spec.rb +45 -0
  73. data/spec/arel/algebra/unit/primitives/value_spec.rb +15 -0
  74. data/spec/arel/algebra/unit/relations/alias_spec.rb +16 -0
  75. data/spec/arel/algebra/unit/relations/delete_spec.rb +9 -0
  76. data/spec/arel/algebra/unit/relations/group_spec.rb +10 -0
  77. data/spec/arel/algebra/unit/relations/insert_spec.rb +9 -0
  78. data/spec/arel/algebra/unit/relations/join_spec.rb +26 -0
  79. data/spec/arel/algebra/unit/relations/order_spec.rb +21 -0
  80. data/spec/arel/algebra/unit/relations/project_spec.rb +34 -0
  81. data/spec/arel/algebra/unit/relations/relation_spec.rb +188 -0
  82. data/spec/arel/algebra/unit/relations/skip_spec.rb +10 -0
  83. data/spec/arel/algebra/unit/relations/table_spec.rb +39 -0
  84. data/spec/arel/algebra/unit/relations/take_spec.rb +10 -0
  85. data/spec/arel/algebra/unit/relations/update_spec.rb +9 -0
  86. data/spec/arel/algebra/unit/relations/where_spec.rb +18 -0
  87. data/spec/arel/algebra/unit/session/session_spec.rb +84 -0
  88. data/spec/arel/engines/memory/integration/joins/cross_engine_spec.rb +48 -0
  89. data/spec/arel/engines/memory/unit/relations/array_spec.rb +32 -0
  90. data/spec/arel/engines/memory/unit/relations/insert_spec.rb +28 -0
  91. data/spec/arel/engines/memory/unit/relations/join_spec.rb +31 -0
  92. data/spec/arel/engines/memory/unit/relations/order_spec.rb +27 -0
  93. data/spec/arel/engines/memory/unit/relations/project_spec.rb +27 -0
  94. data/spec/arel/engines/memory/unit/relations/skip_spec.rb +26 -0
  95. data/spec/arel/engines/memory/unit/relations/take_spec.rb +26 -0
  96. data/spec/arel/engines/memory/unit/relations/where_spec.rb +39 -0
  97. data/spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb +209 -0
  98. data/spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb +167 -0
  99. data/spec/arel/engines/sql/integration/joins/with_compounds_spec.rb +107 -0
  100. data/spec/arel/engines/sql/unit/engine_spec.rb +45 -0
  101. data/spec/arel/engines/sql/unit/predicates/binary_spec.rb +117 -0
  102. data/spec/arel/engines/sql/unit/predicates/equality_spec.rb +46 -0
  103. data/spec/arel/engines/sql/unit/predicates/in_spec.rb +86 -0
  104. data/spec/arel/engines/sql/unit/predicates/predicates_spec.rb +65 -0
  105. data/spec/arel/engines/sql/unit/primitives/attribute_spec.rb +32 -0
  106. data/spec/arel/engines/sql/unit/primitives/expression_spec.rb +24 -0
  107. data/spec/arel/engines/sql/unit/primitives/literal_spec.rb +23 -0
  108. data/spec/arel/engines/sql/unit/primitives/value_spec.rb +29 -0
  109. data/spec/arel/engines/sql/unit/relations/alias_spec.rb +43 -0
  110. data/spec/arel/engines/sql/unit/relations/delete_spec.rb +63 -0
  111. data/spec/arel/engines/sql/unit/relations/group_spec.rb +56 -0
  112. data/spec/arel/engines/sql/unit/relations/insert_spec.rb +107 -0
  113. data/spec/arel/engines/sql/unit/relations/join_spec.rb +57 -0
  114. data/spec/arel/engines/sql/unit/relations/order_spec.rb +113 -0
  115. data/spec/arel/engines/sql/unit/relations/project_spec.rb +110 -0
  116. data/spec/arel/engines/sql/unit/relations/skip_spec.rb +32 -0
  117. data/spec/arel/engines/sql/unit/relations/table_spec.rb +69 -0
  118. data/spec/arel/engines/sql/unit/relations/take_spec.rb +32 -0
  119. data/spec/arel/engines/sql/unit/relations/update_spec.rb +151 -0
  120. data/spec/arel/engines/sql/unit/relations/where_spec.rb +56 -0
  121. data/spec/connections/mysql_connection.rb +16 -0
  122. data/spec/connections/postgresql_connection.rb +15 -0
  123. data/spec/connections/sqlite3_connection.rb +25 -0
  124. data/spec/doubles/hash.rb +23 -0
  125. data/spec/matchers/be_like.rb +24 -0
  126. data/spec/matchers/disambiguate_attributes.rb +28 -0
  127. data/spec/matchers/hash_the_same_as.rb +26 -0
  128. data/spec/schemas/mysql_schema.rb +18 -0
  129. data/spec/schemas/postgresql_schema.rb +18 -0
  130. data/spec/schemas/sqlite3_schema.rb +18 -0
  131. data/spec/spec_helper.rb +47 -0
  132. metadata +250 -0
@@ -0,0 +1,16 @@
1
+ require "rubygems"
2
+ require "activerecord"
3
+ puts "Using native MySQL"
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'unit' => {
9
+ :adapter => 'mysql',
10
+ :username => 'rails',
11
+ :encoding => 'utf8',
12
+ :database => 'arel_unit',
13
+ }
14
+ }
15
+
16
+ ActiveRecord::Base.establish_connection 'unit'
@@ -0,0 +1,15 @@
1
+ require "rubygems"
2
+ require "activerecord"
3
+ puts "Using native PostgreSQL"
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'unit' => {
9
+ :adapter => 'postgresql',
10
+ :encoding => 'utf8',
11
+ :database => 'arel_unit',
12
+ }
13
+ }
14
+
15
+ ActiveRecord::Base.establish_connection 'unit'
@@ -0,0 +1,25 @@
1
+ require "rubygems"
2
+ require "activerecord"
3
+ puts "Using native SQLite3"
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ db_file = "spec/fixtures/fixture_database.sqlite3"
8
+
9
+ ActiveRecord::Base.configurations = {
10
+ "unit" => {
11
+ :adapter => 'sqlite3',
12
+ :database => db_file,
13
+ :timeout => 5000
14
+ }
15
+ }
16
+
17
+ unless File.exist?(db_file)
18
+ puts "SQLite3 database not found at #{db_file}. Rebuilding it."
19
+ FileUtils.mkdir_p(File.dirname(db_file))
20
+ sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
21
+ puts "Executing '#{sqlite_command}'"
22
+ raise "Seems that there is no sqlite3 executable available" unless system(sqlite_command)
23
+ end
24
+
25
+ ActiveRecord::Base.establish_connection("unit")
@@ -0,0 +1,23 @@
1
+ class Hash
2
+ def ordered_array
3
+ to_a.sort { |(key1, value1), (key2, value2)| key1.hash <=> key2.hash }
4
+ end
5
+
6
+ def keys
7
+ ordered_array.collect(&:first)
8
+ end
9
+
10
+ def values
11
+ ordered_array.collect { |_, v| v }
12
+ end
13
+
14
+ def each(&block)
15
+ ordered_array.each(&block)
16
+ end
17
+
18
+ def shift
19
+ returning to_a.first do |k, v|
20
+ delete(k)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module BeLikeMatcher
2
+ class BeLike
3
+ def initialize(expected)
4
+ @expected = expected
5
+ end
6
+
7
+ def matches?(actual)
8
+ @actual = actual
9
+ @expected.gsub(/\s+/, ' ').strip == @actual.gsub(/\s+/, ' ').strip
10
+ end
11
+
12
+ def failure_message
13
+ "expected\n#{@actual}\nto be like\n#{@expected}"
14
+ end
15
+
16
+ def negative_failure_message
17
+ "expected\n#{@actual}\nto be unlike\n#{@expected}"
18
+ end
19
+ end
20
+
21
+ def be_like(expected)
22
+ BeLike.new(expected)
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ module DisambiguateAttributesMatcher
2
+ class DisambiguateAttributes
3
+ def initialize(attributes)
4
+ @attributes = attributes
5
+ end
6
+
7
+ def matches?(actual)
8
+ @actual = actual
9
+ attribute1, attribute2 = @attributes
10
+ @actual[attribute1].descends_from?(attribute1) &&
11
+ !@actual[attribute1].descends_from?(attribute2) &&
12
+ @actual[attribute2].descends_from?(attribute2)
13
+ end
14
+
15
+ def failure_message
16
+ ""
17
+ # "expected #{@actual} to disambiguate its attributes"
18
+ end
19
+
20
+ def negative_failure_message
21
+ "expected #{@actual} to not disambiguate its attributes"
22
+ end
23
+ end
24
+
25
+ def disambiguate_attributes(*attributes)
26
+ DisambiguateAttributes.new(attributes)
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ module HashTheSameAsMatcher
2
+ class HashTheSameAs
3
+ def initialize(expected)
4
+ @expected = expected
5
+ end
6
+
7
+ def matches?(actual)
8
+ @actual = actual
9
+ hash = {}
10
+ hash[@expected] = :some_arbitrary_value
11
+ hash[@actual] == :some_arbitrary_value
12
+ end
13
+
14
+ def failure_message
15
+ "expected #{@actual} to hash the same as #{@expected}; they must be `eql?` and have the same `#hash` value"
16
+ end
17
+
18
+ def negative_failure_message
19
+ "expected #{@actual} to hash differently than #{@expected}; they must not be `eql?` or have a differing `#hash` values"
20
+ end
21
+ end
22
+
23
+ def hash_the_same_as(expected)
24
+ HashTheSameAs.new(expected)
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ sql = <<-SQL
2
+ DROP TABLE IF EXISTS users;
3
+ CREATE TABLE users (
4
+ id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
5
+ name VARCHAR(255) NOT NULL
6
+ );
7
+
8
+ DROP TABLE IF EXISTS photos;
9
+ CREATE TABLE photos (
10
+ id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
11
+ user_id INTEGER NOT NULL,
12
+ camera_id INTEGER NOT NULL
13
+ );
14
+ SQL
15
+
16
+ sql.split(/;/).select(&:present?).each do |sql_statement|
17
+ ActiveRecord::Base.connection.execute sql_statement
18
+ end
@@ -0,0 +1,18 @@
1
+ sql = <<-SQL
2
+ DROP TABLE IF EXISTS users;
3
+ CREATE TABLE users (
4
+ id SERIAL PRIMARY KEY NOT NULL,
5
+ name VARCHAR(255) NOT NULL
6
+ );
7
+
8
+ DROP TABLE IF EXISTS photos;
9
+ CREATE TABLE photos (
10
+ id SERIAL PRIMARY KEY NOT NULL,
11
+ user_id INTEGER NOT NULL,
12
+ camera_id INTEGER NOT NULL
13
+ );
14
+ SQL
15
+
16
+ sql.split(/;/).select(&:present?).each do |sql_statement|
17
+ ActiveRecord::Base.connection.execute sql_statement
18
+ end
@@ -0,0 +1,18 @@
1
+ sql = <<-SQL
2
+ DROP TABLE IF EXISTS users;
3
+ CREATE TABLE users (
4
+ id INTEGER NOT NULL PRIMARY KEY,
5
+ name VARCHAR(255) NOT NULL
6
+ );
7
+
8
+ DROP TABLE IF EXISTS photos;
9
+ CREATE TABLE photos (
10
+ id INTEGER NOT NULL PRIMARY KEY,
11
+ user_id INTEGER NOT NULL,
12
+ camera_id INTEGER NOT NULL
13
+ );
14
+ SQL
15
+
16
+ sql.split(/;/).select(&:present?).each do |sql_statement|
17
+ ActiveRecord::Base.connection.execute sql_statement
18
+ end
@@ -0,0 +1,47 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift "#{dir}/../lib"
3
+
4
+ require 'rubygems'
5
+ require 'spec'
6
+ require 'pp'
7
+ require 'fileutils'
8
+ require 'arel'
9
+
10
+ [:matchers, :doubles].each do |helper|
11
+ Dir["#{dir}/#{helper}/*"].each { |m| require "#{dir}/#{helper}/#{File.basename(m)}" }
12
+ end
13
+
14
+ module AdapterGuards
15
+ def adapter_is(name)
16
+ verify_adapter_name(name)
17
+ yield if name.to_s == adapter_name
18
+ end
19
+
20
+ def adapter_is_not(name)
21
+ verify_adapter_name(name)
22
+ yield if name.to_s != adapter_name
23
+ end
24
+
25
+ def adapter_name
26
+ name = ActiveRecord::Base.configurations["unit"][:adapter]
27
+ verify_adapter_name(name)
28
+ name
29
+ end
30
+
31
+ def verify_adapter_name(name)
32
+ raise "Invalid adapter name: #{name}" unless valid_adapters.include?(name.to_s)
33
+ end
34
+
35
+ def valid_adapters
36
+ %w[mysql postgresql sqlite3]
37
+ end
38
+ end
39
+
40
+ Spec::Runner.configure do |config|
41
+ config.include BeLikeMatcher, HashTheSameAsMatcher, DisambiguateAttributesMatcher
42
+ config.include AdapterGuards
43
+ config.mock_with :rr
44
+ config.before do
45
+ Arel::Table.engine = Arel::Sql::Engine.new(ActiveRecord::Base)
46
+ end
47
+ end
metadata ADDED
@@ -0,0 +1,250 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: arel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Bryan Helmkamp
8
+ - Nick Kallen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-08-06 00:00:00 -04:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description:
18
+ email: bryan@brynary.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files:
24
+ - README.markdown
25
+ files:
26
+ - .gitignore
27
+ - README.markdown
28
+ - Rakefile
29
+ - VERSION
30
+ - arel.gemspec
31
+ - doc/CONVENTIONS
32
+ - doc/TODO
33
+ - lib/arel.rb
34
+ - lib/arel/.DS_Store
35
+ - lib/arel/algebra.rb
36
+ - lib/arel/algebra/extensions.rb
37
+ - lib/arel/algebra/extensions/class.rb
38
+ - lib/arel/algebra/extensions/hash.rb
39
+ - lib/arel/algebra/extensions/object.rb
40
+ - lib/arel/algebra/extensions/symbol.rb
41
+ - lib/arel/algebra/predicates.rb
42
+ - lib/arel/algebra/primitives.rb
43
+ - lib/arel/algebra/primitives/attribute.rb
44
+ - lib/arel/algebra/primitives/expression.rb
45
+ - lib/arel/algebra/primitives/ordering.rb
46
+ - lib/arel/algebra/primitives/value.rb
47
+ - lib/arel/algebra/relations.rb
48
+ - lib/arel/algebra/relations/operations/alias.rb
49
+ - lib/arel/algebra/relations/operations/group.rb
50
+ - lib/arel/algebra/relations/operations/join.rb
51
+ - lib/arel/algebra/relations/operations/order.rb
52
+ - lib/arel/algebra/relations/operations/project.rb
53
+ - lib/arel/algebra/relations/operations/skip.rb
54
+ - lib/arel/algebra/relations/operations/take.rb
55
+ - lib/arel/algebra/relations/operations/where.rb
56
+ - lib/arel/algebra/relations/relation.rb
57
+ - lib/arel/algebra/relations/row.rb
58
+ - lib/arel/algebra/relations/utilities/compound.rb
59
+ - lib/arel/algebra/relations/utilities/externalization.rb
60
+ - lib/arel/algebra/relations/utilities/nil.rb
61
+ - lib/arel/algebra/relations/writes.rb
62
+ - lib/arel/engines.rb
63
+ - lib/arel/engines/memory.rb
64
+ - lib/arel/engines/memory/engine.rb
65
+ - lib/arel/engines/memory/predicates.rb
66
+ - lib/arel/engines/memory/primitives.rb
67
+ - lib/arel/engines/memory/relations.rb
68
+ - lib/arel/engines/memory/relations/array.rb
69
+ - lib/arel/engines/memory/relations/compound.rb
70
+ - lib/arel/engines/memory/relations/operations.rb
71
+ - lib/arel/engines/memory/relations/writes.rb
72
+ - lib/arel/engines/sql.rb
73
+ - lib/arel/engines/sql/christener.rb
74
+ - lib/arel/engines/sql/engine.rb
75
+ - lib/arel/engines/sql/extensions.rb
76
+ - lib/arel/engines/sql/extensions/array.rb
77
+ - lib/arel/engines/sql/extensions/nil_class.rb
78
+ - lib/arel/engines/sql/extensions/object.rb
79
+ - lib/arel/engines/sql/extensions/range.rb
80
+ - lib/arel/engines/sql/formatters.rb
81
+ - lib/arel/engines/sql/predicates.rb
82
+ - lib/arel/engines/sql/primitives.rb
83
+ - lib/arel/engines/sql/relations.rb
84
+ - lib/arel/engines/sql/relations/operations/alias.rb
85
+ - lib/arel/engines/sql/relations/operations/join.rb
86
+ - lib/arel/engines/sql/relations/relation.rb
87
+ - lib/arel/engines/sql/relations/table.rb
88
+ - lib/arel/engines/sql/relations/utilities/compound.rb
89
+ - lib/arel/engines/sql/relations/utilities/externalization.rb
90
+ - lib/arel/engines/sql/relations/utilities/nil.rb
91
+ - lib/arel/engines/sql/relations/utilities/recursion.rb
92
+ - lib/arel/engines/sql/relations/writes.rb
93
+ - lib/arel/session.rb
94
+ - spec/arel/algebra/unit/predicates/binary_spec.rb
95
+ - spec/arel/algebra/unit/predicates/equality_spec.rb
96
+ - spec/arel/algebra/unit/predicates/in_spec.rb
97
+ - spec/arel/algebra/unit/primitives/attribute_spec.rb
98
+ - spec/arel/algebra/unit/primitives/expression_spec.rb
99
+ - spec/arel/algebra/unit/primitives/value_spec.rb
100
+ - spec/arel/algebra/unit/relations/alias_spec.rb
101
+ - spec/arel/algebra/unit/relations/delete_spec.rb
102
+ - spec/arel/algebra/unit/relations/group_spec.rb
103
+ - spec/arel/algebra/unit/relations/insert_spec.rb
104
+ - spec/arel/algebra/unit/relations/join_spec.rb
105
+ - spec/arel/algebra/unit/relations/order_spec.rb
106
+ - spec/arel/algebra/unit/relations/project_spec.rb
107
+ - spec/arel/algebra/unit/relations/relation_spec.rb
108
+ - spec/arel/algebra/unit/relations/skip_spec.rb
109
+ - spec/arel/algebra/unit/relations/table_spec.rb
110
+ - spec/arel/algebra/unit/relations/take_spec.rb
111
+ - spec/arel/algebra/unit/relations/update_spec.rb
112
+ - spec/arel/algebra/unit/relations/where_spec.rb
113
+ - spec/arel/algebra/unit/session/session_spec.rb
114
+ - spec/arel/engines/memory/integration/joins/cross_engine_spec.rb
115
+ - spec/arel/engines/memory/unit/relations/array_spec.rb
116
+ - spec/arel/engines/memory/unit/relations/insert_spec.rb
117
+ - spec/arel/engines/memory/unit/relations/join_spec.rb
118
+ - spec/arel/engines/memory/unit/relations/order_spec.rb
119
+ - spec/arel/engines/memory/unit/relations/project_spec.rb
120
+ - spec/arel/engines/memory/unit/relations/skip_spec.rb
121
+ - spec/arel/engines/memory/unit/relations/take_spec.rb
122
+ - spec/arel/engines/memory/unit/relations/where_spec.rb
123
+ - spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb
124
+ - spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb
125
+ - spec/arel/engines/sql/integration/joins/with_compounds_spec.rb
126
+ - spec/arel/engines/sql/unit/engine_spec.rb
127
+ - spec/arel/engines/sql/unit/predicates/binary_spec.rb
128
+ - spec/arel/engines/sql/unit/predicates/equality_spec.rb
129
+ - spec/arel/engines/sql/unit/predicates/in_spec.rb
130
+ - spec/arel/engines/sql/unit/predicates/predicates_spec.rb
131
+ - spec/arel/engines/sql/unit/primitives/attribute_spec.rb
132
+ - spec/arel/engines/sql/unit/primitives/expression_spec.rb
133
+ - spec/arel/engines/sql/unit/primitives/literal_spec.rb
134
+ - spec/arel/engines/sql/unit/primitives/value_spec.rb
135
+ - spec/arel/engines/sql/unit/relations/alias_spec.rb
136
+ - spec/arel/engines/sql/unit/relations/delete_spec.rb
137
+ - spec/arel/engines/sql/unit/relations/group_spec.rb
138
+ - spec/arel/engines/sql/unit/relations/insert_spec.rb
139
+ - spec/arel/engines/sql/unit/relations/join_spec.rb
140
+ - spec/arel/engines/sql/unit/relations/order_spec.rb
141
+ - spec/arel/engines/sql/unit/relations/project_spec.rb
142
+ - spec/arel/engines/sql/unit/relations/skip_spec.rb
143
+ - spec/arel/engines/sql/unit/relations/table_spec.rb
144
+ - spec/arel/engines/sql/unit/relations/take_spec.rb
145
+ - spec/arel/engines/sql/unit/relations/update_spec.rb
146
+ - spec/arel/engines/sql/unit/relations/where_spec.rb
147
+ - spec/connections/mysql_connection.rb
148
+ - spec/connections/postgresql_connection.rb
149
+ - spec/connections/sqlite3_connection.rb
150
+ - spec/doubles/hash.rb
151
+ - spec/matchers/be_like.rb
152
+ - spec/matchers/disambiguate_attributes.rb
153
+ - spec/matchers/hash_the_same_as.rb
154
+ - spec/schemas/mysql_schema.rb
155
+ - spec/schemas/postgresql_schema.rb
156
+ - spec/schemas/sqlite3_schema.rb
157
+ - spec/spec_helper.rb
158
+ has_rdoc: true
159
+ homepage: http://github.com/brynary/arel
160
+ licenses: []
161
+
162
+ post_install_message:
163
+ rdoc_options:
164
+ - --charset=UTF-8
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: "0"
172
+ version:
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: "0"
178
+ version:
179
+ requirements: []
180
+
181
+ rubyforge_project: arel
182
+ rubygems_version: 1.3.4
183
+ signing_key:
184
+ specification_version: 3
185
+ summary: Arel is a relational algebra engine for Ruby
186
+ test_files:
187
+ - spec/arel/algebra/unit/predicates/binary_spec.rb
188
+ - spec/arel/algebra/unit/predicates/equality_spec.rb
189
+ - spec/arel/algebra/unit/predicates/in_spec.rb
190
+ - spec/arel/algebra/unit/primitives/attribute_spec.rb
191
+ - spec/arel/algebra/unit/primitives/expression_spec.rb
192
+ - spec/arel/algebra/unit/primitives/value_spec.rb
193
+ - spec/arel/algebra/unit/relations/alias_spec.rb
194
+ - spec/arel/algebra/unit/relations/delete_spec.rb
195
+ - spec/arel/algebra/unit/relations/group_spec.rb
196
+ - spec/arel/algebra/unit/relations/insert_spec.rb
197
+ - spec/arel/algebra/unit/relations/join_spec.rb
198
+ - spec/arel/algebra/unit/relations/order_spec.rb
199
+ - spec/arel/algebra/unit/relations/project_spec.rb
200
+ - spec/arel/algebra/unit/relations/relation_spec.rb
201
+ - spec/arel/algebra/unit/relations/skip_spec.rb
202
+ - spec/arel/algebra/unit/relations/table_spec.rb
203
+ - spec/arel/algebra/unit/relations/take_spec.rb
204
+ - spec/arel/algebra/unit/relations/update_spec.rb
205
+ - spec/arel/algebra/unit/relations/where_spec.rb
206
+ - spec/arel/algebra/unit/session/session_spec.rb
207
+ - spec/arel/engines/memory/integration/joins/cross_engine_spec.rb
208
+ - spec/arel/engines/memory/unit/relations/array_spec.rb
209
+ - spec/arel/engines/memory/unit/relations/insert_spec.rb
210
+ - spec/arel/engines/memory/unit/relations/join_spec.rb
211
+ - spec/arel/engines/memory/unit/relations/order_spec.rb
212
+ - spec/arel/engines/memory/unit/relations/project_spec.rb
213
+ - spec/arel/engines/memory/unit/relations/skip_spec.rb
214
+ - spec/arel/engines/memory/unit/relations/take_spec.rb
215
+ - spec/arel/engines/memory/unit/relations/where_spec.rb
216
+ - spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb
217
+ - spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb
218
+ - spec/arel/engines/sql/integration/joins/with_compounds_spec.rb
219
+ - spec/arel/engines/sql/unit/engine_spec.rb
220
+ - spec/arel/engines/sql/unit/predicates/binary_spec.rb
221
+ - spec/arel/engines/sql/unit/predicates/equality_spec.rb
222
+ - spec/arel/engines/sql/unit/predicates/in_spec.rb
223
+ - spec/arel/engines/sql/unit/predicates/predicates_spec.rb
224
+ - spec/arel/engines/sql/unit/primitives/attribute_spec.rb
225
+ - spec/arel/engines/sql/unit/primitives/expression_spec.rb
226
+ - spec/arel/engines/sql/unit/primitives/literal_spec.rb
227
+ - spec/arel/engines/sql/unit/primitives/value_spec.rb
228
+ - spec/arel/engines/sql/unit/relations/alias_spec.rb
229
+ - spec/arel/engines/sql/unit/relations/delete_spec.rb
230
+ - spec/arel/engines/sql/unit/relations/group_spec.rb
231
+ - spec/arel/engines/sql/unit/relations/insert_spec.rb
232
+ - spec/arel/engines/sql/unit/relations/join_spec.rb
233
+ - spec/arel/engines/sql/unit/relations/order_spec.rb
234
+ - spec/arel/engines/sql/unit/relations/project_spec.rb
235
+ - spec/arel/engines/sql/unit/relations/skip_spec.rb
236
+ - spec/arel/engines/sql/unit/relations/table_spec.rb
237
+ - spec/arel/engines/sql/unit/relations/take_spec.rb
238
+ - spec/arel/engines/sql/unit/relations/update_spec.rb
239
+ - spec/arel/engines/sql/unit/relations/where_spec.rb
240
+ - spec/connections/mysql_connection.rb
241
+ - spec/connections/postgresql_connection.rb
242
+ - spec/connections/sqlite3_connection.rb
243
+ - spec/doubles/hash.rb
244
+ - spec/matchers/be_like.rb
245
+ - spec/matchers/disambiguate_attributes.rb
246
+ - spec/matchers/hash_the_same_as.rb
247
+ - spec/schemas/mysql_schema.rb
248
+ - spec/schemas/postgresql_schema.rb
249
+ - spec/schemas/sqlite3_schema.rb
250
+ - spec/spec_helper.rb