arel 0.1.0 → 0.1.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 (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
@@ -1,6 +1,6 @@
1
- require "rubygems"
2
- require "activerecord"
3
1
  puts "Using native SQLite3"
2
+ require "active_record"
3
+ require 'logger'
4
4
 
5
5
  ActiveRecord::Base.logger = Logger.new("debug.log")
6
6
 
@@ -16,6 +16,7 @@ ActiveRecord::Base.configurations = {
16
16
 
17
17
  unless File.exist?(db_file)
18
18
  puts "SQLite3 database not found at #{db_file}. Rebuilding it."
19
+ require 'fileutils'
19
20
  FileUtils.mkdir_p(File.dirname(db_file))
20
21
  sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
21
22
  puts "Executing '#{sqlite_command}'"
@@ -3,18 +3,22 @@ class Hash
3
3
  to_a.sort { |(key1, value1), (key2, value2)| key1.hash <=> key2.hash }
4
4
  end
5
5
 
6
+ undef :keys
6
7
  def keys
7
8
  ordered_array.collect(&:first)
8
9
  end
9
10
 
11
+ undef :values
10
12
  def values
11
13
  ordered_array.collect { |_, v| v }
12
14
  end
13
15
 
16
+ undef :each
14
17
  def each(&block)
15
18
  ordered_array.each(&block)
16
19
  end
17
20
 
21
+ undef :shift
18
22
  def shift
19
23
  returning to_a.first do |k, v|
20
24
  delete(k)
@@ -0,0 +1,3 @@
1
+ --backtrace
2
+ --diff
3
+ --color
@@ -37,9 +37,17 @@ module AdapterGuards
37
37
  end
38
38
  end
39
39
 
40
+ module Check
41
+ # This is used to eliminate Ruby warnings on some RSpec assertion lines
42
+ # See: https://rspec.lighthouseapp.com/projects/5645/tickets/504
43
+ def check(*args)
44
+ end
45
+ end
46
+
40
47
  Spec::Runner.configure do |config|
41
48
  config.include BeLikeMatcher, HashTheSameAsMatcher, DisambiguateAttributesMatcher
42
49
  config.include AdapterGuards
50
+ config.include Check
43
51
  config.mock_with :rr
44
52
  config.before do
45
53
  Arel::Table.engine = Arel::Sql::Engine.new(ActiveRecord::Base)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Helmkamp
@@ -10,11 +10,25 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-08-06 00:00:00 -04:00
13
+ date: 2009-10-27 00:00:00 -04:00
14
14
  default_executable:
15
- dependencies: []
16
-
17
- description:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: activesupport
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 3.0.pre
25
+ version:
26
+ description: |-
27
+ Arel is a Relational Algebra for Ruby. It 1) simplifies the generation complex
28
+ of SQL queries and it 2) adapts to various RDBMS systems. It is intended to be
29
+ a framework framework; that is, you can build your own ORM with it, focusing on
30
+ innovative object and collection modeling as opposed to database compatibility
31
+ and query generation.
18
32
  email: bryan@brynary.com
19
33
  executables: []
20
34
 
@@ -24,26 +38,24 @@ extra_rdoc_files:
24
38
  - README.markdown
25
39
  files:
26
40
  - .gitignore
41
+ - .gitmodules
27
42
  - README.markdown
28
43
  - Rakefile
29
- - VERSION
44
+ - Thorfile
30
45
  - arel.gemspec
31
46
  - doc/CONVENTIONS
32
47
  - doc/TODO
33
48
  - lib/arel.rb
34
- - lib/arel/.DS_Store
35
49
  - lib/arel/algebra.rb
36
- - lib/arel/algebra/extensions.rb
37
- - lib/arel/algebra/extensions/class.rb
38
- - lib/arel/algebra/extensions/hash.rb
39
- - lib/arel/algebra/extensions/object.rb
40
- - lib/arel/algebra/extensions/symbol.rb
50
+ - lib/arel/algebra/attribute.rb
51
+ - lib/arel/algebra/core_extensions.rb
52
+ - lib/arel/algebra/core_extensions/class.rb
53
+ - lib/arel/algebra/core_extensions/hash.rb
54
+ - lib/arel/algebra/core_extensions/object.rb
55
+ - lib/arel/algebra/core_extensions/symbol.rb
56
+ - lib/arel/algebra/expression.rb
57
+ - lib/arel/algebra/ordering.rb
41
58
  - lib/arel/algebra/predicates.rb
42
- - lib/arel/algebra/primitives.rb
43
- - lib/arel/algebra/primitives/attribute.rb
44
- - lib/arel/algebra/primitives/expression.rb
45
- - lib/arel/algebra/primitives/ordering.rb
46
- - lib/arel/algebra/primitives/value.rb
47
59
  - lib/arel/algebra/relations.rb
48
60
  - lib/arel/algebra/relations/operations/alias.rb
49
61
  - lib/arel/algebra/relations/operations/group.rb
@@ -59,6 +71,7 @@ files:
59
71
  - lib/arel/algebra/relations/utilities/externalization.rb
60
72
  - lib/arel/algebra/relations/utilities/nil.rb
61
73
  - lib/arel/algebra/relations/writes.rb
74
+ - lib/arel/algebra/value.rb
62
75
  - lib/arel/engines.rb
63
76
  - lib/arel/engines/memory.rb
64
77
  - lib/arel/engines/memory/engine.rb
@@ -71,12 +84,12 @@ files:
71
84
  - lib/arel/engines/memory/relations/writes.rb
72
85
  - lib/arel/engines/sql.rb
73
86
  - lib/arel/engines/sql/christener.rb
87
+ - lib/arel/engines/sql/core_extensions.rb
88
+ - lib/arel/engines/sql/core_extensions/array.rb
89
+ - lib/arel/engines/sql/core_extensions/nil_class.rb
90
+ - lib/arel/engines/sql/core_extensions/object.rb
91
+ - lib/arel/engines/sql/core_extensions/range.rb
74
92
  - lib/arel/engines/sql/engine.rb
75
- - lib/arel/engines/sql/extensions.rb
76
- - lib/arel/engines/sql/extensions/array.rb
77
- - lib/arel/engines/sql/extensions/nil_class.rb
78
- - lib/arel/engines/sql/extensions/object.rb
79
- - lib/arel/engines/sql/extensions/range.rb
80
93
  - lib/arel/engines/sql/formatters.rb
81
94
  - lib/arel/engines/sql/predicates.rb
82
95
  - lib/arel/engines/sql/primitives.rb
@@ -154,14 +167,15 @@ files:
154
167
  - spec/schemas/mysql_schema.rb
155
168
  - spec/schemas/postgresql_schema.rb
156
169
  - spec/schemas/sqlite3_schema.rb
170
+ - spec/spec.opts
157
171
  - spec/spec_helper.rb
158
172
  has_rdoc: true
159
173
  homepage: http://github.com/brynary/arel
160
174
  licenses: []
161
175
 
162
176
  post_install_message:
163
- rdoc_options:
164
- - --charset=UTF-8
177
+ rdoc_options: []
178
+
165
179
  require_paths:
166
180
  - lib
167
181
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -179,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
193
  requirements: []
180
194
 
181
195
  rubyforge_project: arel
182
- rubygems_version: 1.3.4
196
+ rubygems_version: 1.3.5
183
197
  signing_key:
184
198
  specification_version: 3
185
199
  summary: Arel is a relational algebra engine for Ruby
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0
@@ -1,4 +0,0 @@
1
- require 'arel/algebra/extensions/object'
2
- require 'arel/algebra/extensions/class'
3
- require 'arel/algebra/extensions/symbol'
4
- require 'arel/algebra/extensions/hash'
@@ -1,5 +0,0 @@
1
- require 'arel/algebra/primitives/attribute'
2
- require 'arel/algebra/primitives/ordering'
3
- require 'arel/algebra/primitives/value'
4
- require 'arel/algebra/primitives/expression'
5
-
@@ -1,4 +0,0 @@
1
- require 'arel/engines/sql/extensions/object'
2
- require 'arel/engines/sql/extensions/array'
3
- require 'arel/engines/sql/extensions/range'
4
- require 'arel/engines/sql/extensions/nil_class'