fossil 0.3.6 → 0.3.7

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.6
1
+ 0.3.7
data/fossil.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fossil}
8
- s.version = "0.3.6"
8
+ s.version = "0.3.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Patrick Lardin, Daniel Sudol"]
@@ -20,6 +20,7 @@ class Sequel::Model
20
20
  def method_missing(method, *args, &block)
21
21
  if method.to_s.split(/__/).size > 1
22
22
  generate_delegator(method)
23
+ send(method.to_s.gsub('__','_').to_sym)
23
24
  else
24
25
  super
25
26
  end
@@ -19,6 +19,7 @@ describe "Sequel::Model extentions" do
19
19
  it "for one level deep" do
20
20
  mock.proxy(Dude).delegate(:name, :to => :my_friend, :prefix => true, :allow_nil => true)
21
21
  Dude.first.fill_hash([:my_friend__name,:my_friend__name]).should == {:my_friend_name=>'dans buddy'}
22
+ class Dude; undef_method :my_friend_name; end
22
23
  end
23
24
 
24
25
  it "for two levels deep" do
@@ -27,10 +28,30 @@ describe "Sequel::Model extentions" do
27
28
  mock.proxy(Horse).delegate(:name, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
28
29
  mock.proxy(Horse).delegate(:kid_date, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
29
30
  Horse.first.fill_hash([:dude__my_friend__kid_date,:dude__my_friend__name]).should == {:dude_my_friend_name=>'dans buddy',:dude_my_friend_kid_date=>1}
31
+ class Horse; undef_method :dude_my_friend; undef_method :dude_my_friend_name; undef_method :dude_my_friend_kid_date; end
30
32
  end
31
33
  end
32
34
  end
33
35
 
36
+ describe "method missing recognizes __ in method name and creates delegators only once" do
37
+ it "for one level deep" do
38
+ mock.proxy(Dude).delegate(:name, :to => :my_friend, :prefix => true, :allow_nil => true)
39
+ Dude.first.send(:my_friend__name) == 'dans buddy'
40
+ Dude.first.send(:my_friend__name) == 'dans buddy'
41
+ class Dude; undef_method :my_friend_name; end
42
+ end
43
+
44
+ it "for two levels deep" do
45
+ MyFriend.column_alias :kid_date, :'kid - date'
46
+ mock.proxy(Horse).delegate(:my_friend, :to => :dude, :prefix => true, :allow_nil => true)
47
+ mock.proxy(Horse).delegate(:name, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
48
+ mock.proxy(Horse).delegate(:kid_date, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
49
+ Horse.first.send(:dude__my_friend__name).should == 'dans buddy'
50
+ Horse.first.send(:dude__my_friend__kid_date).should == 1
51
+ class Horse; undef_method :dude_my_friend; undef_method :dude_my_friend_name; undef_method :dude_my_friend_kid_date; end
52
+ end
53
+ end
54
+
34
55
  it "can update and save" do
35
56
  add_test_table_data({:date_col => 123, :time_col=>60})
36
57
  record = TestTable.first
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fossil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Lardin, Daniel Sudol