Sha256: f958bc8bdc97b9370309ff4e9f56bd6b947f9d2d274277894b6e39788c008f23
Contents?: true
Size: 1.49 KB
Versions: 22
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module Rails module Command class RakeCommand < Base # :nodoc: extend Rails::Command::Actions namespace "rake" class << self def printing_commands rake_tasks.filter_map do |task| if task.comment && task.locations.any?(non_app_file_pattern) [task.name_with_args, task.comment] end end end def perform(task, args, config) with_rake(task, *args) do |rake| if unrecognized_task = (rake.top_level_tasks - ["default"]).find { |task| !rake.lookup(task[/[^\[]+/]) } @rake_tasks = rake.tasks raise UnrecognizedCommandError.new(unrecognized_task) end rake.options.suppress_backtrace_pattern = non_app_file_pattern rake.standard_exception_handling { rake.top_level } end end private def non_app_file_pattern /\A(?!#{Regexp.quote Rails::Command.root.to_s})/ end def with_rake(*args, &block) require "rake" Rake::TaskManager.record_task_metadata = true result = nil Rake.with_application do |rake| rake.init(bin, args) unless args.empty? rake.load_rakefile result = block.call(rake) end result end def rake_tasks @rake_tasks ||= with_rake(&:tasks) end end end end end
Version data entries
22 entries across 22 versions & 2 rubygems