artifact_logger 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,8 @@ require 'artifact_logger/active_record'
5
5
 
6
6
  module ArtifactLogger
7
7
 
8
- def self.extend_object obj, artifact
8
+ #Extends a log object to add additional functionality
9
+ def self.extend_log_object obj, artifact
9
10
  artifact.valid_log_levels.each do |level|
10
11
  obj.define_singleton_method level do |message=nil|
11
12
  if message.nil?
@@ -14,6 +15,12 @@ module ArtifactLogger
14
15
  artifact.log.create(:text => message, :level => level)
15
16
  end
16
17
  end
18
+
19
+ # Adds a method such as:
20
+ # artifact.log.error? which returns true if there
21
+ obj.define_singleton_method "#{level}?" do
22
+ !artifact.log.log_level(level).empty?
23
+ end
17
24
  end
18
25
  return obj
19
26
  end
@@ -3,9 +3,16 @@ module ArtifactLogger::ModelExtensions
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  module ClassMethods
6
+ #Provides two different functionalities:
7
+ # Artifact.log # => log message object
8
+ # Artifact.log :level, "Message" # Creates a new message
6
9
  def log *params
7
10
  if params.length == 0
8
- ArtifactLogger.extend_object(Log::Message.where(:artifact_type => model_name, :artifact_id => nil), self)
11
+ #Return a set of messages, however extend the class at runtime
12
+ #This allows you to use:
13
+ #Artifact.log.error
14
+ #Artifact.log.error?
15
+ ArtifactLogger.extend_log_object(Log::Message.where(:artifact_type => model_name, :artifact_id => nil), self)
9
16
  elsif params.length == 2
10
17
  Log::Message.create :level => params[0], :text => params[1], :artifact_type => model_name
11
18
  else
@@ -19,11 +26,14 @@ module ArtifactLogger::ModelExtensions
19
26
  end
20
27
 
21
28
  module InstanceMethods
29
+ #Provides two different functionalities:
30
+ # artifact.log # => log message object
31
+ # artifact.log :level, "Message" # Creates a new message
22
32
  def log *params
23
- if params.length != 2
24
- ArtifactLogger.extend_object(_log(*params), self)
25
- else
33
+ if params.length == 2
26
34
  Log::Message.create :level => params[0], :text => params[1], :artifact => self
35
+ else
36
+ ArtifactLogger.extend_log_object(_log(*params), self)
27
37
  end
28
38
  end
29
39
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artifact_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-16 00:00:00.000000000 -04:00
12
+ date: 2011-08-17 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
  description: A very simple dropin engine for logging information on artifacts in a