Sha256: c6073f405484c1d35d01a4ac5692f7996e8ca9b5be339977eca9da8f9c212302

Contents?: true

Size: 877 Bytes

Versions: 2

Compression:

Stored size: 877 Bytes

Contents

describe Template do

  let(:content) { "hello {{ world }} test" }

  subject { Template.new(content) }

  it "generates ruby code" do
    expect(subject.parse).to eq %Q(_out ||= ""\n_out << "hello "\nworld\n_out << " test"\n_out\n)
  end

  context "when the tag is on its own line" do

    let :content do
<<-TEST
hello
{{= something }}
world

{{ thing }}
a

TEST
    end

    it "removes surrounding whitespace" do
      expect(subject.parse).to eq <<-TEST
_out ||= ""
_out << "hello"
_out << begin
  something
end.to_s
_out << "\\nworld\\n"
thing
_out << "\\na\\n\\n"
_out
TEST
    end

    it "runs in ruby" do
      object = Object.new
      result = nil
      def object.something; "-" end
      def object.thing; end

      expect { result = object.instance_eval(subject.parse) }.to_not raise_error
      expect(result).to eq "hello-\nworld\n\na\n\n"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
antelope-0.2.0 spec/antelope/template_spec.rb
antelope-0.1.11 spec/antelope/template_spec.rb