Sha256: 202d2ef158ddc7174dba3b782824154537e429ccb843845a417e6cadd8f72c8a

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

describe Hem::Lib::Seed::Replacer do
  before do
    FakeFS.activate!
    Dir.mkdir("bin")
    Dir.mkdir("dir")
    {
      "./test1" => "some {{test}} is here",
      "./test2" => "no test is here",
      "./dir/test" => "subdir {{test}}",
      "./dir/nested" => "nested {{nested.test}}",
      "./dir/no-utf" => "\xc2 {{test}}", # invalid utf should be skipped
      "./bin/test" => "{{test}}" # bin/ should be ignored
    }.each do |name, content|
      File.write(name, content)
    end

    @replacer = Hem::Lib::Seed::Replacer.new
  end

  after do
    FakeFS::FileSystem.clear
    FakeFS.deactivate!
  end

  it "should respect exclude directories" do
    files = @replacer.replace(".", { :test => 'badger' })
    File.read("./bin/test").should eq "{{test}}"
  end

  it "should replace placeholders in files" do
    files = @replacer.replace(".", { :test => 'badger' })
    expect(files.sort).to eq(["./dir/test", "./test1"])

    File.read("./test1").should eq "some badger is here"
    File.read("./dir/test").should eq "subdir badger"
  end

  it "should handle nested hashes" do
    files = @replacer.replace(".", { :nested => { :test => 'nested' } })
    expect(files.sort).to eq(["./dir/nested"])

    File.read("./dir/nested").should eq "nested nested"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hem-1.0.1.beta6 spec/hem/lib/seed/replacer_spec.rb
hem-1.0.1.beta5 spec/hem/lib/seed/replacer_spec.rb
hem-1.0.1.beta4 spec/hem/lib/seed/replacer_spec.rb
hem-1.0.1.beta3 spec/hem/lib/seed/replacer_spec.rb
hem-1.0.1.beta2 spec/hem/lib/seed/replacer_spec.rb
hem-1.0.1.beta1 spec/hem/lib/seed/replacer_spec.rb