Sha256: 8abaa327f0f3d538d9e013c7149d6f9762ecdb6927707c04dfa7c8686eec2bd9

Contents?: true

Size: 1.48 KB

Versions: 10

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 = :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
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rake-funnel-0.11.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.10.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.9.1.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.9.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.8.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.7.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.6.1.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.6.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.5.0.pre lib/rake/funnel/support/assembly_version_writer.rb
rake-funnel-0.4.0.pre lib/rake/funnel/support/assembly_version_writer.rb