From 868507672a86c3c6058cef6bc949e1c7d4832c17 Mon Sep 17 00:00:00 2001 From: Denis Knauf Date: Mon, 21 May 2012 13:54:21 +0200 Subject: [PATCH] v0.0.3: customtypes --- VERSION | 2 +- lib/semlogger.rb | 60 ++++++++++++++++++++++++++++++++++++++--- lib/semlogger/rack.rb | 2 +- lib/semlogger/writer.rb | 3 +-- 4 files changed, 59 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 diff --git a/lib/semlogger.rb b/lib/semlogger.rb index cd3340a..c74df04 100644 --- a/lib/semlogger.rb +++ b/lib/semlogger.rb @@ -1,10 +1,62 @@ require 'json' +class Object + def to_semlogger + [self.class.name.to_sym, self.respond_to?( :serializable_hash) ? self.serializable_hash : self ] + end +end + +class Exception + def to_semlogger + [:exception] + super + end +end + +class String + def to_semlogger + [:String, self] + end +end + +%w[Numeric FalseClass TrueClass NilClass].each do |cl| + Object.const_get( cl).class_eval do + def to_semlogger + [:const, self] + end + end +end + class Semlogger < ::Logger + class CustomType + def initialize name, *obj + @name, @obj = name.to_s.to_sym, obj + end + + def to_semlogger + [@name] + @obj + end + end + + attr_accessor :logdev, :level, :progname + class <