Module: ArtifactLogger

Defined in:
lib/artifact_logger.rb,
lib/artifact_logger/engine.rb

Defined Under Namespace

Modules: ActiveRecord, ModelExtensions Classes: Engine

Class Method Summary collapse

Class Method Details

.extend_log_object(obj, artifact) ⇒ Object

Extends a log object to add additional functionality



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/artifact_logger.rb', line 9

def self.extend_log_object obj, artifact
  artifact.valid_log_levels.each do |level|
    obj.define_singleton_method level do |message=nil|
      if message.nil?
        artifact.log.log_level(level)
      else
        artifact.log.create(:text => message, :level => level)
      end
    end

    # Adds a method such as:
    # artifact.log.error? which returns true if there 
    obj.define_singleton_method "#{level}?" do
      !artifact.log.log_level(level).empty?
    end
  end
  return obj
end