Sha256: f83d069eb23fe3f4eaad7030ccfb163c838bfa9fba2e1fe142224ea147742142

Contents?: true

Size: 1.95 KB

Versions: 30

Compression:

Stored size: 1.95 KB

Contents

require_relative "../spec_helper"

begin
  require 'tilt/erb'
rescue LoadError
  warn "tilt not installed, skipping named_templates plugin test"  
else
describe "named_templates plugin" do 
  it "adds template method method for naming templates, and have render recognize it" do
    app(:bare) do
      plugin :named_templates

      template :foo do
        @b = 2
        "foo<%= @a %><%= @b %>"
      end
      template :layout, :engine=>:str do
        @c = 3
        'bar#{@a}#{@c}-#{yield}-baz'
      end

      route do |r|
        @a = 1
        view(:foo)
      end
    end

    body.must_equal 'bar13-foo12-baz'
    @app = Class.new(@app)
    body.must_equal 'bar13-foo12-baz'
  end

  it "works when freezing the app" do
    app(:bare) do
      plugin :named_templates

      template :foo do
        @b = 2
        "foo<%= @a %><%= @b %>"
      end
      template :layout, :engine=>:str do
        @c = 3
        'bar#{@a}#{@c}-#{yield}-baz'
      end

      route do |r|
        @a = 1
        view(:foo)
      end
    end

    app.freeze
    body.must_equal 'bar13-foo12-baz'

    proc{app.template(:b){"a"}}.must_raise
  end

  it "works with the view_options plugin" do
    app(:bare) do
      plugin :render
      plugin :view_options
      plugin :named_templates

      template "foo/bar" do
        @b = 2
        "foobar<%= @a %><%= @b %>"
      end
      template "foo/layout", :engine=>:str do
        @c = 3
        'foo#{@a}#{@c}-#{yield}-baz'
      end
      template "bar/layout", :engine=>:str do
        @c = 3
        'bar#{@a}#{@c}-#{yield}-baz'
      end

      route do |r|
        r.is 'foo' do
          set_view_subdir :foo
          @a = 1
          view(:bar)
        end
        r.is 'bar' do
          set_view_subdir :bar
          @a = 4
          @b = 2
          view(:inline=>"barfoo<%= @a %><%= @b %>")
        end
      end
    end

    body('/foo').must_equal 'foo13-foobar12-baz'
    body('/bar').must_equal 'bar43-barfoo42-baz'
  end
end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
roda-3.28.0 spec/plugin/named_templates_spec.rb
roda-3.27.0 spec/plugin/named_templates_spec.rb
roda-3.26.0 spec/plugin/named_templates_spec.rb
roda-3.25.0 spec/plugin/named_templates_spec.rb
roda-3.24.0 spec/plugin/named_templates_spec.rb
roda-3.23.0 spec/plugin/named_templates_spec.rb
roda-3.22.0 spec/plugin/named_templates_spec.rb
roda-3.21.0 spec/plugin/named_templates_spec.rb
roda-3.20.0 spec/plugin/named_templates_spec.rb
roda-3.19.0 spec/plugin/named_templates_spec.rb
roda-3.18.0 spec/plugin/named_templates_spec.rb
roda-3.17.0 spec/plugin/named_templates_spec.rb
roda-3.16.0 spec/plugin/named_templates_spec.rb
roda-3.15.0 spec/plugin/named_templates_spec.rb
roda-3.14.1 spec/plugin/named_templates_spec.rb
roda-3.14.0 spec/plugin/named_templates_spec.rb
roda-3.13.0 spec/plugin/named_templates_spec.rb
roda-3.12.0 spec/plugin/named_templates_spec.rb
roda-3.11.0 spec/plugin/named_templates_spec.rb
roda-3.10.0 spec/plugin/named_templates_spec.rb