Sha256: 0bdfa9aec55b76aba5593c377cc9647b5858e84b554e54a8bd340f1666cfedbd
Contents?: true
Size: 1.78 KB
Versions: 3
Compression:
Stored size: 1.78 KB
Contents
describe Rake::Funnel::Support::TemplateEngine do it 'should render nil' do expect(described_class.render(nil)).to eq('') end it 'should render empty string' do expect(described_class.render('')).to eq('') end it 'should static string' do expect(described_class.render('hello world')).to eq('hello world') end it 'should support ruby' do expect(described_class.render('<%= 42 %>')).to eq('42') end it 'should omit newlines for pure ruby lines' do # rubocop:disable Style/IndentHeredoc template = <<-EOF <%= 42 %> EOF # rubocop:enable Style/IndentHeredoc expect(described_class.render(template)).to eq('42') end it 'should not omit newlines for mixed ruby lines' do # rubocop:disable Style/IndentHeredoc template = <<-EOF 12 <%= 34 %> 56 EOF # rubocop:enable Style/IndentHeredoc expect(described_class.render(template)).to eq("12 34 56\n") end it 'should support @ instead of <%= %>' do expect(described_class.render('@String.to_s@')).to eq('String') end describe 'binding' do context 'without binding' do it 'should not support contextual variables' do template = '<%= undefined_variable %>' expect { described_class.render(template) }.to raise_error(NameError) end end context 'with binding' do def get_binding(value) binding end it 'should support contextual variables with binding' do template = '<%= value %>' expect(described_class.render(template, nil, get_binding(42))).to eq('42') end end end it 'should report errors with file name' do expect { described_class.render('<%= undefined %>', 'file.template') } .to(raise_error { |ex| expect(ex.backtrace.join("\n")).to match(/file\.template/) }) end end
Version data entries
3 entries across 3 versions & 1 rubygems