arel 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. data/lib/arel.rb +4 -3
  2. data/lib/arel/algebra.rb +1 -1
  3. data/lib/arel/algebra/attributes.rb +7 -0
  4. data/lib/arel/algebra/{attribute.rb → attributes/attribute.rb} +32 -0
  5. data/lib/arel/algebra/attributes/boolean.rb +21 -0
  6. data/lib/arel/algebra/attributes/decimal.rb +9 -0
  7. data/lib/arel/algebra/attributes/float.rb +9 -0
  8. data/lib/arel/algebra/attributes/integer.rb +10 -0
  9. data/lib/arel/algebra/attributes/string.rb +10 -0
  10. data/lib/arel/algebra/attributes/time.rb +6 -0
  11. data/lib/arel/algebra/predicates.rb +1 -0
  12. data/lib/arel/algebra/relations/operations/join.rb +4 -2
  13. data/lib/arel/algebra/relations/operations/order.rb +2 -1
  14. data/lib/arel/algebra/relations/operations/skip.rb +2 -1
  15. data/lib/arel/algebra/relations/operations/take.rb +2 -1
  16. data/lib/arel/algebra/relations/operations/where.rb +7 -6
  17. data/lib/arel/algebra/relations/relation.rb +2 -1
  18. data/lib/arel/algebra/relations/utilities/compound.rb +22 -2
  19. data/lib/arel/algebra/relations/utilities/externalization.rb +1 -1
  20. data/lib/arel/algebra/relations/utilities/nil.rb +2 -2
  21. data/lib/arel/engines/memory/predicates.rb +6 -0
  22. data/lib/arel/engines/memory/relations/array.rb +11 -4
  23. data/lib/arel/engines/memory/relations/compound.rb +1 -1
  24. data/lib/arel/engines/memory/relations/operations.rb +2 -2
  25. data/lib/arel/engines/sql.rb +1 -0
  26. data/lib/arel/engines/sql/attributes.rb +40 -0
  27. data/lib/arel/engines/sql/compilers/ibm_db_compiler.rb +0 -14
  28. data/lib/arel/engines/sql/predicates.rb +4 -0
  29. data/lib/arel/engines/sql/primitives.rb +0 -4
  30. data/lib/arel/engines/sql/relations/compiler.rb +5 -5
  31. data/lib/arel/engines/sql/relations/operations/join.rb +1 -1
  32. data/lib/arel/engines/sql/relations/relation.rb +1 -1
  33. data/lib/arel/engines/sql/relations/table.rb +6 -7
  34. data/lib/arel/engines/sql/relations/utilities/compound.rb +1 -1
  35. data/lib/arel/engines/sql/relations/utilities/nil.rb +1 -1
  36. data/lib/arel/session.rb +2 -2
  37. data/lib/arel/version.rb +3 -0
  38. data/spec/{arel/algebra → algebra}/unit/predicates/binary_spec.rb +0 -0
  39. data/spec/{arel/algebra → algebra}/unit/predicates/equality_spec.rb +0 -0
  40. data/spec/{arel/algebra → algebra}/unit/predicates/in_spec.rb +0 -0
  41. data/spec/{arel/algebra → algebra}/unit/primitives/attribute_spec.rb +0 -0
  42. data/spec/{arel/algebra → algebra}/unit/primitives/expression_spec.rb +0 -0
  43. data/spec/{arel/algebra → algebra}/unit/primitives/value_spec.rb +0 -0
  44. data/spec/{arel/algebra → algebra}/unit/relations/alias_spec.rb +0 -0
  45. data/spec/{arel/algebra → algebra}/unit/relations/delete_spec.rb +0 -0
  46. data/spec/{arel/algebra → algebra}/unit/relations/group_spec.rb +0 -0
  47. data/spec/{arel/algebra → algebra}/unit/relations/insert_spec.rb +0 -0
  48. data/spec/{arel/algebra → algebra}/unit/relations/join_spec.rb +0 -0
  49. data/spec/{arel/algebra → algebra}/unit/relations/order_spec.rb +0 -0
  50. data/spec/{arel/algebra → algebra}/unit/relations/project_spec.rb +0 -0
  51. data/spec/{arel/algebra → algebra}/unit/relations/relation_spec.rb +0 -0
  52. data/spec/{arel/algebra → algebra}/unit/relations/skip_spec.rb +0 -0
  53. data/spec/{arel/algebra → algebra}/unit/relations/table_spec.rb +0 -0
  54. data/spec/{arel/algebra → algebra}/unit/relations/take_spec.rb +0 -0
  55. data/spec/{arel/algebra → algebra}/unit/relations/update_spec.rb +0 -0
  56. data/spec/{arel/algebra → algebra}/unit/relations/where_spec.rb +1 -0
  57. data/spec/{arel/algebra → algebra}/unit/session/session_spec.rb +0 -0
  58. data/spec/attributes/boolean_spec.rb +57 -0
  59. data/spec/attributes/float_spec.rb +119 -0
  60. data/spec/attributes/integer_spec.rb +119 -0
  61. data/spec/attributes/string_spec.rb +43 -0
  62. data/spec/attributes/time_spec.rb +22 -0
  63. data/spec/{arel/engines → engines}/memory/integration/joins/cross_engine_spec.rb +1 -1
  64. data/spec/{arel/engines → engines}/memory/unit/relations/array_spec.rb +1 -1
  65. data/spec/{arel/engines → engines}/memory/unit/relations/insert_spec.rb +1 -1
  66. data/spec/{arel/engines → engines}/memory/unit/relations/join_spec.rb +1 -1
  67. data/spec/{arel/engines → engines}/memory/unit/relations/order_spec.rb +1 -1
  68. data/spec/{arel/engines → engines}/memory/unit/relations/project_spec.rb +1 -1
  69. data/spec/{arel/engines → engines}/memory/unit/relations/skip_spec.rb +1 -1
  70. data/spec/{arel/engines → engines}/memory/unit/relations/take_spec.rb +1 -1
  71. data/spec/{arel/engines → engines}/memory/unit/relations/where_spec.rb +1 -1
  72. data/spec/{arel/engines → engines}/sql/integration/joins/with_adjacency_spec.rb +0 -0
  73. data/spec/{arel/engines → engines}/sql/integration/joins/with_aggregations_spec.rb +0 -0
  74. data/spec/{arel/engines → engines}/sql/integration/joins/with_compounds_spec.rb +0 -0
  75. data/spec/{arel/engines → engines}/sql/unit/engine_spec.rb +0 -0
  76. data/spec/{arel/engines → engines}/sql/unit/predicates/binary_spec.rb +0 -0
  77. data/spec/{arel/engines → engines}/sql/unit/predicates/equality_spec.rb +0 -0
  78. data/spec/{arel/engines → engines}/sql/unit/predicates/in_spec.rb +0 -0
  79. data/spec/{arel/engines → engines}/sql/unit/predicates/predicates_spec.rb +0 -0
  80. data/spec/{arel/engines → engines}/sql/unit/primitives/attribute_spec.rb +0 -0
  81. data/spec/{arel/engines → engines}/sql/unit/primitives/expression_spec.rb +0 -0
  82. data/spec/{arel/engines → engines}/sql/unit/primitives/literal_spec.rb +0 -0
  83. data/spec/{arel/engines → engines}/sql/unit/primitives/value_spec.rb +0 -0
  84. data/spec/{arel/engines → engines}/sql/unit/relations/alias_spec.rb +0 -0
  85. data/spec/{arel/engines → engines}/sql/unit/relations/delete_spec.rb +0 -0
  86. data/spec/{arel/engines → engines}/sql/unit/relations/from_spec.rb +0 -0
  87. data/spec/{arel/engines → engines}/sql/unit/relations/group_spec.rb +0 -0
  88. data/spec/{arel/engines → engines}/sql/unit/relations/having_spec.rb +0 -0
  89. data/spec/{arel/engines → engines}/sql/unit/relations/insert_spec.rb +0 -0
  90. data/spec/{arel/engines → engines}/sql/unit/relations/join_spec.rb +0 -0
  91. data/spec/{arel/engines → engines}/sql/unit/relations/lock_spec.rb +0 -0
  92. data/spec/{arel/engines → engines}/sql/unit/relations/order_spec.rb +0 -0
  93. data/spec/{arel/engines → engines}/sql/unit/relations/project_spec.rb +0 -0
  94. data/spec/{arel/engines → engines}/sql/unit/relations/skip_spec.rb +0 -0
  95. data/spec/{arel/engines → engines}/sql/unit/relations/table_spec.rb +0 -0
  96. data/spec/{arel/engines → engines}/sql/unit/relations/take_spec.rb +0 -0
  97. data/spec/{arel/engines → engines}/sql/unit/relations/update_spec.rb +0 -0
  98. data/spec/{arel/engines → engines}/sql/unit/relations/where_spec.rb +0 -0
  99. data/spec/relations/join_spec.rb +40 -0
  100. data/spec/relations/relation_spec.rb +31 -0
  101. data/spec/shared/relation_spec.rb +142 -0
  102. data/spec/spec_helper.rb +17 -45
  103. data/spec/support/check.rb +6 -0
  104. data/spec/{connections → support/connections}/mysql_connection.rb +2 -4
  105. data/spec/{connections → support/connections}/oracle_connection.rb +3 -5
  106. data/spec/{connections → support/connections}/postgresql_connection.rb +2 -4
  107. data/spec/{connections → support/connections}/sqlite3_connection.rb +2 -4
  108. data/spec/support/guards.rb +28 -0
  109. data/spec/support/matchers.rb +4 -0
  110. data/spec/{matchers → support/matchers}/be_like.rb +1 -1
  111. data/spec/{matchers → support/matchers}/disambiguate_attributes.rb +1 -1
  112. data/spec/{matchers → support/matchers}/hash_the_same_as.rb +1 -1
  113. data/spec/support/matchers/have_rows.rb +18 -0
  114. data/spec/support/model.rb +58 -0
  115. data/spec/{schemas → support/schemas}/mysql_schema.rb +0 -0
  116. data/spec/{schemas → support/schemas}/oracle_schema.rb +0 -0
  117. data/spec/{schemas → support/schemas}/postgresql_schema.rb +0 -0
  118. data/spec/{schemas → support/schemas}/sqlite3_schema.rb +0 -0
  119. metadata +107 -163
  120. data/.gitignore +0 -6
  121. data/.gitmodules +0 -3
  122. data/Rakefile +0 -48
  123. data/Thorfile +0 -124
  124. data/arel.gemspec +0 -258
  125. data/doc/CONVENTIONS +0 -17
  126. data/doc/TODO +0 -118
  127. data/spec/doubles/hash.rb +0 -27
  128. data/spec/spec.opts +0 -3
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- coverage/*
2
- config/database.yml
3
- spec/fixtures/*database*
4
- *.DS_Store
5
- debug.log
6
- pkg
@@ -1,3 +0,0 @@
1
- [submodule "vendor/rails"]
2
- path = vendor/rails
3
- url = git://github.com/rails/rails.git
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
@@ -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
@@ -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.