lib/tasks/gettext.rake in foreman-tasks-10.0.0 vs lib/tasks/gettext.rake in foreman-tasks-10.0.1
- old
+ new
@@ -6,24 +6,30 @@
if gettext_find_task
namespace :gettext do
task :store_action_names => :environment do
storage_file = "#{locale_path}/action_names.rb"
- klasses = Actions::EntryAction
- .subclasses
- .uniq
- .select do |action|
- src, = Object.const_source_location(action.to_s)
- src.start_with? @engine.root.to_s
+ method_names = [:plan, :run, :finalize]
+ instances = Actions::EntryAction
+ .descendants
+ .uniq
+ .map(&:allocate)
+ .select do |action|
+ method_names.any? do |method_name|
+ if action.respond_to?(method_name)
+ src, = action.method(method_name).source_location
+ src.start_with? @engine.root.to_s
+ end
+ end
end
- if klasses.any?
+ if instances.any?
puts "writing action translations to: #{storage_file}"
File.write storage_file,
"# Autogenerated!\n" +
- klasses
- .map { |klass| %[_("#{klass.allocate.humanized_name}")] }
+ instances
+ .map { |instance| %[_("#{instance.humanized_name}")] }
.sort
.join("\n") + "\n"
elsif File.exist? storage_file
puts "Removing empty action translations file: #{storage_file}"
File.delete storage_file