arel 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/.gitmodules +3 -0
  2. data/README.markdown +26 -26
  3. data/Rakefile +34 -46
  4. data/Thorfile +122 -0
  5. data/arel.gemspec +205 -201
  6. data/lib/arel.rb +11 -7
  7. data/lib/arel/algebra.rb +7 -2
  8. data/lib/arel/algebra/{primitives/attribute.rb → attribute.rb} +7 -7
  9. data/lib/arel/algebra/core_extensions.rb +4 -0
  10. data/lib/arel/algebra/{extensions → core_extensions}/class.rb +2 -2
  11. data/lib/arel/algebra/{extensions → core_extensions}/hash.rb +1 -1
  12. data/lib/arel/algebra/{extensions → core_extensions}/object.rb +1 -1
  13. data/lib/arel/algebra/{extensions → core_extensions}/symbol.rb +1 -1
  14. data/lib/arel/algebra/{primitives/expression.rb → expression.rb} +0 -0
  15. data/lib/arel/algebra/{primitives/ordering.rb → ordering.rb} +1 -1
  16. data/lib/arel/algebra/predicates.rb +32 -30
  17. data/lib/arel/algebra/relations/relation.rb +1 -1
  18. data/lib/arel/algebra/{primitives/value.rb → value.rb} +0 -0
  19. data/lib/arel/engines/memory/predicates.rb +26 -24
  20. data/lib/arel/engines/sql.rb +1 -1
  21. data/lib/arel/engines/sql/core_extensions.rb +4 -0
  22. data/lib/arel/engines/sql/{extensions → core_extensions}/array.rb +1 -1
  23. data/lib/arel/engines/sql/{extensions → core_extensions}/nil_class.rb +1 -1
  24. data/lib/arel/engines/sql/{extensions → core_extensions}/object.rb +1 -1
  25. data/lib/arel/engines/sql/{extensions → core_extensions}/range.rb +1 -1
  26. data/lib/arel/engines/sql/formatters.rb +6 -3
  27. data/lib/arel/engines/sql/predicates.rb +37 -35
  28. data/lib/arel/engines/sql/primitives.rb +10 -2
  29. data/lib/arel/engines/sql/relations/operations/join.rb +2 -2
  30. data/lib/arel/engines/sql/relations/relation.rb +33 -9
  31. data/lib/arel/engines/sql/relations/writes.rb +41 -10
  32. data/lib/arel/session.rb +9 -6
  33. data/spec/arel/algebra/unit/predicates/binary_spec.rb +23 -21
  34. data/spec/arel/algebra/unit/predicates/equality_spec.rb +20 -18
  35. data/spec/arel/algebra/unit/predicates/in_spec.rb +7 -5
  36. data/spec/arel/algebra/unit/primitives/attribute_spec.rb +10 -12
  37. data/spec/arel/algebra/unit/primitives/expression_spec.rb +1 -1
  38. data/spec/arel/algebra/unit/primitives/value_spec.rb +1 -1
  39. data/spec/arel/algebra/unit/relations/alias_spec.rb +2 -2
  40. data/spec/arel/algebra/unit/relations/delete_spec.rb +1 -1
  41. data/spec/arel/algebra/unit/relations/group_spec.rb +1 -1
  42. data/spec/arel/algebra/unit/relations/insert_spec.rb +1 -1
  43. data/spec/arel/algebra/unit/relations/join_spec.rb +1 -1
  44. data/spec/arel/algebra/unit/relations/order_spec.rb +2 -2
  45. data/spec/arel/algebra/unit/relations/project_spec.rb +1 -1
  46. data/spec/arel/algebra/unit/relations/relation_spec.rb +5 -5
  47. data/spec/arel/algebra/unit/relations/skip_spec.rb +1 -1
  48. data/spec/arel/algebra/unit/relations/table_spec.rb +2 -2
  49. data/spec/arel/algebra/unit/relations/take_spec.rb +1 -1
  50. data/spec/arel/algebra/unit/relations/update_spec.rb +1 -1
  51. data/spec/arel/algebra/unit/relations/where_spec.rb +1 -1
  52. data/spec/arel/algebra/unit/session/session_spec.rb +1 -1
  53. data/spec/arel/engines/memory/integration/joins/cross_engine_spec.rb +3 -4
  54. data/spec/arel/engines/memory/unit/relations/array_spec.rb +1 -1
  55. data/spec/arel/engines/memory/unit/relations/insert_spec.rb +8 -8
  56. data/spec/arel/engines/memory/unit/relations/join_spec.rb +1 -1
  57. data/spec/arel/engines/memory/unit/relations/order_spec.rb +1 -1
  58. data/spec/arel/engines/memory/unit/relations/project_spec.rb +1 -1
  59. data/spec/arel/engines/memory/unit/relations/skip_spec.rb +1 -1
  60. data/spec/arel/engines/memory/unit/relations/take_spec.rb +1 -1
  61. data/spec/arel/engines/memory/unit/relations/where_spec.rb +1 -1
  62. data/spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb +1 -1
  63. data/spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb +1 -1
  64. data/spec/arel/engines/sql/integration/joins/with_compounds_spec.rb +1 -1
  65. data/spec/arel/engines/sql/unit/engine_spec.rb +1 -1
  66. data/spec/arel/engines/sql/unit/predicates/binary_spec.rb +73 -70
  67. data/spec/arel/engines/sql/unit/predicates/equality_spec.rb +45 -28
  68. data/spec/arel/engines/sql/unit/predicates/in_spec.rb +57 -55
  69. data/spec/arel/engines/sql/unit/predicates/predicates_spec.rb +48 -46
  70. data/spec/arel/engines/sql/unit/primitives/attribute_spec.rb +1 -1
  71. data/spec/arel/engines/sql/unit/primitives/expression_spec.rb +1 -1
  72. data/spec/arel/engines/sql/unit/primitives/literal_spec.rb +13 -1
  73. data/spec/arel/engines/sql/unit/primitives/value_spec.rb +3 -3
  74. data/spec/arel/engines/sql/unit/relations/alias_spec.rb +1 -1
  75. data/spec/arel/engines/sql/unit/relations/delete_spec.rb +1 -1
  76. data/spec/arel/engines/sql/unit/relations/group_spec.rb +1 -1
  77. data/spec/arel/engines/sql/unit/relations/insert_spec.rb +1 -1
  78. data/spec/arel/engines/sql/unit/relations/join_spec.rb +1 -1
  79. data/spec/arel/engines/sql/unit/relations/order_spec.rb +1 -1
  80. data/spec/arel/engines/sql/unit/relations/project_spec.rb +1 -1
  81. data/spec/arel/engines/sql/unit/relations/skip_spec.rb +1 -1
  82. data/spec/arel/engines/sql/unit/relations/table_spec.rb +1 -1
  83. data/spec/arel/engines/sql/unit/relations/take_spec.rb +1 -1
  84. data/spec/arel/engines/sql/unit/relations/update_spec.rb +13 -7
  85. data/spec/arel/engines/sql/unit/relations/where_spec.rb +1 -1
  86. data/spec/connections/mysql_connection.rb +3 -3
  87. data/spec/connections/postgresql_connection.rb +2 -2
  88. data/spec/connections/sqlite3_connection.rb +3 -2
  89. data/spec/doubles/hash.rb +4 -0
  90. data/spec/spec.opts +3 -0
  91. data/spec/spec_helper.rb +8 -0
  92. metadata +39 -25
  93. data/VERSION +0 -1
  94. data/lib/arel/algebra/extensions.rb +0 -4
  95. data/lib/arel/algebra/primitives.rb +0 -5
  96. data/lib/arel/engines/sql/extensions.rb +0 -4
@@ -0,0 +1,3 @@
1
+ [submodule "vendor/rails"]
2
+ path = vendor/rails
3
+ url = git://github.com/rails/rails.git
@@ -15,20 +15,20 @@ The long term goal, following both LINQ and DataMapper, is to have Arel adapt to
15
15
  Generating a query with ARel is simple. For example, in order to produce
16
16
 
17
17
  SELECT * FROM users
18
-
18
+
19
19
  you construct a table relation and convert it to sql:
20
20
 
21
21
  users = Table(:users)
22
22
  users.to_sql
23
-
23
+
24
24
  In fact, you will probably never call `#to_sql`. Rather, you'll work with data from the table directly. You can iterate through all rows in the `users` table like this:
25
25
 
26
26
  users.each { |user| ... }
27
-
27
+
28
28
  In other words, Arel relations implement Ruby's Enumerable interface. Let's have a look at a concrete example:
29
29
 
30
30
  users.first # => { users[:id] => 1, users[:name] => 'bob' }
31
-
31
+
32
32
  As you can see, Arel converts the rows from the database into a hash, the values of which are sublimated to the appropriate Ruby primitive (integers, strings, and so forth).
33
33
 
34
34
  ### More Sophisticated <strike>Queries</strike> Relations ###
@@ -43,7 +43,7 @@ First is the 'restriction' operator, `where`:
43
43
  What would, in SQL, be part of the `SELECT` clause is called in Arel a `projection`:
44
44
 
45
45
  users.project(users[:id]) # => SELECT users.id FROM users
46
-
46
+
47
47
  Joins resemble SQL strongly:
48
48
 
49
49
  users.join(photos).on(users[:id].eq(photos[:user_id]))
@@ -53,7 +53,7 @@ What are called `LIMIT` and `OFFSET` in SQL are called `take` and `skip` in Arel
53
53
 
54
54
  users.take(5) # => SELECT * FROM users LIMIT 5
55
55
  users.skip(4) # => SELECT * FROM users OFFSET 4
56
-
56
+
57
57
  `GROUP BY` is called `group`:
58
58
 
59
59
  users.group(users[:name]) # => SELECT * FROM users GROUP BY name
@@ -68,7 +68,7 @@ The best property of the Relational Algebra is its "composability", or closure u
68
68
  All operators are chainable in this way, and they are chainable any number of times, in any order.
69
69
 
70
70
  users.where(users[:name].eq('bob')).where(users[:age].lt(25))
71
-
71
+
72
72
  Of course, many of the operators take multiple arguments, so the last example can be written more tersely:
73
73
 
74
74
  users.where(users[:name].eq('bob'), users[:age].lt(25))
@@ -76,7 +76,7 @@ Of course, many of the operators take multiple arguments, so the last example ca
76
76
  The `OR` operator is not yet supported. It will work like this:
77
77
 
78
78
  users.where(users[:name].eq('bob').or(users[:age].lt(25)))
79
-
79
+
80
80
  The `AND` operator will behave similarly.
81
81
 
82
82
  Finally, most operations take a block form. For example:
@@ -96,7 +96,7 @@ The examples above are fairly simple and other libraries match or come close to
96
96
  Where Arel really shines in its ability to handle complex joins and aggregations. As a first example, let's consider an "adjacency list", a tree represented in a table. Suppose we have a table `comments`, representing a threaded discussion:
97
97
 
98
98
  comments = Table(:comments)
99
-
99
+
100
100
  And this table has the following attributes:
101
101
 
102
102
  comments.attributes # => [comments[:id], comments[:body], comments[:parent_id]]
@@ -107,23 +107,23 @@ The `parent_id` column is a foreign key from the `comments` table to itself. Now
107
107
  comments_with_replies = \
108
108
  comments.join(replies).on(replies[:parent_id].eq(comments[:id]))
109
109
  # => SELECT * FROM comments INNER JOIN comments AS comments_2 WHERE comments_2.parent_id = comments.id
110
-
110
+
111
111
  The call to `#alias` is actually optional: Arel will always produce a unique name for every table joined in the relation, and it will always do so deterministically to exploit query caching. Explicit aliasing is more common, however. When you want to extract specific slices of data, aliased tables are a necessity. For example to get just certain columns from the row, treat a row like a hash:
112
112
 
113
113
  comments_with_replies.first[replies[:body]]
114
-
114
+
115
115
  This will return the first comment's reply's body.
116
116
 
117
117
  If you don't need to extract the data later (for example, you're simply doing a join to find comments that have replies, you don't care what the content of the replies are), the block form may be preferable:
118
118
 
119
119
  comments.join(comments) { |comments, replies| replies[:parent_id].eq(comments[:id]) }
120
120
  # => SELECT * FROM comments INNER JOIN comments AS comments_2 WHERE comments_2.parent_id = comments.id
121
-
121
+
122
122
  Note that you do NOT want to do something like:
123
123
 
124
124
  comments.join(comments, comments[:parent_id].eq(comments[:id]))
125
125
  # => SELECT * FROM comments INNER JOIN comments AS comments_2 WHERE comments.parent_id = comments.id
126
-
126
+
127
127
  This does NOT have the same meaning as the previous query, since the comments[:parent_id] reference is effectively ambiguous.
128
128
 
129
129
  #### Complex Aggregations ####
@@ -135,24 +135,24 @@ The easiest way to introduce this is in SQL. Your task is to get all users and t
135
135
  SELECT count(*)
136
136
  FROM photos
137
137
  GROUP BY user_id
138
-
138
+
139
139
  Now, we'd like to join this with the user table. Naively, you might try to do this:
140
140
 
141
141
  SELECT users.*, count(photos.id)
142
142
  FROM users
143
143
  LEFT OUTER JOIN photos
144
- ON users.id = photos.id
144
+ ON users.id = photos.user_id
145
145
  GROUP BY photos.user_id
146
-
146
+
147
147
  Of course, this has a slightly different meaning than our intended query. This is actually a fairly advanced topic in SQL so let's see why this doesn't work *step by step*. Suppose we have these records in our `users` table:
148
148
 
149
149
  mysql> select * from users;
150
150
  +------+--------+
151
151
  | id | name |
152
152
  +------+--------+
153
- | 1 | hai |
154
- | 2 | bai |
155
- | 3 | dumpty |
153
+ | 1 | hai |
154
+ | 2 | bai |
155
+ | 3 | dumpty |
156
156
  +------+--------+
157
157
 
158
158
  And these in the photos table:
@@ -161,19 +161,19 @@ And these in the photos table:
161
161
  +------+---------+-----------+
162
162
  | id | user_id | camera_id |
163
163
  +------+---------+-----------+
164
- | 1 | 1 | 1 |
165
- | 2 | 1 | 1 |
166
- | 3 | 1 | 1 |
164
+ | 1 | 1 | 1 |
165
+ | 2 | 1 | 1 |
166
+ | 3 | 1 | 1 |
167
167
  +------+---------+-----------+
168
-
168
+
169
169
  If we perform the above, incorrect query, we get the following:
170
170
 
171
171
  mysql> select users.*, count(photos.id) from users left outer join photos on users.id = photos.user_id limit 3 group by user_id;
172
172
  +------+------+------------------+
173
173
  | id | name | count(photos.id) |
174
174
  +------+------+------------------+
175
- | 2 | bai | 0 |
176
- | 1 | hai | 3 |
175
+ | 2 | bai | 0 |
176
+ | 1 | hai | 3 |
177
177
  +------+------+------------------+
178
178
 
179
179
  As you can see, we're completely missing data for user with id 3. `dumpty` has no photos, neither does `bai`. But strangely `bai` appeared and `dumpty` didn't! The reason is that the `GROUP BY` clause is aggregating on both tables, not just the `photos` table. All users without photos have a `photos.id` of `null` (thanks to the left outer join). These are rolled up together and an arbitrary user wins. In this case, `bai` not `dumpty`.
@@ -181,4 +181,4 @@ As you can see, we're completely missing data for user with id 3. `dumpty` has n
181
181
  SELECT users.*, photos_aggregation.cnt
182
182
  FROM users
183
183
  LEFT OUTER JOIN (SELECT user_id, count(*) as cnt FROM photos GROUP BY user_id) AS photos_aggregation
184
- ON photos_aggregation.user_id = users.id
184
+ ON photos_aggregation.user_id = users.id
data/Rakefile CHANGED
@@ -1,58 +1,46 @@
1
1
  require "rubygems"
2
- require "spec/rake/spectask"
3
-
4
- $LOAD_PATH.unshift "lib"
5
- require "arel"
6
2
 
7
3
  begin
8
- require 'jeweler'
9
-
10
- Jeweler::Tasks.new do |s|
11
- s.name = "arel"
12
- s.authors = ["Bryan Helmkamp", "Nick Kallen"]
13
- s.email = "bryan" + "@" + "brynary.com"
14
- s.homepage = "http://github.com/brynary/arel"
15
- s.summary = "Arel is a relational algebra engine for Ruby"
16
- # s.description = "TODO"
17
- s.rubyforge_project = "arel"
18
- s.extra_rdoc_files = %w(README.markdown)
19
- end
20
-
21
- Jeweler::RubyforgeTasks.new
4
+ require "spec/rake/spectask"
22
5
  rescue LoadError
23
- puts "Jeweler not available. Install it with: gem install jeweler"
24
- end
25
-
26
- desc "Run specs using RCov (uses mysql database adapter)"
27
- Spec::Rake::SpecTask.new(:coverage) do |t|
28
- t.spec_files =
29
- ["spec/connections/mysql_connection.rb"] +
30
- FileList['spec/**/*_spec.rb']
31
-
32
- t.rcov = true
33
- t.rcov_opts << '--exclude' << "spec,gems"
34
- t.rcov_opts << '--text-summary'
35
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
36
- t.rcov_opts << '--only-uncovered'
37
- end
6
+ desc "Run specs"
7
+ task(:spec) { $stderr.puts '`gem install rspec` to run specs' }
8
+ else
9
+ desc "Run specs using RCov (uses mysql database adapter)"
10
+ Spec::Rake::SpecTask.new(:coverage) do |t|
11
+ t.spec_files =
12
+ ["spec/connections/mysql_connection.rb"] +
13
+ FileList['spec/**/*_spec.rb']
14
+
15
+ t.rcov = true
16
+ t.rcov_opts << '--exclude' << "spec,gems"
17
+ t.rcov_opts << '--text-summary'
18
+ t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
19
+ t.rcov_opts << '--only-uncovered'
20
+ end
38
21
 
39
- namespace :spec do
40
- for adapter in %w[mysql sqlite3 postgresql]
41
- desc "Run specs with the #{adapter} database adapter"
42
- Spec::Rake::SpecTask.new(adapter) do |t|
43
- t.spec_files =
44
- ["spec/connections/#{adapter}_connection.rb"] +
45
- ["spec/schemas/#{adapter}_schema.rb"] +
46
- FileList['spec/**/*_spec.rb']
22
+ namespace :spec do
23
+ for adapter in %w[mysql sqlite3 postgresql]
24
+ desc "Run specs with the #{adapter} database adapter"
25
+ Spec::Rake::SpecTask.new(adapter) do |t|
26
+ t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
27
+ t.libs << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
28
+ t.libs << "#{File.dirname(__FILE__)}/spec"
29
+ t.warning = true
30
+ t.spec_files =
31
+ ["spec/connections/#{adapter}_connection.rb"] +
32
+ ["spec/schemas/#{adapter}_schema.rb"] +
33
+ FileList['spec/**/*_spec.rb']
34
+ end
47
35
  end
48
36
  end
49
- end
50
37
 
51
- desc "Run specs with mysql and sqlite3 database adapters (default)"
52
- task :spec => ["check_dependencies", "spec:sqlite3", "spec:mysql", "spec:postgresql"]
38
+ desc "Run specs with mysql and sqlite3 database adapters (default)"
39
+ task :spec => ["check_dependencies", "spec:sqlite3", "spec:mysql", "spec:postgresql"]
53
40
 
54
- desc "Default task is to run specs"
55
- task :default => :spec
41
+ desc "Default task is to run specs"
42
+ task :default => :spec
43
+ end
56
44
 
57
45
  desc 'Removes trailing whitespace'
58
46
  task :whitespace do
@@ -0,0 +1,122 @@
1
+ module GemHelpers
2
+
3
+ def generate_gemspec
4
+ $LOAD_PATH << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
5
+ $LOAD_PATH << "#{File.dirname(__FILE__)}/vendor/rails/activesupport/lib"
6
+
7
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), "lib")))
8
+ require "arel"
9
+
10
+ Gem::Specification.new do |s|
11
+ s.name = "arel"
12
+ s.version = Arel::VERSION
13
+ s.authors = ["Bryan Helmkamp", "Nick Kallen"]
14
+ s.email = "bryan@brynary.com"
15
+ s.homepage = "http://github.com/brynary/arel"
16
+ s.summary = "Arel is a relational algebra engine for Ruby"
17
+ s.description = <<-EOS.strip
18
+ Arel is a Relational Algebra for Ruby. It 1) simplifies the generation complex
19
+ of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be
20
+ a framework framework; that is, you can build your own ORM with it, focusing on
21
+ innovative object and collection modeling as opposed to database compatibility
22
+ and query generation.
23
+ EOS
24
+ s.rubyforge_project = "arel"
25
+
26
+ require "git"
27
+ repo = Git.open(".")
28
+
29
+ s.files = normalize_files(repo.ls_files.keys - repo.lib.ignored_files)
30
+ s.test_files = normalize_files(Dir['spec/**/*.rb'] - repo.lib.ignored_files)
31
+
32
+ s.has_rdoc = true
33
+ s.extra_rdoc_files = %w[README.markdown]
34
+
35
+ # Arel required ActiveRecord, but we're not declaring it to avoid a
36
+ # circular dependency chain. The solution is for ActiveRecord to release
37
+ # the connection adapters which Arel uses in a separate gem
38
+ # s.add_dependency "activerecord", ">= 3.0.pre"
39
+ s.add_dependency "activesupport", ">= 3.0.pre"
40
+ end
41
+ end
42
+
43
+ def normalize_files(array)
44
+ # only keep files, no directories, and sort
45
+ array.select do |path|
46
+ File.file?(path)
47
+ end.sort
48
+ end
49
+
50
+ # Adds extra space when outputting an array. This helps create better version
51
+ # control diffs, because otherwise it is all on the same line.
52
+ def prettyify_array(gemspec_ruby, array_name)
53
+ gemspec_ruby.gsub(/s\.#{array_name.to_s} = \[.+?\]/) do |match|
54
+ leadin, files = match[0..-2].split("[")
55
+ leadin + "[\n #{files.split(",").join(",\n ")}\n ]"
56
+ end
57
+ end
58
+
59
+ def read_gemspec
60
+ @read_gemspec ||= eval(File.read("arel.gemspec"))
61
+ end
62
+
63
+ def sh(command)
64
+ puts command
65
+ system command
66
+ end
67
+ end
68
+
69
+ class Default < Thor
70
+ include GemHelpers
71
+
72
+ desc "gemspec", "Regenerate arel.gemspec"
73
+ def gemspec
74
+ File.open("arel.gemspec", "w") do |file|
75
+ gemspec_ruby = generate_gemspec.to_ruby
76
+ gemspec_ruby = prettyify_array(gemspec_ruby, :files)
77
+ gemspec_ruby = prettyify_array(gemspec_ruby, :test_files)
78
+ gemspec_ruby = prettyify_array(gemspec_ruby, :extra_rdoc_files)
79
+
80
+ file.write gemspec_ruby
81
+ end
82
+
83
+ puts "Wrote gemspec to arel.gemspec"
84
+ read_gemspec.validate
85
+ end
86
+
87
+ desc "build", "Build a arel gem"
88
+ def build
89
+ sh "gem build arel.gemspec"
90
+ FileUtils.mkdir_p "pkg"
91
+ FileUtils.mv read_gemspec.file_name, "pkg"
92
+ end
93
+
94
+ desc "install", "Install the latest built gem"
95
+ def install
96
+ sh "gem install --local pkg/#{read_gemspec.file_name}"
97
+ end
98
+
99
+ desc "release", "Release the current branch to GitHub and Gemcutter"
100
+ def release
101
+ gemspec
102
+ build
103
+ Release.new.tag
104
+ Release.new.gem
105
+ end
106
+ end
107
+
108
+ class Release < Thor
109
+ include GemHelpers
110
+
111
+ desc "tag", "Tag the gem on the origin server"
112
+ def tag
113
+ release_tag = "v#{read_gemspec.version}"
114
+ sh "git tag -a #{release_tag} -m 'Tagging #{release_tag}'"
115
+ sh "git push origin #{release_tag}"
116
+ end
117
+
118
+ desc "gem", "Push the gem to Gemcutter"
119
+ def gem
120
+ sh "gem push pkg/#{read_gemspec.file_name}"
121
+ end
122
+ end
@@ -1,224 +1,225 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
1
  # -*- encoding: utf-8 -*-
5
2
 
6
3
  Gem::Specification.new do |s|
7
4
  s.name = %q{arel}
8
- s.version = "0.1.0"
5
+ s.version = "0.1.2"
9
6
 
10
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
8
  s.authors = ["Bryan Helmkamp", "Nick Kallen"]
12
- s.date = %q{2009-08-06}
9
+ s.date = %q{2009-10-27}
10
+ s.description = %q{Arel is a Relational Algebra for Ruby. It 1) simplifies the generation complex
11
+ of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be
12
+ a framework framework; that is, you can build your own ORM with it, focusing on
13
+ innovative object and collection modeling as opposed to database compatibility
14
+ and query generation.}
13
15
  s.email = %q{bryan@brynary.com}
14
16
  s.extra_rdoc_files = [
15
17
  "README.markdown"
16
18
  ]
17
19
  s.files = [
18
20
  ".gitignore",
19
- "README.markdown",
20
- "Rakefile",
21
- "VERSION",
22
- "arel.gemspec",
23
- "doc/CONVENTIONS",
24
- "doc/TODO",
25
- "lib/arel.rb",
26
- "lib/arel/.DS_Store",
27
- "lib/arel/algebra.rb",
28
- "lib/arel/algebra/extensions.rb",
29
- "lib/arel/algebra/extensions/class.rb",
30
- "lib/arel/algebra/extensions/hash.rb",
31
- "lib/arel/algebra/extensions/object.rb",
32
- "lib/arel/algebra/extensions/symbol.rb",
33
- "lib/arel/algebra/predicates.rb",
34
- "lib/arel/algebra/primitives.rb",
35
- "lib/arel/algebra/primitives/attribute.rb",
36
- "lib/arel/algebra/primitives/expression.rb",
37
- "lib/arel/algebra/primitives/ordering.rb",
38
- "lib/arel/algebra/primitives/value.rb",
39
- "lib/arel/algebra/relations.rb",
40
- "lib/arel/algebra/relations/operations/alias.rb",
41
- "lib/arel/algebra/relations/operations/group.rb",
42
- "lib/arel/algebra/relations/operations/join.rb",
43
- "lib/arel/algebra/relations/operations/order.rb",
44
- "lib/arel/algebra/relations/operations/project.rb",
45
- "lib/arel/algebra/relations/operations/skip.rb",
46
- "lib/arel/algebra/relations/operations/take.rb",
47
- "lib/arel/algebra/relations/operations/where.rb",
48
- "lib/arel/algebra/relations/relation.rb",
49
- "lib/arel/algebra/relations/row.rb",
50
- "lib/arel/algebra/relations/utilities/compound.rb",
51
- "lib/arel/algebra/relations/utilities/externalization.rb",
52
- "lib/arel/algebra/relations/utilities/nil.rb",
53
- "lib/arel/algebra/relations/writes.rb",
54
- "lib/arel/engines.rb",
55
- "lib/arel/engines/memory.rb",
56
- "lib/arel/engines/memory/engine.rb",
57
- "lib/arel/engines/memory/predicates.rb",
58
- "lib/arel/engines/memory/primitives.rb",
59
- "lib/arel/engines/memory/relations.rb",
60
- "lib/arel/engines/memory/relations/array.rb",
61
- "lib/arel/engines/memory/relations/compound.rb",
62
- "lib/arel/engines/memory/relations/operations.rb",
63
- "lib/arel/engines/memory/relations/writes.rb",
64
- "lib/arel/engines/sql.rb",
65
- "lib/arel/engines/sql/christener.rb",
66
- "lib/arel/engines/sql/engine.rb",
67
- "lib/arel/engines/sql/extensions.rb",
68
- "lib/arel/engines/sql/extensions/array.rb",
69
- "lib/arel/engines/sql/extensions/nil_class.rb",
70
- "lib/arel/engines/sql/extensions/object.rb",
71
- "lib/arel/engines/sql/extensions/range.rb",
72
- "lib/arel/engines/sql/formatters.rb",
73
- "lib/arel/engines/sql/predicates.rb",
74
- "lib/arel/engines/sql/primitives.rb",
75
- "lib/arel/engines/sql/relations.rb",
76
- "lib/arel/engines/sql/relations/operations/alias.rb",
77
- "lib/arel/engines/sql/relations/operations/join.rb",
78
- "lib/arel/engines/sql/relations/relation.rb",
79
- "lib/arel/engines/sql/relations/table.rb",
80
- "lib/arel/engines/sql/relations/utilities/compound.rb",
81
- "lib/arel/engines/sql/relations/utilities/externalization.rb",
82
- "lib/arel/engines/sql/relations/utilities/nil.rb",
83
- "lib/arel/engines/sql/relations/utilities/recursion.rb",
84
- "lib/arel/engines/sql/relations/writes.rb",
85
- "lib/arel/session.rb",
86
- "spec/arel/algebra/unit/predicates/binary_spec.rb",
87
- "spec/arel/algebra/unit/predicates/equality_spec.rb",
88
- "spec/arel/algebra/unit/predicates/in_spec.rb",
89
- "spec/arel/algebra/unit/primitives/attribute_spec.rb",
90
- "spec/arel/algebra/unit/primitives/expression_spec.rb",
91
- "spec/arel/algebra/unit/primitives/value_spec.rb",
92
- "spec/arel/algebra/unit/relations/alias_spec.rb",
93
- "spec/arel/algebra/unit/relations/delete_spec.rb",
94
- "spec/arel/algebra/unit/relations/group_spec.rb",
95
- "spec/arel/algebra/unit/relations/insert_spec.rb",
96
- "spec/arel/algebra/unit/relations/join_spec.rb",
97
- "spec/arel/algebra/unit/relations/order_spec.rb",
98
- "spec/arel/algebra/unit/relations/project_spec.rb",
99
- "spec/arel/algebra/unit/relations/relation_spec.rb",
100
- "spec/arel/algebra/unit/relations/skip_spec.rb",
101
- "spec/arel/algebra/unit/relations/table_spec.rb",
102
- "spec/arel/algebra/unit/relations/take_spec.rb",
103
- "spec/arel/algebra/unit/relations/update_spec.rb",
104
- "spec/arel/algebra/unit/relations/where_spec.rb",
105
- "spec/arel/algebra/unit/session/session_spec.rb",
106
- "spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
107
- "spec/arel/engines/memory/unit/relations/array_spec.rb",
108
- "spec/arel/engines/memory/unit/relations/insert_spec.rb",
109
- "spec/arel/engines/memory/unit/relations/join_spec.rb",
110
- "spec/arel/engines/memory/unit/relations/order_spec.rb",
111
- "spec/arel/engines/memory/unit/relations/project_spec.rb",
112
- "spec/arel/engines/memory/unit/relations/skip_spec.rb",
113
- "spec/arel/engines/memory/unit/relations/take_spec.rb",
114
- "spec/arel/engines/memory/unit/relations/where_spec.rb",
115
- "spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
116
- "spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
117
- "spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
118
- "spec/arel/engines/sql/unit/engine_spec.rb",
119
- "spec/arel/engines/sql/unit/predicates/binary_spec.rb",
120
- "spec/arel/engines/sql/unit/predicates/equality_spec.rb",
121
- "spec/arel/engines/sql/unit/predicates/in_spec.rb",
122
- "spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
123
- "spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
124
- "spec/arel/engines/sql/unit/primitives/expression_spec.rb",
125
- "spec/arel/engines/sql/unit/primitives/literal_spec.rb",
126
- "spec/arel/engines/sql/unit/primitives/value_spec.rb",
127
- "spec/arel/engines/sql/unit/relations/alias_spec.rb",
128
- "spec/arel/engines/sql/unit/relations/delete_spec.rb",
129
- "spec/arel/engines/sql/unit/relations/group_spec.rb",
130
- "spec/arel/engines/sql/unit/relations/insert_spec.rb",
131
- "spec/arel/engines/sql/unit/relations/join_spec.rb",
132
- "spec/arel/engines/sql/unit/relations/order_spec.rb",
133
- "spec/arel/engines/sql/unit/relations/project_spec.rb",
134
- "spec/arel/engines/sql/unit/relations/skip_spec.rb",
135
- "spec/arel/engines/sql/unit/relations/table_spec.rb",
136
- "spec/arel/engines/sql/unit/relations/take_spec.rb",
137
- "spec/arel/engines/sql/unit/relations/update_spec.rb",
138
- "spec/arel/engines/sql/unit/relations/where_spec.rb",
139
- "spec/connections/mysql_connection.rb",
140
- "spec/connections/postgresql_connection.rb",
141
- "spec/connections/sqlite3_connection.rb",
142
- "spec/doubles/hash.rb",
143
- "spec/matchers/be_like.rb",
144
- "spec/matchers/disambiguate_attributes.rb",
145
- "spec/matchers/hash_the_same_as.rb",
146
- "spec/schemas/mysql_schema.rb",
147
- "spec/schemas/postgresql_schema.rb",
148
- "spec/schemas/sqlite3_schema.rb",
149
- "spec/spec_helper.rb"
21
+ ".gitmodules",
22
+ "README.markdown",
23
+ "Rakefile",
24
+ "Thorfile",
25
+ "arel.gemspec",
26
+ "doc/CONVENTIONS",
27
+ "doc/TODO",
28
+ "lib/arel.rb",
29
+ "lib/arel/algebra.rb",
30
+ "lib/arel/algebra/attribute.rb",
31
+ "lib/arel/algebra/core_extensions.rb",
32
+ "lib/arel/algebra/core_extensions/class.rb",
33
+ "lib/arel/algebra/core_extensions/hash.rb",
34
+ "lib/arel/algebra/core_extensions/object.rb",
35
+ "lib/arel/algebra/core_extensions/symbol.rb",
36
+ "lib/arel/algebra/expression.rb",
37
+ "lib/arel/algebra/ordering.rb",
38
+ "lib/arel/algebra/predicates.rb",
39
+ "lib/arel/algebra/relations.rb",
40
+ "lib/arel/algebra/relations/operations/alias.rb",
41
+ "lib/arel/algebra/relations/operations/group.rb",
42
+ "lib/arel/algebra/relations/operations/join.rb",
43
+ "lib/arel/algebra/relations/operations/order.rb",
44
+ "lib/arel/algebra/relations/operations/project.rb",
45
+ "lib/arel/algebra/relations/operations/skip.rb",
46
+ "lib/arel/algebra/relations/operations/take.rb",
47
+ "lib/arel/algebra/relations/operations/where.rb",
48
+ "lib/arel/algebra/relations/relation.rb",
49
+ "lib/arel/algebra/relations/row.rb",
50
+ "lib/arel/algebra/relations/utilities/compound.rb",
51
+ "lib/arel/algebra/relations/utilities/externalization.rb",
52
+ "lib/arel/algebra/relations/utilities/nil.rb",
53
+ "lib/arel/algebra/relations/writes.rb",
54
+ "lib/arel/algebra/value.rb",
55
+ "lib/arel/engines.rb",
56
+ "lib/arel/engines/memory.rb",
57
+ "lib/arel/engines/memory/engine.rb",
58
+ "lib/arel/engines/memory/predicates.rb",
59
+ "lib/arel/engines/memory/primitives.rb",
60
+ "lib/arel/engines/memory/relations.rb",
61
+ "lib/arel/engines/memory/relations/array.rb",
62
+ "lib/arel/engines/memory/relations/compound.rb",
63
+ "lib/arel/engines/memory/relations/operations.rb",
64
+ "lib/arel/engines/memory/relations/writes.rb",
65
+ "lib/arel/engines/sql.rb",
66
+ "lib/arel/engines/sql/christener.rb",
67
+ "lib/arel/engines/sql/core_extensions.rb",
68
+ "lib/arel/engines/sql/core_extensions/array.rb",
69
+ "lib/arel/engines/sql/core_extensions/nil_class.rb",
70
+ "lib/arel/engines/sql/core_extensions/object.rb",
71
+ "lib/arel/engines/sql/core_extensions/range.rb",
72
+ "lib/arel/engines/sql/engine.rb",
73
+ "lib/arel/engines/sql/formatters.rb",
74
+ "lib/arel/engines/sql/predicates.rb",
75
+ "lib/arel/engines/sql/primitives.rb",
76
+ "lib/arel/engines/sql/relations.rb",
77
+ "lib/arel/engines/sql/relations/operations/alias.rb",
78
+ "lib/arel/engines/sql/relations/operations/join.rb",
79
+ "lib/arel/engines/sql/relations/relation.rb",
80
+ "lib/arel/engines/sql/relations/table.rb",
81
+ "lib/arel/engines/sql/relations/utilities/compound.rb",
82
+ "lib/arel/engines/sql/relations/utilities/externalization.rb",
83
+ "lib/arel/engines/sql/relations/utilities/nil.rb",
84
+ "lib/arel/engines/sql/relations/utilities/recursion.rb",
85
+ "lib/arel/engines/sql/relations/writes.rb",
86
+ "lib/arel/session.rb",
87
+ "spec/arel/algebra/unit/predicates/binary_spec.rb",
88
+ "spec/arel/algebra/unit/predicates/equality_spec.rb",
89
+ "spec/arel/algebra/unit/predicates/in_spec.rb",
90
+ "spec/arel/algebra/unit/primitives/attribute_spec.rb",
91
+ "spec/arel/algebra/unit/primitives/expression_spec.rb",
92
+ "spec/arel/algebra/unit/primitives/value_spec.rb",
93
+ "spec/arel/algebra/unit/relations/alias_spec.rb",
94
+ "spec/arel/algebra/unit/relations/delete_spec.rb",
95
+ "spec/arel/algebra/unit/relations/group_spec.rb",
96
+ "spec/arel/algebra/unit/relations/insert_spec.rb",
97
+ "spec/arel/algebra/unit/relations/join_spec.rb",
98
+ "spec/arel/algebra/unit/relations/order_spec.rb",
99
+ "spec/arel/algebra/unit/relations/project_spec.rb",
100
+ "spec/arel/algebra/unit/relations/relation_spec.rb",
101
+ "spec/arel/algebra/unit/relations/skip_spec.rb",
102
+ "spec/arel/algebra/unit/relations/table_spec.rb",
103
+ "spec/arel/algebra/unit/relations/take_spec.rb",
104
+ "spec/arel/algebra/unit/relations/update_spec.rb",
105
+ "spec/arel/algebra/unit/relations/where_spec.rb",
106
+ "spec/arel/algebra/unit/session/session_spec.rb",
107
+ "spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
108
+ "spec/arel/engines/memory/unit/relations/array_spec.rb",
109
+ "spec/arel/engines/memory/unit/relations/insert_spec.rb",
110
+ "spec/arel/engines/memory/unit/relations/join_spec.rb",
111
+ "spec/arel/engines/memory/unit/relations/order_spec.rb",
112
+ "spec/arel/engines/memory/unit/relations/project_spec.rb",
113
+ "spec/arel/engines/memory/unit/relations/skip_spec.rb",
114
+ "spec/arel/engines/memory/unit/relations/take_spec.rb",
115
+ "spec/arel/engines/memory/unit/relations/where_spec.rb",
116
+ "spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
117
+ "spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
118
+ "spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
119
+ "spec/arel/engines/sql/unit/engine_spec.rb",
120
+ "spec/arel/engines/sql/unit/predicates/binary_spec.rb",
121
+ "spec/arel/engines/sql/unit/predicates/equality_spec.rb",
122
+ "spec/arel/engines/sql/unit/predicates/in_spec.rb",
123
+ "spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
124
+ "spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
125
+ "spec/arel/engines/sql/unit/primitives/expression_spec.rb",
126
+ "spec/arel/engines/sql/unit/primitives/literal_spec.rb",
127
+ "spec/arel/engines/sql/unit/primitives/value_spec.rb",
128
+ "spec/arel/engines/sql/unit/relations/alias_spec.rb",
129
+ "spec/arel/engines/sql/unit/relations/delete_spec.rb",
130
+ "spec/arel/engines/sql/unit/relations/group_spec.rb",
131
+ "spec/arel/engines/sql/unit/relations/insert_spec.rb",
132
+ "spec/arel/engines/sql/unit/relations/join_spec.rb",
133
+ "spec/arel/engines/sql/unit/relations/order_spec.rb",
134
+ "spec/arel/engines/sql/unit/relations/project_spec.rb",
135
+ "spec/arel/engines/sql/unit/relations/skip_spec.rb",
136
+ "spec/arel/engines/sql/unit/relations/table_spec.rb",
137
+ "spec/arel/engines/sql/unit/relations/take_spec.rb",
138
+ "spec/arel/engines/sql/unit/relations/update_spec.rb",
139
+ "spec/arel/engines/sql/unit/relations/where_spec.rb",
140
+ "spec/connections/mysql_connection.rb",
141
+ "spec/connections/postgresql_connection.rb",
142
+ "spec/connections/sqlite3_connection.rb",
143
+ "spec/doubles/hash.rb",
144
+ "spec/matchers/be_like.rb",
145
+ "spec/matchers/disambiguate_attributes.rb",
146
+ "spec/matchers/hash_the_same_as.rb",
147
+ "spec/schemas/mysql_schema.rb",
148
+ "spec/schemas/postgresql_schema.rb",
149
+ "spec/schemas/sqlite3_schema.rb",
150
+ "spec/spec.opts",
151
+ "spec/spec_helper.rb"
150
152
  ]
151
153
  s.homepage = %q{http://github.com/brynary/arel}
152
- s.rdoc_options = ["--charset=UTF-8"]
153
154
  s.require_paths = ["lib"]
154
155
  s.rubyforge_project = %q{arel}
155
- s.rubygems_version = %q{1.3.4}
156
+ s.rubygems_version = %q{1.3.5}
156
157
  s.summary = %q{Arel is a relational algebra engine for Ruby}
157
158
  s.test_files = [
158
159
  "spec/arel/algebra/unit/predicates/binary_spec.rb",
159
- "spec/arel/algebra/unit/predicates/equality_spec.rb",
160
- "spec/arel/algebra/unit/predicates/in_spec.rb",
161
- "spec/arel/algebra/unit/primitives/attribute_spec.rb",
162
- "spec/arel/algebra/unit/primitives/expression_spec.rb",
163
- "spec/arel/algebra/unit/primitives/value_spec.rb",
164
- "spec/arel/algebra/unit/relations/alias_spec.rb",
165
- "spec/arel/algebra/unit/relations/delete_spec.rb",
166
- "spec/arel/algebra/unit/relations/group_spec.rb",
167
- "spec/arel/algebra/unit/relations/insert_spec.rb",
168
- "spec/arel/algebra/unit/relations/join_spec.rb",
169
- "spec/arel/algebra/unit/relations/order_spec.rb",
170
- "spec/arel/algebra/unit/relations/project_spec.rb",
171
- "spec/arel/algebra/unit/relations/relation_spec.rb",
172
- "spec/arel/algebra/unit/relations/skip_spec.rb",
173
- "spec/arel/algebra/unit/relations/table_spec.rb",
174
- "spec/arel/algebra/unit/relations/take_spec.rb",
175
- "spec/arel/algebra/unit/relations/update_spec.rb",
176
- "spec/arel/algebra/unit/relations/where_spec.rb",
177
- "spec/arel/algebra/unit/session/session_spec.rb",
178
- "spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
179
- "spec/arel/engines/memory/unit/relations/array_spec.rb",
180
- "spec/arel/engines/memory/unit/relations/insert_spec.rb",
181
- "spec/arel/engines/memory/unit/relations/join_spec.rb",
182
- "spec/arel/engines/memory/unit/relations/order_spec.rb",
183
- "spec/arel/engines/memory/unit/relations/project_spec.rb",
184
- "spec/arel/engines/memory/unit/relations/skip_spec.rb",
185
- "spec/arel/engines/memory/unit/relations/take_spec.rb",
186
- "spec/arel/engines/memory/unit/relations/where_spec.rb",
187
- "spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
188
- "spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
189
- "spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
190
- "spec/arel/engines/sql/unit/engine_spec.rb",
191
- "spec/arel/engines/sql/unit/predicates/binary_spec.rb",
192
- "spec/arel/engines/sql/unit/predicates/equality_spec.rb",
193
- "spec/arel/engines/sql/unit/predicates/in_spec.rb",
194
- "spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
195
- "spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
196
- "spec/arel/engines/sql/unit/primitives/expression_spec.rb",
197
- "spec/arel/engines/sql/unit/primitives/literal_spec.rb",
198
- "spec/arel/engines/sql/unit/primitives/value_spec.rb",
199
- "spec/arel/engines/sql/unit/relations/alias_spec.rb",
200
- "spec/arel/engines/sql/unit/relations/delete_spec.rb",
201
- "spec/arel/engines/sql/unit/relations/group_spec.rb",
202
- "spec/arel/engines/sql/unit/relations/insert_spec.rb",
203
- "spec/arel/engines/sql/unit/relations/join_spec.rb",
204
- "spec/arel/engines/sql/unit/relations/order_spec.rb",
205
- "spec/arel/engines/sql/unit/relations/project_spec.rb",
206
- "spec/arel/engines/sql/unit/relations/skip_spec.rb",
207
- "spec/arel/engines/sql/unit/relations/table_spec.rb",
208
- "spec/arel/engines/sql/unit/relations/take_spec.rb",
209
- "spec/arel/engines/sql/unit/relations/update_spec.rb",
210
- "spec/arel/engines/sql/unit/relations/where_spec.rb",
211
- "spec/connections/mysql_connection.rb",
212
- "spec/connections/postgresql_connection.rb",
213
- "spec/connections/sqlite3_connection.rb",
214
- "spec/doubles/hash.rb",
215
- "spec/matchers/be_like.rb",
216
- "spec/matchers/disambiguate_attributes.rb",
217
- "spec/matchers/hash_the_same_as.rb",
218
- "spec/schemas/mysql_schema.rb",
219
- "spec/schemas/postgresql_schema.rb",
220
- "spec/schemas/sqlite3_schema.rb",
221
- "spec/spec_helper.rb"
160
+ "spec/arel/algebra/unit/predicates/equality_spec.rb",
161
+ "spec/arel/algebra/unit/predicates/in_spec.rb",
162
+ "spec/arel/algebra/unit/primitives/attribute_spec.rb",
163
+ "spec/arel/algebra/unit/primitives/expression_spec.rb",
164
+ "spec/arel/algebra/unit/primitives/value_spec.rb",
165
+ "spec/arel/algebra/unit/relations/alias_spec.rb",
166
+ "spec/arel/algebra/unit/relations/delete_spec.rb",
167
+ "spec/arel/algebra/unit/relations/group_spec.rb",
168
+ "spec/arel/algebra/unit/relations/insert_spec.rb",
169
+ "spec/arel/algebra/unit/relations/join_spec.rb",
170
+ "spec/arel/algebra/unit/relations/order_spec.rb",
171
+ "spec/arel/algebra/unit/relations/project_spec.rb",
172
+ "spec/arel/algebra/unit/relations/relation_spec.rb",
173
+ "spec/arel/algebra/unit/relations/skip_spec.rb",
174
+ "spec/arel/algebra/unit/relations/table_spec.rb",
175
+ "spec/arel/algebra/unit/relations/take_spec.rb",
176
+ "spec/arel/algebra/unit/relations/update_spec.rb",
177
+ "spec/arel/algebra/unit/relations/where_spec.rb",
178
+ "spec/arel/algebra/unit/session/session_spec.rb",
179
+ "spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
180
+ "spec/arel/engines/memory/unit/relations/array_spec.rb",
181
+ "spec/arel/engines/memory/unit/relations/insert_spec.rb",
182
+ "spec/arel/engines/memory/unit/relations/join_spec.rb",
183
+ "spec/arel/engines/memory/unit/relations/order_spec.rb",
184
+ "spec/arel/engines/memory/unit/relations/project_spec.rb",
185
+ "spec/arel/engines/memory/unit/relations/skip_spec.rb",
186
+ "spec/arel/engines/memory/unit/relations/take_spec.rb",
187
+ "spec/arel/engines/memory/unit/relations/where_spec.rb",
188
+ "spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
189
+ "spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
190
+ "spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
191
+ "spec/arel/engines/sql/unit/engine_spec.rb",
192
+ "spec/arel/engines/sql/unit/predicates/binary_spec.rb",
193
+ "spec/arel/engines/sql/unit/predicates/equality_spec.rb",
194
+ "spec/arel/engines/sql/unit/predicates/in_spec.rb",
195
+ "spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
196
+ "spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
197
+ "spec/arel/engines/sql/unit/primitives/expression_spec.rb",
198
+ "spec/arel/engines/sql/unit/primitives/literal_spec.rb",
199
+ "spec/arel/engines/sql/unit/primitives/value_spec.rb",
200
+ "spec/arel/engines/sql/unit/relations/alias_spec.rb",
201
+ "spec/arel/engines/sql/unit/relations/delete_spec.rb",
202
+ "spec/arel/engines/sql/unit/relations/group_spec.rb",
203
+ "spec/arel/engines/sql/unit/relations/insert_spec.rb",
204
+ "spec/arel/engines/sql/unit/relations/join_spec.rb",
205
+ "spec/arel/engines/sql/unit/relations/order_spec.rb",
206
+ "spec/arel/engines/sql/unit/relations/project_spec.rb",
207
+ "spec/arel/engines/sql/unit/relations/skip_spec.rb",
208
+ "spec/arel/engines/sql/unit/relations/table_spec.rb",
209
+ "spec/arel/engines/sql/unit/relations/take_spec.rb",
210
+ "spec/arel/engines/sql/unit/relations/update_spec.rb",
211
+ "spec/arel/engines/sql/unit/relations/where_spec.rb",
212
+ "spec/connections/mysql_connection.rb",
213
+ "spec/connections/postgresql_connection.rb",
214
+ "spec/connections/sqlite3_connection.rb",
215
+ "spec/doubles/hash.rb",
216
+ "spec/matchers/be_like.rb",
217
+ "spec/matchers/disambiguate_attributes.rb",
218
+ "spec/matchers/hash_the_same_as.rb",
219
+ "spec/schemas/mysql_schema.rb",
220
+ "spec/schemas/postgresql_schema.rb",
221
+ "spec/schemas/sqlite3_schema.rb",
222
+ "spec/spec_helper.rb"
222
223
  ]
223
224
 
224
225
  if s.respond_to? :specification_version then
@@ -226,8 +227,11 @@ Gem::Specification.new do |s|
226
227
  s.specification_version = 3
227
228
 
228
229
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
230
+ s.add_runtime_dependency(%q<activesupport>, [">= 3.0.pre"])
229
231
  else
232
+ s.add_dependency(%q<activesupport>, [">= 3.0.pre"])
230
233
  end
231
234
  else
235
+ s.add_dependency(%q<activesupport>, [">= 3.0.pre"])
232
236
  end
233
237
  end