class RailsPerformance::Gems::RakeExt

Public Class Methods

find_task_name(*args) click to toggle source
# File lib/rails_performance/gems/rake_ext.rb, line 35
def self.find_task_name(*args)
  (ARGV + args).compact
end
init() click to toggle source
# File lib/rails_performance/gems/rake_ext.rb, line 5
def self.init
  ::Rake::Task.class_eval do
    def invoke_with_rails_performance(*args)
      begin
        now    = Time.now
        status = 'success'
        invoke_without_new_rails_performance(*args)
      rescue Exception => ex
        status = 'error'
        raise(ex)
      ensure
        RailsPerformance::Models::RakeRecord.new(
          task: RailsPerformance::Gems::RakeExt.find_task_name(*args),
          datetime: now.strftime(RailsPerformance::FORMAT),
          datetimei: now.to_i,
          duration: (Time.now - now) * 1000,
          status: status,
        ).save
      end
    end

    alias_method :invoke_without_new_rails_performance, :invoke
    alias_method :invoke, :invoke_with_rails_performance

    def invoke(*args)
      invoke_with_rails_performance(*args)
    end
  end
end

Public Instance Methods

invoke(*args) click to toggle source
# File lib/rails_performance/gems/rake_ext.rb, line 29
def invoke(*args)
  invoke_with_rails_performance(*args)
end
invoke_with_rails_performance(*args) click to toggle source
# File lib/rails_performance/gems/rake_ext.rb, line 7
def invoke_with_rails_performance(*args)
  begin
    now    = Time.now
    status = 'success'
    invoke_without_new_rails_performance(*args)
  rescue Exception => ex
    status = 'error'
    raise(ex)
  ensure
    RailsPerformance::Models::RakeRecord.new(
      task: RailsPerformance::Gems::RakeExt.find_task_name(*args),
      datetime: now.strftime(RailsPerformance::FORMAT),
      datetimei: now.to_i,
      duration: (Time.now - now) * 1000,
      status: status,
    ).save
  end
end