diff options
-rw-r--r-- | spec/node_spec.rb | 26 | ||||
-rw-r--r-- | spec/spec_helper.rb | 23 |
2 files changed, 49 insertions, 0 deletions
diff --git a/spec/node_spec.rb b/spec/node_spec.rb index 9aed852..4b4fbed 100644 --- a/spec/node_spec.rb +++ b/spec/node_spec.rb @@ -126,6 +126,32 @@ describe Zorglub do r.header['location'].should == Node0.r(:do_partial,1,2,3) end # + it "defs should be inherited" do + r = Node5.my_call '/index' + ar = YAML.load r.body[0] + ar[0].should == 'js0' + ar[1].should == 'js1' + ar[2].should == 'js3' + ar[3].should == 'jsx' + ar[4].should be_nil + end + # + it "defs should be method scope modified" do + r = Node4.my_call '/more' + ar = YAML.load r.body[0] + ar[0].should == 'js0' + ar[1].should == 'js1' + ar[2].should == 'js2' + ar[3].should be_nil + end + # + it "defs should not have been modified by other method" do + r = Node4.my_call '/index' + ar = YAML.load r.body[0] + ar[0].should == 'js0' + ar[1].should == 'js1' + ar[2].should be_nil + end end # end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5297cb5..84aebdd 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -11,6 +11,7 @@ end require 'yaml' # require 'zorglub' +require 'zorglub/defs' # HASH_PROC = Proc.new { |path,obj| {:path=>path,:layout=>obj.layout,:view=>obj.view,:args=>obj.args}.to_yaml } RENDER_PROC = Proc.new { |path,obj| @@ -99,10 +100,32 @@ class Node3 < Zorglub::Node end end # +class Node4 < Zorglub::Node + defs :js,'js0','js1' + def index + no_layout + defs(:js).to_yaml + end + def more + no_layout + defs(:js,'js2').to_yaml + end +end +# +class Node5 < Node4 + defs :js, 'js3' + def index + no_layout + defs(:js,'jsx').to_yaml + end +end +# APP = Zorglub::App.new do map '/node0', Node0 map '/node1', Node1 map '/node3', Node3 + map '/node4', Node4 + map '/node5', Node5 end class Node2 map APP, '/node2' |