Sha256: 2e554ecd5f9a219b6b6442c3f2fa7423de74923b824cc1a1a3d479c4d11caab6
Contents?: true
Size: 1.39 KB
Versions: 5
Compression:
Stored size: 1.39 KB
Contents
require 'erb' Dir[File.join(File.dirname(__FILE__), 'assembly_version', '*.rb')].each do |path| require path end module Rake::Funnel::Support class AssemblyVersionWriter include Rake::Funnel::Support::InstantiateSymbol instantiate AssemblyVersion def initialize(type = :FromVersionFiles, 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
Version data entries
5 entries across 5 versions & 1 rubygems