gom-core 0.1.0 → 0.1.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -1 +1,2 @@
1
1
  require 'gom/core'
2
+ require 'gom/logger'
@@ -0,0 +1,49 @@
1
+ require 'gom/logger'
2
+
3
+ module Gom
4
+ # GOM default Logger instance
5
+ Log = Gom::Logger.new
6
+
7
+ # TODO: runtime configuration might move to config/initializers/...
8
+ Log.level = ::Logger::DEBUG
9
+ end
10
+
11
+ __END__
12
+
13
+ Log = ::Logger.new case RAILS_ENV
14
+ when "test"
15
+ STDOUT
16
+ else
17
+ "#{RAILS_ROOT}/log/gom-#{RAILS_ENV}.log"
18
+ end
19
+
20
+ class << Log
21
+ # this is to de-patch the rails formatting patch..
22
+ def format_message(severity, timestamp, progname, msg)
23
+ "#{timestamp.to_formatted_s(:db)} #{severity.first} #{msg}\n"
24
+ end
25
+
26
+ # experimental convenience function:
27
+ #
28
+ # Log.ex e
29
+ #
30
+ # does actually do:
31
+ # Log.error e
32
+ # Log.debug "#{e.backtrace.join "\n\t"}"
33
+ #
34
+ # and:
35
+ # Log.ex e, "some message here"
36
+ #
37
+ # stands for:
38
+ # Log.error "some message here"
39
+ # Log.debug "#{e.backtrace.join "\n\t"}"
40
+ #
41
+ def ex e, msg = nil, level = :error
42
+ send level, (msg || e)
43
+ debug "#{e} -- error was: #{msg}\n\t#{e.backtrace.join "\n\t"}"
44
+ end
45
+ end
46
+
47
+ # TODO: runtime configuration might move to config/initializers/...
48
+ Log.level = ::Logger::DEBUG
49
+ end
@@ -0,0 +1,61 @@
1
+ require 'logger'
2
+
3
+ module Gom
4
+
5
+ class Logger < ::Logger
6
+
7
+ #Gom::Log.level = Gom::Attribute.value("/gom/log:level", ::Logger::INFO)
8
+
9
+ Levels = {
10
+ "debug" => ::Logger::DEBUG,
11
+ "info" => ::Logger::INFO,
12
+ "warn" => ::Logger::WARN,
13
+ "error" => ::Logger::ERROR,
14
+ "fatal" => ::Logger::FATAL,
15
+ }
16
+
17
+ # output defaults to STDOUT for rails test and non-rails apps, to a
18
+ # logfile otherwise
19
+ #
20
+ DEFAULT_OUT = begin
21
+ if (RAILS_ROOT.nil? rescue true)
22
+ STDOUT
23
+ else
24
+ if 'test' === RAILS_ENV
25
+ STDOUT
26
+ else
27
+ "#{RAILS_ROOT}/log/gom-#{RAILS_ENV}.log"
28
+ end
29
+ end
30
+ end
31
+
32
+ def initialize out = DEFAULT_OUT
33
+ super out
34
+ end
35
+
36
+ # this is to de-patch the rails formatting patch..
37
+ def format_message(severity, timestamp, progname, msg)
38
+ "#{timestamp.strftime '%Y-%m-%d %H:%M:%S'} #{severity[0,1]} #{msg}\n"
39
+ end
40
+
41
+ # experimental convenience function:
42
+ #
43
+ # Log.ex e
44
+ #
45
+ # does actually do:
46
+ # Log.error e
47
+ # Log.debug "#{e.backtrace.join "\n\t"}"
48
+ #
49
+ # and:
50
+ # Log.ex e, "some message here"
51
+ #
52
+ # stands for:
53
+ # Log.error "some message here"
54
+ # Log.debug "#{e.backtrace.join "\n\t"}"
55
+ #
56
+ def ex e, msg = nil, level = :error
57
+ send level, "#{e}: #{(msg || e)}"
58
+ debug "#{e} -- callstack: #{msg}\n\t#{e.backtrace.join "\n\t"}"
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__)+'/../spec_helper'
2
+
3
+ describe Gom::Logger do
4
+ it "should find the class" do
5
+ Gom::Logger.should_not == nil
6
+ end
7
+
8
+ describe "with a Logger" do
9
+ before :each do
10
+ require 'tempfile'
11
+ @logfile = Tempfile.new self
12
+ @log = Gom::Logger.new @logfile.path
13
+ end
14
+
15
+ it "should have a default 'I' log level" do
16
+ @log.info self.to_s
17
+ (line = @logfile.read).should_not == nil
18
+ line.should =~ / I #{self.to_s}/
19
+ end
20
+
21
+ it "should log execeptions" do
22
+ raise "foo" rescue @log.ex $!, "bar"
23
+ (txt = @logfile.read).should_not == nil
24
+
25
+ #assert_match " E RuntimeError: bar", txt, @logfile.path
26
+ txt.should =~ / E foo: bar/
27
+ txt.should =~ / D foo -- callstack: bar/
28
+ end
29
+ end
30
+ end
@@ -1,32 +1,9 @@
1
- # figure out where we are being loaded from
2
- if $LOADED_FEATURES.grep(/spec\/spec_helper\.rb/).any?
3
- begin
4
- raise "foo"
5
- rescue => e
6
- puts <<-MSG
7
- ===================================================
8
- It looks like spec_helper.rb has been loaded
9
- multiple times. Normalize the require to:
10
-
11
- require "spec/spec_helper"
12
-
13
- Things like File.join and File.expand_path will
14
- cause it to be loaded multiple times.
15
-
16
- Loaded this time from:
17
-
18
- #{e.backtrace.join("\n ")}
19
- ===================================================
20
- MSG
21
- end
22
- end
23
-
24
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
25
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
26
3
  require 'spec'
27
4
  require 'spec/autorun'
28
5
 
29
- require 'gom/core'
6
+ require 'gom-core'
30
7
 
31
8
  Spec::Runner.configure do |config|
32
9
  config.before :each do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gom-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - art+com/dirk luesebrink
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-30 00:00:00 +01:00
12
+ date: 2010-02-02 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -41,7 +41,10 @@ files:
41
41
  - lib/gom-core.rb
42
42
  - lib/gom/core.rb
43
43
  - lib/gom/core/primitive.rb
44
+ - lib/gom/log.rb
45
+ - lib/gom/logger.rb
44
46
  - spec/gom/core/primitive_spec.rb
47
+ - spec/gom/logger_spec.rb
45
48
  - spec/spec.opts
46
49
  - spec/spec_helper.rb
47
50
  has_rdoc: true
@@ -74,4 +77,5 @@ specification_version: 3
74
77
  summary: basic GOM functionallity
75
78
  test_files:
76
79
  - spec/gom/core/primitive_spec.rb
80
+ - spec/gom/logger_spec.rb
77
81
  - spec/spec_helper.rb