Sha256: c494e8ba64c35623b8b3446b67df337d43afc3284d5d69404a1798550f65c910
Contents?: true
Size: 1.48 KB
Versions: 8
Compression:
Stored size: 1.48 KB
Contents
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) Rake.rake_output_message("Writing #{target}") 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
8 entries across 8 versions & 1 rubygems