lib/rake/funnel/tasks/assembly_version.rb in rake-funnel-0.1.0.pre vs lib/rake/funnel/tasks/assembly_version.rb in rake-funnel-0.2.0.pre
- old
+ new
@@ -4,31 +4,37 @@
class AssemblyVersion < Rake::TaskLib
include Rake::Funnel::Support
attr_accessor :name, :language, :source, :source_args, :target_path
- def initialize(name = :version)
- @name = name
+ def initialize(*args, &task_block)
+ setup_ivars(args)
+
+ define(args, &task_block)
+ end
+
+ private
+ def setup_ivars(args)
+ @name = args.shift || :version
+
@language = :cs
@source = :FromVersionFiles
@source_args = {}
@target_path = next_to_version_file
-
- yield self if block_given?
- define
end
- private
- def define
- desc 'Generate version info'
- task name do
- writer = AssemblyVersionWriter.new(source, source_args)
+ def define(args, &task_block)
+ desc 'Generate version info' unless Rake.application.last_description
+ task(name, *args) do |_, task_args|
+ task_block.call(*[self, task_args].slice(0, task_block.arity)) if task_block
+
+ writer = AssemblyVersionWriter.new(source, source_args)
writer.write(target_path, language)
end
end
def next_to_version_file
- Proc.new { |language, version_info, source| File.join(File.dirname(source), "VersionInfo.#{language}") }
+ Proc.new { |language, _version_info, source| File.join(File.dirname(source), "VersionInfo.#{language}") }
end
end
end