Sha256: 49df9e3f0f073a545cd40a063102a58e4c8a82e38298ebbd5d4c1f9ac10e7bfe

Contents?: true

Size: 929 Bytes

Versions: 13

Compression:

Stored size: 929 Bytes

Contents

module Skellington
  class Template
    def initialize name, generator
      @name = name
      @generator = generator
    end

    def outpath
      @outpath ||= begin
        subs = @generator.files[@name]['outpath'].split '/'
        @outpath = "#{@generator.path}/#{@generator.send(subs[1].to_sym)}/#{@name.gsub(subs[0], @generator.send(subs[1].to_sym))}"
      rescue NoMethodError
        @outpath = "#{@generator.path}/#{@generator.wormname}/#{@name}"
      end
    end

    def templates_dir
      File.join File.dirname(__FILE__), '..', 'templates'
    end

    def write
      print "Generating #{Skellington.unslash outpath}..."
      FileUtils.mkdir_p File.dirname outpath
      File.open outpath, 'w' do |f|
        f.write self
      end
      puts 'done'
    end

    def to_s
      t = File.read(File.open("#{templates_dir}/#{@name}.eruby"))
      Erubis::Eruby.new(t).evaluate(gen: @generator)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
skellington-0.7.5 lib/skellington/template.rb
skellington-0.7.4 lib/skellington/template.rb
skellington-0.7.3 lib/skellington/template.rb
skellington-0.7.2 lib/skellington/template.rb
skellington-0.7.0 lib/skellington/template.rb
skellington-0.6.2 lib/skellington/template.rb
skellington-0.6.1 lib/skellington/template.rb
skellington-0.5.2 lib/skellington/template.rb
skellington-0.5.1 lib/skellington/template.rb
skellington-0.5.0 lib/skellington/template.rb
skellington-0.4.16 lib/skellington/template.rb
skellington-0.4.15 lib/skellington/template.rb
skellington-0.4.13 lib/skellington/template.rb