Sha256: 5f4f0528b51e50994423613157b7f985c2f5e4f19e43503485c5add7c4163798

Contents?: true

Size: 966 Bytes

Versions: 5

Compression:

Stored size: 966 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(# encoding: utf-8\n_out ||= ""\n_out << "hello "\n world\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
# encoding: utf-8
_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

5 entries across 5 versions & 1 rubygems

Version Path
antelope-0.3.2 spec/antelope/template_spec.rb
antelope-0.3.0 spec/antelope/template_spec.rb
antelope-0.2.4 spec/antelope/template_spec.rb
antelope-0.2.3 spec/antelope/template_spec.rb
antelope-0.2.2 spec/antelope/template_spec.rb