arel 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/arel.rb +4 -3
- data/lib/arel/algebra.rb +1 -1
- data/lib/arel/algebra/attributes.rb +7 -0
- data/lib/arel/algebra/{attribute.rb → attributes/attribute.rb} +32 -0
- data/lib/arel/algebra/attributes/boolean.rb +21 -0
- data/lib/arel/algebra/attributes/decimal.rb +9 -0
- data/lib/arel/algebra/attributes/float.rb +9 -0
- data/lib/arel/algebra/attributes/integer.rb +10 -0
- data/lib/arel/algebra/attributes/string.rb +10 -0
- data/lib/arel/algebra/attributes/time.rb +6 -0
- data/lib/arel/algebra/predicates.rb +1 -0
- data/lib/arel/algebra/relations/operations/join.rb +4 -2
- data/lib/arel/algebra/relations/operations/order.rb +2 -1
- data/lib/arel/algebra/relations/operations/skip.rb +2 -1
- data/lib/arel/algebra/relations/operations/take.rb +2 -1
- data/lib/arel/algebra/relations/operations/where.rb +7 -6
- data/lib/arel/algebra/relations/relation.rb +2 -1
- data/lib/arel/algebra/relations/utilities/compound.rb +22 -2
- data/lib/arel/algebra/relations/utilities/externalization.rb +1 -1
- data/lib/arel/algebra/relations/utilities/nil.rb +2 -2
- data/lib/arel/engines/memory/predicates.rb +6 -0
- data/lib/arel/engines/memory/relations/array.rb +11 -4
- data/lib/arel/engines/memory/relations/compound.rb +1 -1
- data/lib/arel/engines/memory/relations/operations.rb +2 -2
- data/lib/arel/engines/sql.rb +1 -0
- data/lib/arel/engines/sql/attributes.rb +40 -0
- data/lib/arel/engines/sql/compilers/ibm_db_compiler.rb +0 -14
- data/lib/arel/engines/sql/predicates.rb +4 -0
- data/lib/arel/engines/sql/primitives.rb +0 -4
- data/lib/arel/engines/sql/relations/compiler.rb +5 -5
- data/lib/arel/engines/sql/relations/operations/join.rb +1 -1
- data/lib/arel/engines/sql/relations/relation.rb +1 -1
- data/lib/arel/engines/sql/relations/table.rb +6 -7
- data/lib/arel/engines/sql/relations/utilities/compound.rb +1 -1
- data/lib/arel/engines/sql/relations/utilities/nil.rb +1 -1
- data/lib/arel/session.rb +2 -2
- data/lib/arel/version.rb +3 -0
- data/spec/{arel/algebra → algebra}/unit/predicates/binary_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/predicates/equality_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/predicates/in_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/primitives/attribute_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/primitives/expression_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/primitives/value_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/alias_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/delete_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/group_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/insert_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/join_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/order_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/project_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/relation_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/skip_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/table_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/take_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/update_spec.rb +0 -0
- data/spec/{arel/algebra → algebra}/unit/relations/where_spec.rb +1 -0
- data/spec/{arel/algebra → algebra}/unit/session/session_spec.rb +0 -0
- data/spec/attributes/boolean_spec.rb +57 -0
- data/spec/attributes/float_spec.rb +119 -0
- data/spec/attributes/integer_spec.rb +119 -0
- data/spec/attributes/string_spec.rb +43 -0
- data/spec/attributes/time_spec.rb +22 -0
- data/spec/{arel/engines → engines}/memory/integration/joins/cross_engine_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/array_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/insert_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/join_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/order_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/project_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/skip_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/take_spec.rb +1 -1
- data/spec/{arel/engines → engines}/memory/unit/relations/where_spec.rb +1 -1
- data/spec/{arel/engines → engines}/sql/integration/joins/with_adjacency_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/integration/joins/with_aggregations_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/integration/joins/with_compounds_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/engine_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/predicates/binary_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/predicates/equality_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/predicates/in_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/predicates/predicates_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/primitives/attribute_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/primitives/expression_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/primitives/literal_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/primitives/value_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/alias_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/delete_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/from_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/group_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/having_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/insert_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/join_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/lock_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/order_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/project_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/skip_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/table_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/take_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/update_spec.rb +0 -0
- data/spec/{arel/engines → engines}/sql/unit/relations/where_spec.rb +0 -0
- data/spec/relations/join_spec.rb +40 -0
- data/spec/relations/relation_spec.rb +31 -0
- data/spec/shared/relation_spec.rb +142 -0
- data/spec/spec_helper.rb +17 -45
- data/spec/support/check.rb +6 -0
- data/spec/{connections → support/connections}/mysql_connection.rb +2 -4
- data/spec/{connections → support/connections}/oracle_connection.rb +3 -5
- data/spec/{connections → support/connections}/postgresql_connection.rb +2 -4
- data/spec/{connections → support/connections}/sqlite3_connection.rb +2 -4
- data/spec/support/guards.rb +28 -0
- data/spec/support/matchers.rb +4 -0
- data/spec/{matchers → support/matchers}/be_like.rb +1 -1
- data/spec/{matchers → support/matchers}/disambiguate_attributes.rb +1 -1
- data/spec/{matchers → support/matchers}/hash_the_same_as.rb +1 -1
- data/spec/support/matchers/have_rows.rb +18 -0
- data/spec/support/model.rb +58 -0
- data/spec/{schemas → support/schemas}/mysql_schema.rb +0 -0
- data/spec/{schemas → support/schemas}/oracle_schema.rb +0 -0
- data/spec/{schemas → support/schemas}/postgresql_schema.rb +0 -0
- data/spec/{schemas → support/schemas}/sqlite3_schema.rb +0 -0
- metadata +107 -163
- data/.gitignore +0 -6
- data/.gitmodules +0 -3
- data/Rakefile +0 -48
- data/Thorfile +0 -124
- data/arel.gemspec +0 -258
- data/doc/CONVENTIONS +0 -17
- data/doc/TODO +0 -118
- data/spec/doubles/hash.rb +0 -27
- data/spec/spec.opts +0 -3
data/.gitignore
DELETED
data/.gitmodules
DELETED
data/Rakefile
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
|
3
|
-
begin
|
4
|
-
require "spec/rake/spectask"
|
5
|
-
rescue LoadError
|
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
|
21
|
-
|
22
|
-
namespace :spec do
|
23
|
-
for adapter in %w[mysql sqlite3 postgresql oracle]
|
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
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
desc "Run specs with mysql and sqlite3 database adapters (default)"
|
39
|
-
task :spec => ["spec:sqlite3", "spec:mysql", "spec:postgresql"]
|
40
|
-
|
41
|
-
desc "Default task is to run specs"
|
42
|
-
task :default => :spec
|
43
|
-
end
|
44
|
-
|
45
|
-
desc 'Removes trailing whitespace'
|
46
|
-
task :whitespace do
|
47
|
-
sh %{find . -name '*.rb' -exec sed -i '' 's/ *$//g' {} \\;}
|
48
|
-
end
|
data/Thorfile
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
require "active_support"
|
2
|
-
|
3
|
-
module GemHelpers
|
4
|
-
|
5
|
-
def generate_gemspec
|
6
|
-
$LOAD_PATH << "#{File.dirname(__FILE__)}/vendor/rails/activerecord/lib"
|
7
|
-
$LOAD_PATH << "#{File.dirname(__FILE__)}/vendor/rails/activesupport/lib"
|
8
|
-
|
9
|
-
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), "lib")))
|
10
|
-
require "arel"
|
11
|
-
|
12
|
-
Gem::Specification.new do |s|
|
13
|
-
s.name = "arel"
|
14
|
-
s.version = Arel::VERSION
|
15
|
-
s.authors = ["Bryan Helmkamp", "Nick Kallen", "Emilio Tagua"]
|
16
|
-
s.email = "bryan@brynary.com"
|
17
|
-
s.homepage = "http://github.com/brynary/arel"
|
18
|
-
s.summary = "Arel is a relational algebra engine for Ruby"
|
19
|
-
s.description = <<-EOS.strip
|
20
|
-
Arel is a Relational Algebra for Ruby. It 1) simplifies the generation complex
|
21
|
-
of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be
|
22
|
-
a framework framework; that is, you can build your own ORM with it, focusing on
|
23
|
-
innovative object and collection modeling as opposed to database compatibility
|
24
|
-
and query generation.
|
25
|
-
EOS
|
26
|
-
s.rubyforge_project = "arel"
|
27
|
-
|
28
|
-
require "git"
|
29
|
-
repo = Git.open(".")
|
30
|
-
|
31
|
-
s.files = normalize_files(repo.ls_files.keys - repo.lib.ignored_files)
|
32
|
-
s.test_files = normalize_files(Dir['spec/**/*.rb'] - repo.lib.ignored_files)
|
33
|
-
|
34
|
-
s.has_rdoc = true
|
35
|
-
s.extra_rdoc_files = %w[History.txt README.markdown]
|
36
|
-
|
37
|
-
# Arel required ActiveRecord, but we're not declaring it to avoid a
|
38
|
-
# circular dependency chain. The solution is for ActiveRecord to release
|
39
|
-
# the connection adapters which Arel uses in a separate gem
|
40
|
-
# s.add_dependency "activerecord", ">= 3.0.pre"
|
41
|
-
s.add_dependency "activesupport", ">= 3.0.0.beta"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def normalize_files(array)
|
46
|
-
# only keep files, no directories, and sort
|
47
|
-
array.select do |path|
|
48
|
-
File.file?(path)
|
49
|
-
end.sort
|
50
|
-
end
|
51
|
-
|
52
|
-
# Adds extra space when outputting an array. This helps create better version
|
53
|
-
# control diffs, because otherwise it is all on the same line.
|
54
|
-
def prettyify_array(gemspec_ruby, array_name)
|
55
|
-
gemspec_ruby.gsub(/s\.#{array_name.to_s} = \[.+?\]/) do |match|
|
56
|
-
leadin, files = match[0..-2].split("[")
|
57
|
-
leadin + "[\n #{files.split(",").join(",\n ")}\n ]"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def read_gemspec
|
62
|
-
@read_gemspec ||= eval(File.read("arel.gemspec"))
|
63
|
-
end
|
64
|
-
|
65
|
-
def sh(command)
|
66
|
-
puts command
|
67
|
-
system command
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
class Default < Thor
|
72
|
-
include GemHelpers
|
73
|
-
|
74
|
-
desc "gemspec", "Regenerate arel.gemspec"
|
75
|
-
def gemspec
|
76
|
-
File.open("arel.gemspec", "w") do |file|
|
77
|
-
gemspec_ruby = generate_gemspec.to_ruby
|
78
|
-
gemspec_ruby = prettyify_array(gemspec_ruby, :files)
|
79
|
-
gemspec_ruby = prettyify_array(gemspec_ruby, :test_files)
|
80
|
-
gemspec_ruby = prettyify_array(gemspec_ruby, :extra_rdoc_files)
|
81
|
-
|
82
|
-
file.write gemspec_ruby
|
83
|
-
end
|
84
|
-
|
85
|
-
puts "Wrote gemspec to arel.gemspec"
|
86
|
-
read_gemspec.validate
|
87
|
-
end
|
88
|
-
|
89
|
-
desc "build", "Build a arel gem"
|
90
|
-
def build
|
91
|
-
sh "gem build arel.gemspec"
|
92
|
-
FileUtils.mkdir_p "pkg"
|
93
|
-
FileUtils.mv read_gemspec.file_name, "pkg"
|
94
|
-
end
|
95
|
-
|
96
|
-
desc "install", "Install the latest built gem"
|
97
|
-
def install
|
98
|
-
sh "gem install --local pkg/#{read_gemspec.file_name}"
|
99
|
-
end
|
100
|
-
|
101
|
-
desc "release", "Release the current branch to GitHub and Gemcutter"
|
102
|
-
def release
|
103
|
-
gemspec
|
104
|
-
build
|
105
|
-
Release.new.tag
|
106
|
-
Release.new.gem
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
class Release < Thor
|
111
|
-
include GemHelpers
|
112
|
-
|
113
|
-
desc "tag", "Tag the gem on the origin server"
|
114
|
-
def tag
|
115
|
-
release_tag = "v#{read_gemspec.version}"
|
116
|
-
sh "git tag -a #{release_tag} -m 'Tagging #{release_tag}'"
|
117
|
-
sh "git push origin #{release_tag}"
|
118
|
-
end
|
119
|
-
|
120
|
-
desc "gem", "Push the gem to Gemcutter"
|
121
|
-
def gem
|
122
|
-
sh "gem push pkg/#{read_gemspec.file_name}"
|
123
|
-
end
|
124
|
-
end
|
data/arel.gemspec
DELETED
@@ -1,258 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{arel}
|
5
|
-
s.version = "0.3.1"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Bryan Helmkamp", "Nick Kallen", "Emilio Tagua"]
|
9
|
-
s.date = %q{2010-03-10}
|
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.}
|
15
|
-
s.email = %q{bryan@brynary.com}
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"History.txt",
|
18
|
-
"README.markdown"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".gitignore",
|
22
|
-
".gitmodules",
|
23
|
-
"History.txt",
|
24
|
-
"README.markdown",
|
25
|
-
"Rakefile",
|
26
|
-
"Thorfile",
|
27
|
-
"arel.gemspec",
|
28
|
-
"doc/CONVENTIONS",
|
29
|
-
"doc/TODO",
|
30
|
-
"lib/arel.rb",
|
31
|
-
"lib/arel/algebra.rb",
|
32
|
-
"lib/arel/algebra/attribute.rb",
|
33
|
-
"lib/arel/algebra/core_extensions.rb",
|
34
|
-
"lib/arel/algebra/core_extensions/class.rb",
|
35
|
-
"lib/arel/algebra/core_extensions/hash.rb",
|
36
|
-
"lib/arel/algebra/core_extensions/object.rb",
|
37
|
-
"lib/arel/algebra/core_extensions/symbol.rb",
|
38
|
-
"lib/arel/algebra/expression.rb",
|
39
|
-
"lib/arel/algebra/ordering.rb",
|
40
|
-
"lib/arel/algebra/predicates.rb",
|
41
|
-
"lib/arel/algebra/relations.rb",
|
42
|
-
"lib/arel/algebra/relations/operations/alias.rb",
|
43
|
-
"lib/arel/algebra/relations/operations/from.rb",
|
44
|
-
"lib/arel/algebra/relations/operations/group.rb",
|
45
|
-
"lib/arel/algebra/relations/operations/having.rb",
|
46
|
-
"lib/arel/algebra/relations/operations/join.rb",
|
47
|
-
"lib/arel/algebra/relations/operations/lock.rb",
|
48
|
-
"lib/arel/algebra/relations/operations/order.rb",
|
49
|
-
"lib/arel/algebra/relations/operations/project.rb",
|
50
|
-
"lib/arel/algebra/relations/operations/skip.rb",
|
51
|
-
"lib/arel/algebra/relations/operations/take.rb",
|
52
|
-
"lib/arel/algebra/relations/operations/where.rb",
|
53
|
-
"lib/arel/algebra/relations/relation.rb",
|
54
|
-
"lib/arel/algebra/relations/row.rb",
|
55
|
-
"lib/arel/algebra/relations/utilities/compound.rb",
|
56
|
-
"lib/arel/algebra/relations/utilities/externalization.rb",
|
57
|
-
"lib/arel/algebra/relations/utilities/nil.rb",
|
58
|
-
"lib/arel/algebra/relations/writes.rb",
|
59
|
-
"lib/arel/algebra/value.rb",
|
60
|
-
"lib/arel/engines.rb",
|
61
|
-
"lib/arel/engines/memory.rb",
|
62
|
-
"lib/arel/engines/memory/engine.rb",
|
63
|
-
"lib/arel/engines/memory/predicates.rb",
|
64
|
-
"lib/arel/engines/memory/primitives.rb",
|
65
|
-
"lib/arel/engines/memory/relations.rb",
|
66
|
-
"lib/arel/engines/memory/relations/array.rb",
|
67
|
-
"lib/arel/engines/memory/relations/compound.rb",
|
68
|
-
"lib/arel/engines/memory/relations/operations.rb",
|
69
|
-
"lib/arel/engines/memory/relations/writes.rb",
|
70
|
-
"lib/arel/engines/sql.rb",
|
71
|
-
"lib/arel/engines/sql/christener.rb",
|
72
|
-
"lib/arel/engines/sql/compilers/ibm_db_compiler.rb",
|
73
|
-
"lib/arel/engines/sql/compilers/mysql_compiler.rb",
|
74
|
-
"lib/arel/engines/sql/compilers/oracle_compiler.rb",
|
75
|
-
"lib/arel/engines/sql/compilers/postgresql_compiler.rb",
|
76
|
-
"lib/arel/engines/sql/compilers/sqlite_compiler.rb",
|
77
|
-
"lib/arel/engines/sql/core_extensions.rb",
|
78
|
-
"lib/arel/engines/sql/core_extensions/array.rb",
|
79
|
-
"lib/arel/engines/sql/core_extensions/nil_class.rb",
|
80
|
-
"lib/arel/engines/sql/core_extensions/object.rb",
|
81
|
-
"lib/arel/engines/sql/core_extensions/range.rb",
|
82
|
-
"lib/arel/engines/sql/engine.rb",
|
83
|
-
"lib/arel/engines/sql/formatters.rb",
|
84
|
-
"lib/arel/engines/sql/predicates.rb",
|
85
|
-
"lib/arel/engines/sql/primitives.rb",
|
86
|
-
"lib/arel/engines/sql/relations.rb",
|
87
|
-
"lib/arel/engines/sql/relations/compiler.rb",
|
88
|
-
"lib/arel/engines/sql/relations/operations/alias.rb",
|
89
|
-
"lib/arel/engines/sql/relations/operations/join.rb",
|
90
|
-
"lib/arel/engines/sql/relations/relation.rb",
|
91
|
-
"lib/arel/engines/sql/relations/table.rb",
|
92
|
-
"lib/arel/engines/sql/relations/utilities/compound.rb",
|
93
|
-
"lib/arel/engines/sql/relations/utilities/externalization.rb",
|
94
|
-
"lib/arel/engines/sql/relations/utilities/nil.rb",
|
95
|
-
"lib/arel/engines/sql/relations/utilities/recursion.rb",
|
96
|
-
"lib/arel/engines/sql/relations/writes.rb",
|
97
|
-
"lib/arel/session.rb",
|
98
|
-
"spec/arel/algebra/unit/predicates/binary_spec.rb",
|
99
|
-
"spec/arel/algebra/unit/predicates/equality_spec.rb",
|
100
|
-
"spec/arel/algebra/unit/predicates/in_spec.rb",
|
101
|
-
"spec/arel/algebra/unit/primitives/attribute_spec.rb",
|
102
|
-
"spec/arel/algebra/unit/primitives/expression_spec.rb",
|
103
|
-
"spec/arel/algebra/unit/primitives/value_spec.rb",
|
104
|
-
"spec/arel/algebra/unit/relations/alias_spec.rb",
|
105
|
-
"spec/arel/algebra/unit/relations/delete_spec.rb",
|
106
|
-
"spec/arel/algebra/unit/relations/group_spec.rb",
|
107
|
-
"spec/arel/algebra/unit/relations/insert_spec.rb",
|
108
|
-
"spec/arel/algebra/unit/relations/join_spec.rb",
|
109
|
-
"spec/arel/algebra/unit/relations/order_spec.rb",
|
110
|
-
"spec/arel/algebra/unit/relations/project_spec.rb",
|
111
|
-
"spec/arel/algebra/unit/relations/relation_spec.rb",
|
112
|
-
"spec/arel/algebra/unit/relations/skip_spec.rb",
|
113
|
-
"spec/arel/algebra/unit/relations/table_spec.rb",
|
114
|
-
"spec/arel/algebra/unit/relations/take_spec.rb",
|
115
|
-
"spec/arel/algebra/unit/relations/update_spec.rb",
|
116
|
-
"spec/arel/algebra/unit/relations/where_spec.rb",
|
117
|
-
"spec/arel/algebra/unit/session/session_spec.rb",
|
118
|
-
"spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
|
119
|
-
"spec/arel/engines/memory/unit/relations/array_spec.rb",
|
120
|
-
"spec/arel/engines/memory/unit/relations/insert_spec.rb",
|
121
|
-
"spec/arel/engines/memory/unit/relations/join_spec.rb",
|
122
|
-
"spec/arel/engines/memory/unit/relations/order_spec.rb",
|
123
|
-
"spec/arel/engines/memory/unit/relations/project_spec.rb",
|
124
|
-
"spec/arel/engines/memory/unit/relations/skip_spec.rb",
|
125
|
-
"spec/arel/engines/memory/unit/relations/take_spec.rb",
|
126
|
-
"spec/arel/engines/memory/unit/relations/where_spec.rb",
|
127
|
-
"spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
|
128
|
-
"spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
|
129
|
-
"spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
|
130
|
-
"spec/arel/engines/sql/unit/engine_spec.rb",
|
131
|
-
"spec/arel/engines/sql/unit/predicates/binary_spec.rb",
|
132
|
-
"spec/arel/engines/sql/unit/predicates/equality_spec.rb",
|
133
|
-
"spec/arel/engines/sql/unit/predicates/in_spec.rb",
|
134
|
-
"spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
|
135
|
-
"spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
|
136
|
-
"spec/arel/engines/sql/unit/primitives/expression_spec.rb",
|
137
|
-
"spec/arel/engines/sql/unit/primitives/literal_spec.rb",
|
138
|
-
"spec/arel/engines/sql/unit/primitives/value_spec.rb",
|
139
|
-
"spec/arel/engines/sql/unit/relations/alias_spec.rb",
|
140
|
-
"spec/arel/engines/sql/unit/relations/delete_spec.rb",
|
141
|
-
"spec/arel/engines/sql/unit/relations/from_spec.rb",
|
142
|
-
"spec/arel/engines/sql/unit/relations/group_spec.rb",
|
143
|
-
"spec/arel/engines/sql/unit/relations/having_spec.rb",
|
144
|
-
"spec/arel/engines/sql/unit/relations/insert_spec.rb",
|
145
|
-
"spec/arel/engines/sql/unit/relations/join_spec.rb",
|
146
|
-
"spec/arel/engines/sql/unit/relations/lock_spec.rb",
|
147
|
-
"spec/arel/engines/sql/unit/relations/order_spec.rb",
|
148
|
-
"spec/arel/engines/sql/unit/relations/project_spec.rb",
|
149
|
-
"spec/arel/engines/sql/unit/relations/skip_spec.rb",
|
150
|
-
"spec/arel/engines/sql/unit/relations/table_spec.rb",
|
151
|
-
"spec/arel/engines/sql/unit/relations/take_spec.rb",
|
152
|
-
"spec/arel/engines/sql/unit/relations/update_spec.rb",
|
153
|
-
"spec/arel/engines/sql/unit/relations/where_spec.rb",
|
154
|
-
"spec/connections/mysql_connection.rb",
|
155
|
-
"spec/connections/oracle_connection.rb",
|
156
|
-
"spec/connections/postgresql_connection.rb",
|
157
|
-
"spec/connections/sqlite3_connection.rb",
|
158
|
-
"spec/doubles/hash.rb",
|
159
|
-
"spec/matchers/be_like.rb",
|
160
|
-
"spec/matchers/disambiguate_attributes.rb",
|
161
|
-
"spec/matchers/hash_the_same_as.rb",
|
162
|
-
"spec/schemas/mysql_schema.rb",
|
163
|
-
"spec/schemas/oracle_schema.rb",
|
164
|
-
"spec/schemas/postgresql_schema.rb",
|
165
|
-
"spec/schemas/sqlite3_schema.rb",
|
166
|
-
"spec/spec.opts",
|
167
|
-
"spec/spec_helper.rb"
|
168
|
-
]
|
169
|
-
s.homepage = %q{http://github.com/brynary/arel}
|
170
|
-
s.require_paths = ["lib"]
|
171
|
-
s.rubyforge_project = %q{arel}
|
172
|
-
s.rubygems_version = %q{1.3.6}
|
173
|
-
s.summary = %q{Arel is a relational algebra engine for Ruby}
|
174
|
-
s.test_files = [
|
175
|
-
"spec/arel/algebra/unit/predicates/binary_spec.rb",
|
176
|
-
"spec/arel/algebra/unit/predicates/equality_spec.rb",
|
177
|
-
"spec/arel/algebra/unit/predicates/in_spec.rb",
|
178
|
-
"spec/arel/algebra/unit/primitives/attribute_spec.rb",
|
179
|
-
"spec/arel/algebra/unit/primitives/expression_spec.rb",
|
180
|
-
"spec/arel/algebra/unit/primitives/value_spec.rb",
|
181
|
-
"spec/arel/algebra/unit/relations/alias_spec.rb",
|
182
|
-
"spec/arel/algebra/unit/relations/delete_spec.rb",
|
183
|
-
"spec/arel/algebra/unit/relations/group_spec.rb",
|
184
|
-
"spec/arel/algebra/unit/relations/insert_spec.rb",
|
185
|
-
"spec/arel/algebra/unit/relations/join_spec.rb",
|
186
|
-
"spec/arel/algebra/unit/relations/order_spec.rb",
|
187
|
-
"spec/arel/algebra/unit/relations/project_spec.rb",
|
188
|
-
"spec/arel/algebra/unit/relations/relation_spec.rb",
|
189
|
-
"spec/arel/algebra/unit/relations/skip_spec.rb",
|
190
|
-
"spec/arel/algebra/unit/relations/table_spec.rb",
|
191
|
-
"spec/arel/algebra/unit/relations/take_spec.rb",
|
192
|
-
"spec/arel/algebra/unit/relations/update_spec.rb",
|
193
|
-
"spec/arel/algebra/unit/relations/where_spec.rb",
|
194
|
-
"spec/arel/algebra/unit/session/session_spec.rb",
|
195
|
-
"spec/arel/engines/memory/integration/joins/cross_engine_spec.rb",
|
196
|
-
"spec/arel/engines/memory/unit/relations/array_spec.rb",
|
197
|
-
"spec/arel/engines/memory/unit/relations/insert_spec.rb",
|
198
|
-
"spec/arel/engines/memory/unit/relations/join_spec.rb",
|
199
|
-
"spec/arel/engines/memory/unit/relations/order_spec.rb",
|
200
|
-
"spec/arel/engines/memory/unit/relations/project_spec.rb",
|
201
|
-
"spec/arel/engines/memory/unit/relations/skip_spec.rb",
|
202
|
-
"spec/arel/engines/memory/unit/relations/take_spec.rb",
|
203
|
-
"spec/arel/engines/memory/unit/relations/where_spec.rb",
|
204
|
-
"spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb",
|
205
|
-
"spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb",
|
206
|
-
"spec/arel/engines/sql/integration/joins/with_compounds_spec.rb",
|
207
|
-
"spec/arel/engines/sql/unit/engine_spec.rb",
|
208
|
-
"spec/arel/engines/sql/unit/predicates/binary_spec.rb",
|
209
|
-
"spec/arel/engines/sql/unit/predicates/equality_spec.rb",
|
210
|
-
"spec/arel/engines/sql/unit/predicates/in_spec.rb",
|
211
|
-
"spec/arel/engines/sql/unit/predicates/predicates_spec.rb",
|
212
|
-
"spec/arel/engines/sql/unit/primitives/attribute_spec.rb",
|
213
|
-
"spec/arel/engines/sql/unit/primitives/expression_spec.rb",
|
214
|
-
"spec/arel/engines/sql/unit/primitives/literal_spec.rb",
|
215
|
-
"spec/arel/engines/sql/unit/primitives/value_spec.rb",
|
216
|
-
"spec/arel/engines/sql/unit/relations/alias_spec.rb",
|
217
|
-
"spec/arel/engines/sql/unit/relations/delete_spec.rb",
|
218
|
-
"spec/arel/engines/sql/unit/relations/from_spec.rb",
|
219
|
-
"spec/arel/engines/sql/unit/relations/group_spec.rb",
|
220
|
-
"spec/arel/engines/sql/unit/relations/having_spec.rb",
|
221
|
-
"spec/arel/engines/sql/unit/relations/insert_spec.rb",
|
222
|
-
"spec/arel/engines/sql/unit/relations/join_spec.rb",
|
223
|
-
"spec/arel/engines/sql/unit/relations/lock_spec.rb",
|
224
|
-
"spec/arel/engines/sql/unit/relations/order_spec.rb",
|
225
|
-
"spec/arel/engines/sql/unit/relations/project_spec.rb",
|
226
|
-
"spec/arel/engines/sql/unit/relations/skip_spec.rb",
|
227
|
-
"spec/arel/engines/sql/unit/relations/table_spec.rb",
|
228
|
-
"spec/arel/engines/sql/unit/relations/take_spec.rb",
|
229
|
-
"spec/arel/engines/sql/unit/relations/update_spec.rb",
|
230
|
-
"spec/arel/engines/sql/unit/relations/where_spec.rb",
|
231
|
-
"spec/connections/mysql_connection.rb",
|
232
|
-
"spec/connections/oracle_connection.rb",
|
233
|
-
"spec/connections/postgresql_connection.rb",
|
234
|
-
"spec/connections/sqlite3_connection.rb",
|
235
|
-
"spec/doubles/hash.rb",
|
236
|
-
"spec/matchers/be_like.rb",
|
237
|
-
"spec/matchers/disambiguate_attributes.rb",
|
238
|
-
"spec/matchers/hash_the_same_as.rb",
|
239
|
-
"spec/schemas/mysql_schema.rb",
|
240
|
-
"spec/schemas/oracle_schema.rb",
|
241
|
-
"spec/schemas/postgresql_schema.rb",
|
242
|
-
"spec/schemas/sqlite3_schema.rb",
|
243
|
-
"spec/spec_helper.rb"
|
244
|
-
]
|
245
|
-
|
246
|
-
if s.respond_to? :specification_version then
|
247
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
248
|
-
s.specification_version = 3
|
249
|
-
|
250
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
251
|
-
s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0.beta"])
|
252
|
-
else
|
253
|
-
s.add_dependency(%q<activesupport>, [">= 3.0.0.beta"])
|
254
|
-
end
|
255
|
-
else
|
256
|
-
s.add_dependency(%q<activesupport>, [">= 3.0.0.beta"])
|
257
|
-
end
|
258
|
-
end
|
data/doc/CONVENTIONS
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
This file should ultimately be replaced by a series of tests, something like a lint tool.
|
2
|
-
|
3
|
-
- all describes and its should use single quotes unless they have nested quotes.
|
4
|
-
- object instantiation in tests for all objects that are not the SUT should be manufactured in a before
|
5
|
-
- 'should' and other counterfactuals/subjunctive forms should not be used in tests
|
6
|
-
- no doubles should be used except for behaviorist testing
|
7
|
-
- behaviorist testing is desirable only when interacting with the database or the session
|
8
|
-
- when unit testing, always demonstrate behavior by using a real world example (as in, a public use of the API), so as to provide documentation.
|
9
|
-
- use collect rather than map
|
10
|
-
- jargon:
|
11
|
-
- 'obtains' is preferred to 'returns true'
|
12
|
-
- 'manufactures'
|
13
|
-
- in tests
|
14
|
-
- when manufacturing expected values (right-hand-side of should), avoid convenience methods -- construct it by initializing the object directly (Foo.new(...)). This ensures equality expectations in tests are rigorous.
|
15
|
-
- the SUT should be manufactured inline inside the test, not in a before
|
16
|
-
- dependencies for the SUT should be manufactured using convenience methods (or whatever is most terse).
|
17
|
-
- group conceptually related methods in a class within an inline module; immediately include that module.
|