aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/library/erb/def_method_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/erb/def_method_spec.rb')
-rw-r--r--spec/ruby/library/erb/def_method_spec.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/ruby/library/erb/def_method_spec.rb b/spec/ruby/library/erb/def_method_spec.rb
new file mode 100644
index 0000000000..e4ddedea4c
--- /dev/null
+++ b/spec/ruby/library/erb/def_method_spec.rb
@@ -0,0 +1,26 @@
+require 'erb'
+require File.expand_path('../../../spec_helper', __FILE__)
+
+describe "ERB#def_method" do
+
+ it "define module's instance method to render eRuby file" do
+ input = <<'END'
+arg1=<%= arg1.inspect %>
+arg2=<%= arg2.inspect %>
+END
+ expected = <<'END'
+arg1="foo"
+arg2=123
+END
+ #
+ filename = 'example.rhtml' # 'arg1' and 'arg2' are used in example.rhtml
+ #erb = ERB.new(File.read(filename))
+ erb = ERB.new(input)
+ class MyClass0ForErb
+ end
+ erb.def_method(MyClass0ForErb, 'render(arg1, arg2)', filename)
+ MyClass0ForErb.method_defined?(:render)
+ MyClass0ForErb.new.render('foo', 123).should == expected
+ end
+
+end