sequel_model 0.3.2 → 0.3.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.3.2.1 (2008-01-24)
2
+
3
+ * Fixed Model.dataset to correctly set the dataset if using implicit naming or inheriting the superclass dataset (thanks celldee).
4
+
1
5
  === 0.3.2 (2008-01-24)
2
6
 
3
7
  * Added Model#update_with_params method with support for virtual attributes and auto-filtering of unrelated parameters, and changed Model.create_with_params to support virtual attributes (#128).
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ include FileUtils
9
9
  # Configuration
10
10
  ##############################################################################
11
11
  NAME = "sequel_model"
12
- VERS = "0.3.2"
12
+ VERS = "0.3.2.1"
13
13
  CLEAN.include ["**/.*.sw?", "pkg/*", ".config", "doc/*", "coverage/*"]
14
14
  RDOC_OPTS = [
15
15
  "--quiet",
@@ -19,11 +19,24 @@ module Sequel
19
19
 
20
20
  # Returns the dataset associated with the Model class.
21
21
  def self.dataset
22
- @dataset ||= super_dataset ||
23
- (!(n = name).empty? && db[n.underscore.pluralize.to_sym]) ||
24
- (raise Error, "No dataset associated with #{self}")
22
+ unless @dataset
23
+ if ds = super_dataset
24
+ set_dataset(ds.clone_merge({}))
25
+ elsif !(n = name).empty?
26
+ set_dataset(db[n.underscore.pluralize.to_sym])
27
+ else
28
+ raise Error, "No dataset associated with #{self}"
29
+ end
30
+ end
31
+ @dataset
25
32
  end
26
33
 
34
+ # def self.dataset
35
+ # @dataset ||= super_dataset ||
36
+ # (!(n = name).empty? && db[n.underscore.pluralize.to_sym]) ||
37
+ # (raise Error, "No dataset associated with #{self}")
38
+ # end
39
+
27
40
  def self.super_dataset # :nodoc:
28
41
  superclass.dataset if (superclass != Sequel::Model) && superclass.respond_to?(:dataset)
29
42
  end
@@ -32,7 +45,7 @@ module Sequel
32
45
  #
33
46
  # See Dataset#columns for more information.
34
47
  def self.columns
35
- @columns ||= @dataset.columns or
48
+ @columns ||= dataset.columns or
36
49
  raise Error, "Could not fetch columns for #{self}"
37
50
  end
38
51
 
data/spec/base_spec.rb CHANGED
@@ -182,4 +182,30 @@ describe Sequel::Model, "dataset" do
182
182
  specify "should raise if no dataset is explicitly set and the class is anonymous" do
183
183
  proc {@b.dataset}.should raise_error(Sequel::Error)
184
184
  end
185
+ end
186
+
187
+ describe "A model class with implicit table name" do
188
+ setup do
189
+ class Donkey < Sequel::Model
190
+ end
191
+ end
192
+
193
+ specify "should have a dataset associated with the model class" do
194
+ Donkey.dataset.model_classes.should == {nil => Donkey}
195
+ end
196
+ end
197
+
198
+ describe "A model inheriting from a model" do
199
+ setup do
200
+ class Feline < Sequel::Model
201
+ end
202
+
203
+ class Leopard < Feline
204
+ end
205
+ end
206
+
207
+ specify "should have a dataset associated with itself" do
208
+ Feline.dataset.model_classes.should == {nil => Feline}
209
+ Leopard.dataset.model_classes.should == {nil => Leopard}
210
+ end
185
211
  end
data/spec/model_spec.rb CHANGED
@@ -247,7 +247,7 @@ describe Sequel::Model, "magic methods" do
247
247
 
248
248
  it "should support count_by_xxx" do
249
249
  @m.count_by_name.should be_a_kind_of(@c)
250
- @m.count_by_name.sql.should == "SELECT name, count(name) AS count FROM items GROUP BY name ORDER BY count"
250
+ @m.count_by_name.sql.should == "SELECT name, count(*) AS count FROM items GROUP BY name ORDER BY count"
251
251
  end
252
252
 
253
253
  it "should support filter_by_xxx" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner