Sha256: d015d65e5f57b6ebd1926d90321dca4414f1390631bf96cb40d9a14af8cb4fe1

Contents?: true

Size: 927 Bytes

Versions: 11

Compression:

Stored size: 927 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.sub(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
      f = File.open outpath, 'w'
      f.write self
      f.close
      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

11 entries across 11 versions & 1 rubygems

Version Path
skellington-0.4.0 lib/skellington/template.rb
skellington-0.3.6 lib/skellington/template.rb
skellington-0.3.5 lib/skellington/template.rb
skellington-0.3.4 lib/skellington/template.rb
skellington-0.3.3 lib/skellington/template.rb
skellington-0.3.2 lib/skellington/template.rb
skellington-0.3.1 lib/skellington/template.rb
skellington-0.3.0 lib/skellington/template.rb
skellington-0.2.2 lib/skellington/template.rb
skellington-0.2.1 lib/skellington/template.rb
skellington-0.2.0 lib/skellington/template.rb