Sha256: b7fc3be200799991f601f0d0cff028a42a3ff6d126ff870205366850795060b4

Contents?: true

Size: 1.14 KB

Versions: 9

Compression:

Stored size: 1.14 KB

Contents

module RailsPerformance
  module Gems

    class RakeExt
      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

      def self.find_task_name(*args)
        (ARGV + args).compact
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rails_performance-1.0.3 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.2 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.1 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0.beta5 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0.beta4 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0.beta3 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0.beta2 lib/rails_performance/gems/rake_ext.rb
rails_performance-1.0.0.beta1 lib/rails_performance/gems/rake_ext.rb