Sha256: c335fe2b333d5bbbda254c86eab8541b3147cec333134c5de18327685a81efd6
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true require 'erb' Dir[File.join(File.dirname(__FILE__), 'assembly_version', '*.rb')].each do |path| require path end module Rake module Funnel module Support class AssemblyVersionWriter include InstantiateSymbol instantiate AssemblyVersion def initialize(type = :from_version_files, args = {}) @type = create(type, args) end def write(target_path, languages = []) @type.each do |info| source = info[:source] version_info = info[:version_info] [languages].flatten.each do |language| target = target_path.call(language, version_info, source) contents = evaluate_erb(language, version_info, target) $stderr.print("Writing #{target}\n") File.write(target, contents) end end end private def evaluate_erb(language, version_info, target) template = template_for(language) render = ERB.new(template, nil, '%<>') render.filename = target render.result(get_binding(version_info)) end def template_for(language) template = File.join(File.dirname(__FILE__), 'assembly_version', 'languages', language.to_s) raise "Language is not supported: #{language}" unless File.readable?(template) File.read(template) end def get_binding(version_info) binding end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems