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