class Rake::Funnel::Tasks::AssemblyVersion

Attributes

language[RW]
name[RW]
source[RW]
source_args[RW]
target_path[RW]

Public Class Methods

new(*args, &task_block) click to toggle source
# File lib/rake/funnel/tasks/assembly_version.rb, line 13
def initialize(*args, &task_block)
  setup_ivars(args)

  define(args, &task_block)
end

Public Instance Methods

next_to_source(language, _version_info, source) click to toggle source
# File lib/rake/funnel/tasks/assembly_version.rb, line 19
def next_to_source(language, _version_info, source)
  File.join(File.dirname(source), "VersionInfo.#{language}")
end

Private Instance Methods

define(args) { |*[self, task_args].slice(0, arity)| ... } click to toggle source
# File lib/rake/funnel/tasks/assembly_version.rb, line 36
def define(args, &task_block)
  desc 'Generate version info' unless Rake.application.last_description

  task(name, *args) do |_, task_args|
    yield(*[self, task_args].slice(0, task_block.arity)) if task_block

    writer = AssemblyVersionWriter.new(source, source_args)
    writer.write(target_path, language)
  end
end
setup_ivars(args) click to toggle source
# File lib/rake/funnel/tasks/assembly_version.rb, line 25
def setup_ivars(args)
  @name = args.shift || :version

  @language = :cs
  @source = :FromVersionFiles
  @source_args = {}
  @target_path = proc do |language, version_info, source|
    next_to_source(language, version_info, source)
  end
end