arel 1.0.0.rc1 → 1.0.0

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.
@@ -4,7 +4,8 @@ module Arel
4
4
 
5
5
  def initialize(relation, predicates)
6
6
  super(relation)
7
- @predicates = predicates.map { |p| p.bind(relation) }
7
+ @predicates = predicates.respond_to?(:map) ?
8
+ predicates.map { |p| p.bind(relation) } : [predicates.bind(relation)]
8
9
  @wheres = nil
9
10
  end
10
11
 
@@ -132,7 +132,7 @@ module Arel
132
132
  end
133
133
 
134
134
  def where clause = nil
135
- clause ? Where.new(self, Array(clause)) : self
135
+ clause ? Where.new(self, [clause].flatten) : self
136
136
  end
137
137
 
138
138
  def skip thing = nil
@@ -15,7 +15,7 @@ module Arel
15
15
  when :binary then String
16
16
  when :boolean then Boolean
17
17
  else
18
- raise NotImplementedError, "Column type `#{column.type}` is not currently handled"
18
+ Undefined
19
19
  end
20
20
  end
21
21
 
@@ -28,6 +28,11 @@ module Arel
28
28
  @column.type_cast(value)
29
29
  end
30
30
 
31
+ # Attribute type for column types that Arel doesn't know how to handle.
32
+ class Undefined < Arel::Attribute
33
+ include Attributes
34
+ end
35
+
31
36
  %w(Boolean Decimal Float Integer String Time).each do |klass|
32
37
  class_eval <<-R
33
38
  class #{klass} < Arel::Attributes::#{klass}
data/lib/arel/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Arel
2
- VERSION = "1.0.0.rc1" unless defined?(Arel::VERSION)
2
+ VERSION = "1.0.0" unless defined?(Arel::VERSION)
3
3
  end
@@ -96,6 +96,11 @@ module Arel
96
96
  @predicate = Predicates::Equality.new(@attribute1, @attribute2)
97
97
  end
98
98
 
99
+ it "manufactures a where relation" do
100
+ where = @relation.where("intern\nnet")
101
+ where.to_sql.should =~ /intern\nnet/
102
+ end
103
+
99
104
  it "manufactures a where relation" do
100
105
  where = @relation.where(@predicate)
101
106
  where.relation.should == @relation
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ module Arel
4
+ module Sql
5
+ describe 'Attributes' do
6
+ describe 'for' do
7
+ it 'should return undefined for undefined columns' do
8
+ thing = Struct.new(:type).new(:HELLO)
9
+ check Attributes.for(thing).should == Attributes::Undefined
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 977940574
5
- prerelease: true
4
+ hash: 23
5
+ prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
- - rc1
11
- version: 1.0.0.rc1
10
+ version: 1.0.0
12
11
  platform: ruby
13
12
  authors:
14
13
  - Bryan Helmkamp
@@ -18,7 +17,7 @@ autorequire:
18
17
  bindir: bin
19
18
  cert_chain: []
20
19
 
21
- date: 2010-06-08 00:00:00 -07:00
20
+ date: 2010-06-08 00:00:00 +09:00
22
21
  default_executable:
23
22
  dependencies:
24
23
  - !ruby/object:Gem::Dependency
@@ -148,6 +147,7 @@ files:
148
147
  - spec/attributes/integer_spec.rb
149
148
  - spec/attributes/string_spec.rb
150
149
  - spec/attributes/time_spec.rb
150
+ - spec/attributes_spec.rb
151
151
  - spec/engines/memory/integration/joins/cross_engine_spec.rb
152
152
  - spec/engines/memory/unit/relations/array_spec.rb
153
153
  - spec/engines/memory/unit/relations/insert_spec.rb
@@ -227,14 +227,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
227
  required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  none: false
229
229
  requirements:
230
- - - ">"
230
+ - - ">="
231
231
  - !ruby/object:Gem::Version
232
- hash: 25
232
+ hash: 3
233
233
  segments:
234
- - 1
235
- - 3
236
- - 1
237
- version: 1.3.1
234
+ - 0
235
+ version: "0"
238
236
  requirements: []
239
237
 
240
238
  rubyforge_project: arel
@@ -271,6 +269,7 @@ test_files:
271
269
  - spec/attributes/integer_spec.rb
272
270
  - spec/attributes/string_spec.rb
273
271
  - spec/attributes/time_spec.rb
272
+ - spec/attributes_spec.rb
274
273
  - spec/engines/memory/integration/joins/cross_engine_spec.rb
275
274
  - spec/engines/memory/unit/relations/array_spec.rb
276
275
  - spec/engines/memory/unit/relations/insert_spec.rb