arel 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/.gitmodules +3 -0
  2. data/README.markdown +26 -26
  3. data/Rakefile +34 -46
  4. data/Thorfile +122 -0
  5. data/arel.gemspec +205 -201
  6. data/lib/arel.rb +11 -7
  7. data/lib/arel/algebra.rb +7 -2
  8. data/lib/arel/algebra/{primitives/attribute.rb → attribute.rb} +7 -7
  9. data/lib/arel/algebra/core_extensions.rb +4 -0
  10. data/lib/arel/algebra/{extensions → core_extensions}/class.rb +2 -2
  11. data/lib/arel/algebra/{extensions → core_extensions}/hash.rb +1 -1
  12. data/lib/arel/algebra/{extensions → core_extensions}/object.rb +1 -1
  13. data/lib/arel/algebra/{extensions → core_extensions}/symbol.rb +1 -1
  14. data/lib/arel/algebra/{primitives/expression.rb → expression.rb} +0 -0
  15. data/lib/arel/algebra/{primitives/ordering.rb → ordering.rb} +1 -1
  16. data/lib/arel/algebra/predicates.rb +32 -30
  17. data/lib/arel/algebra/relations/relation.rb +1 -1
  18. data/lib/arel/algebra/{primitives/value.rb → value.rb} +0 -0
  19. data/lib/arel/engines/memory/predicates.rb +26 -24
  20. data/lib/arel/engines/sql.rb +1 -1
  21. data/lib/arel/engines/sql/core_extensions.rb +4 -0
  22. data/lib/arel/engines/sql/{extensions → core_extensions}/array.rb +1 -1
  23. data/lib/arel/engines/sql/{extensions → core_extensions}/nil_class.rb +1 -1
  24. data/lib/arel/engines/sql/{extensions → core_extensions}/object.rb +1 -1
  25. data/lib/arel/engines/sql/{extensions → core_extensions}/range.rb +1 -1
  26. data/lib/arel/engines/sql/formatters.rb +6 -3
  27. data/lib/arel/engines/sql/predicates.rb +37 -35
  28. data/lib/arel/engines/sql/primitives.rb +10 -2
  29. data/lib/arel/engines/sql/relations/operations/join.rb +2 -2
  30. data/lib/arel/engines/sql/relations/relation.rb +33 -9
  31. data/lib/arel/engines/sql/relations/writes.rb +41 -10
  32. data/lib/arel/session.rb +9 -6
  33. data/spec/arel/algebra/unit/predicates/binary_spec.rb +23 -21
  34. data/spec/arel/algebra/unit/predicates/equality_spec.rb +20 -18
  35. data/spec/arel/algebra/unit/predicates/in_spec.rb +7 -5
  36. data/spec/arel/algebra/unit/primitives/attribute_spec.rb +10 -12
  37. data/spec/arel/algebra/unit/primitives/expression_spec.rb +1 -1
  38. data/spec/arel/algebra/unit/primitives/value_spec.rb +1 -1
  39. data/spec/arel/algebra/unit/relations/alias_spec.rb +2 -2
  40. data/spec/arel/algebra/unit/relations/delete_spec.rb +1 -1
  41. data/spec/arel/algebra/unit/relations/group_spec.rb +1 -1
  42. data/spec/arel/algebra/unit/relations/insert_spec.rb +1 -1
  43. data/spec/arel/algebra/unit/relations/join_spec.rb +1 -1
  44. data/spec/arel/algebra/unit/relations/order_spec.rb +2 -2
  45. data/spec/arel/algebra/unit/relations/project_spec.rb +1 -1
  46. data/spec/arel/algebra/unit/relations/relation_spec.rb +5 -5
  47. data/spec/arel/algebra/unit/relations/skip_spec.rb +1 -1
  48. data/spec/arel/algebra/unit/relations/table_spec.rb +2 -2
  49. data/spec/arel/algebra/unit/relations/take_spec.rb +1 -1
  50. data/spec/arel/algebra/unit/relations/update_spec.rb +1 -1
  51. data/spec/arel/algebra/unit/relations/where_spec.rb +1 -1
  52. data/spec/arel/algebra/unit/session/session_spec.rb +1 -1
  53. data/spec/arel/engines/memory/integration/joins/cross_engine_spec.rb +3 -4
  54. data/spec/arel/engines/memory/unit/relations/array_spec.rb +1 -1
  55. data/spec/arel/engines/memory/unit/relations/insert_spec.rb +8 -8
  56. data/spec/arel/engines/memory/unit/relations/join_spec.rb +1 -1
  57. data/spec/arel/engines/memory/unit/relations/order_spec.rb +1 -1
  58. data/spec/arel/engines/memory/unit/relations/project_spec.rb +1 -1
  59. data/spec/arel/engines/memory/unit/relations/skip_spec.rb +1 -1
  60. data/spec/arel/engines/memory/unit/relations/take_spec.rb +1 -1
  61. data/spec/arel/engines/memory/unit/relations/where_spec.rb +1 -1
  62. data/spec/arel/engines/sql/integration/joins/with_adjacency_spec.rb +1 -1
  63. data/spec/arel/engines/sql/integration/joins/with_aggregations_spec.rb +1 -1
  64. data/spec/arel/engines/sql/integration/joins/with_compounds_spec.rb +1 -1
  65. data/spec/arel/engines/sql/unit/engine_spec.rb +1 -1
  66. data/spec/arel/engines/sql/unit/predicates/binary_spec.rb +73 -70
  67. data/spec/arel/engines/sql/unit/predicates/equality_spec.rb +45 -28
  68. data/spec/arel/engines/sql/unit/predicates/in_spec.rb +57 -55
  69. data/spec/arel/engines/sql/unit/predicates/predicates_spec.rb +48 -46
  70. data/spec/arel/engines/sql/unit/primitives/attribute_spec.rb +1 -1
  71. data/spec/arel/engines/sql/unit/primitives/expression_spec.rb +1 -1
  72. data/spec/arel/engines/sql/unit/primitives/literal_spec.rb +13 -1
  73. data/spec/arel/engines/sql/unit/primitives/value_spec.rb +3 -3
  74. data/spec/arel/engines/sql/unit/relations/alias_spec.rb +1 -1
  75. data/spec/arel/engines/sql/unit/relations/delete_spec.rb +1 -1
  76. data/spec/arel/engines/sql/unit/relations/group_spec.rb +1 -1
  77. data/spec/arel/engines/sql/unit/relations/insert_spec.rb +1 -1
  78. data/spec/arel/engines/sql/unit/relations/join_spec.rb +1 -1
  79. data/spec/arel/engines/sql/unit/relations/order_spec.rb +1 -1
  80. data/spec/arel/engines/sql/unit/relations/project_spec.rb +1 -1
  81. data/spec/arel/engines/sql/unit/relations/skip_spec.rb +1 -1
  82. data/spec/arel/engines/sql/unit/relations/table_spec.rb +1 -1
  83. data/spec/arel/engines/sql/unit/relations/take_spec.rb +1 -1
  84. data/spec/arel/engines/sql/unit/relations/update_spec.rb +13 -7
  85. data/spec/arel/engines/sql/unit/relations/where_spec.rb +1 -1
  86. data/spec/connections/mysql_connection.rb +3 -3
  87. data/spec/connections/postgresql_connection.rb +2 -2
  88. data/spec/connections/sqlite3_connection.rb +3 -2
  89. data/spec/doubles/hash.rb +4 -0
  90. data/spec/spec.opts +3 -0
  91. data/spec/spec_helper.rb +8 -0
  92. metadata +39 -25
  93. data/VERSION +0 -1
  94. data/lib/arel/algebra/extensions.rb +0 -4
  95. data/lib/arel/algebra/primitives.rb +0 -5
  96. data/lib/arel/engines/sql/extensions.rb +0 -4
@@ -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'