lib/ridgepole/migration_ext.rb in ridgepole-0.6.4.beta5 vs lib/ridgepole/migration_ext.rb in ridgepole-0.6.4.beta6
- old
+ new
@@ -1,58 +1,69 @@
require 'active_record/migration'
-class ActiveRecord::Migration
- cattr_accessor :time_recorder
- cattr_accessor :disable_logging
+module Ridgepole
+ module MigrationExt
+ def self.included(klass)
+ klass.class_eval do
+ cattr_accessor :time_recorder
+ cattr_accessor :disable_logging
+ end
+ end
- def write_with_logging(text = '')
- logger = Ridgepole::Logger.instance
- logger.info(text) unless self.disable_logging
- parse_text(text)
- end
- alias_method_chain :write, :logging
-
- def parse_text(text)
- return unless self.time_recorder
-
- case text
- when /\A--\s+(.+)\Z/
- self.time_recorder.add_key($1)
- when /\A\s+->\s+(\d+\.\d+)s\Z/
- self.time_recorder.add_value($1.to_f)
+ def write(text = '')
+ logger = Ridgepole::Logger.instance
+ logger.info(text) unless self.disable_logging
+ parse_text(text)
end
- end
- def self.record_time
- result = nil
+ def parse_text(text)
+ return unless self.time_recorder
- begin
- self.time_recorder = TimeRecorder.new
- yield
- result = self.time_recorder.result
- ensure
- self.time_recorder = nil
+ case text
+ when /\A--\s+(.+)\Z/
+ self.time_recorder.add_key($1)
+ when /\A\s+->\s+(\d+\.\d+)s\Z/
+ self.time_recorder.add_value($1.to_f)
+ end
end
- return result
- end
+ def self.record_time
+ result = nil
- class TimeRecorder
- attr_reader :result
+ begin
+ self.time_recorder = TimeRecorder.new
+ yield
+ result = self.time_recorder.result
+ ensure
+ self.time_recorder = nil
+ end
- def initialize
- @result = {}
+ result
end
- def add_key(key)
- @key = key
- end
+ class TimeRecorder
+ attr_reader :result
- def add_value(value)
- if @key
- @result[@key] = value
+ def initialize
+ @result = {}
end
- @key = nil
+ def add_key(key)
+ @key = key
+ end
+
+ def add_value(value)
+ if @key
+ @result[@key] = value
+ end
+
+ @key = nil
+ end
end
+ end
+end
+
+module ActiveRecord
+ class Migration
+ include Ridgepole::MigrationExt
end
end