Sha256: 22e46daad5faeabdfc1f3a6ab007623a890ad4949527093775c0ad8444cc76e0

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

require 'active_support/core_ext/module/attr_internal'

module Rails
  module DataMapper
    module Railties

      module ControllerRuntime

        extend ActiveSupport::Concern

        protected

        attr_internal :db_runtime

        def cleanup_view_runtime
          # TODO add checks if DataMapper is connected to a repository.
          # If it is, do this, if it isn't, just delegate to super
          db_rt_before_render = ::DataMapper.repository.adapter.reset_runtime
          runtime = super
          db_rt_after_render = ::DataMapper.repository.adapter.reset_runtime
          self.db_runtime = db_rt_before_render + db_rt_after_render
          runtime - db_rt_after_render
        end

        def append_info_to_payload(payload)
          super
          payload[:db_runtime] = db_runtime
        end


        module ClassMethods

          def log_process_action(payload)
            messages, db_runtime = super, payload[:db_runtime]
            messages << ("Models: %.1fms" % db_runtime.to_f) if db_runtime
            messages
          end

        end

      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dm-rails-1.0.0 lib/dm-rails/railties/controller_runtime.rb
dm-rails-1.0.0.rc3 lib/dm-rails/railties/controller_runtime.rb
dm-rails-1.0.0.rc2 lib/dm-rails/railties/controller_runtime.rb
dm-rails-1.0.0.rc1 lib/dm-rails/railties/controller_runtime.rb