module Ridgepole::MigrationExt

Public Class Methods

prepended(klass) click to toggle source
# File lib/ridgepole/migration_ext.rb, line 7
def self.prepended(klass)
  klass.class_eval do
    cattr_accessor :time_recorder
    cattr_accessor :disable_logging

    def self.record_time
      result = nil

      begin
        self.time_recorder = TimeRecorder.new
        yield
        result = time_recorder.result
      ensure
        self.time_recorder = nil
      end

      result
    end
  end
end
record_time() { || ... } click to toggle source
# File lib/ridgepole/migration_ext.rb, line 12
def self.record_time
  result = nil

  begin
    self.time_recorder = TimeRecorder.new
    yield
    result = time_recorder.result
  ensure
    self.time_recorder = nil
  end

  result
end

Public Instance Methods

parse_text(text) click to toggle source
# File lib/ridgepole/migration_ext.rb, line 34
def parse_text(text)
  return unless time_recorder

  case text
  when /\A--\s+(.+)\Z/
    time_recorder.add_key(Regexp.last_match(1))
  when /\A\s+->\s+(\d+\.\d+)s\Z/
    time_recorder.add_value(Regexp.last_match(1).to_f)
  end
end
write(text = '') click to toggle source
# File lib/ridgepole/migration_ext.rb, line 28
def write(text = '')
  logger = Ridgepole::Logger.instance
  logger.info(text) unless disable_logging
  parse_text(text)
end