arel 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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.