Sha256: 5cbf454c0aff266529415cd72d12166f03aba75af335daf06c3410c9cf9b77fd

Contents?: true

Size: 696 Bytes

Versions: 3

Compression:

Stored size: 696 Bytes

Contents

require "mustache"

module Licensor
  class Template
    EXTNAME = ".mustache"

    def initialize
      @templates = find_templates
      @licenses = @templates.map{|t| File.basename(t, EXTNAME) }
      @template_table = Hash[@licenses.zip(@templates)]
    end

    attr_reader :licenses

    def render(license, name, year)
      unless @licenses.include?(license)
        raise ArgumentError, "Given license `#{license}' is not supported. Try `--list' option to see all available licenses."
      end

      Mustache.render(File.read(@template_table[license]), name: name, year: year)
    end

    private
    def find_templates
      Dir["#{__dir__}/templates/*#{EXTNAME}"]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
licensor-0.1.3 lib/licensor/template.rb
licensor-0.1.2 lib/licensor/template.rb
licensor-0.1.1 lib/licensor/template.rb