loganb-nestegg 0.0.3 → 0.0.4
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/.gitignore +6 -0
- data/History.txt +8 -0
- data/Rakefile +4 -4
- data/VERSION +1 -1
- data/lib/nestegg/nesting_exception.rb +5 -5
- data/spec/nestegg/nesting_exception_spec.rb +33 -9
- data/spec/spec_helper.rb +8 -1
- metadata +10 -8
- data/lib/nestegg/version.rb +0 -9
- data/nestegg.gemspec +0 -54
data/.gitignore
ADDED
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
begin
|
2
2
|
require 'jeweler'
|
3
3
|
Jeweler::Tasks.new do |gemspec|
|
4
|
-
gemspec.name = "nestegg"
|
4
|
+
gemspec.name = "loganb-nestegg"
|
5
5
|
gemspec.summary = "Nested exceptions for ruby"
|
6
6
|
gemspec.description = "Module to add a 'cause' field to exceptions and automatically chains exceptions on re-raise"
|
7
|
-
gemspec.email = "
|
8
|
-
gemspec.homepage = "http://nestegg
|
9
|
-
gemspec.authors = ["John D. Hume"]
|
7
|
+
gemspec.email = "logan@datacurrent.com"
|
8
|
+
gemspec.homepage = "http://github.com/loganb/nestegg"
|
9
|
+
gemspec.authors = ["John D. Hume", "Logan Bowers", "Matt Scilipoti"]
|
10
10
|
end
|
11
11
|
rescue LoadError
|
12
12
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -1,13 +1,13 @@
|
|
1
1
|
module Nestegg
|
2
2
|
module NestingException
|
3
|
-
|
3
|
+
|
4
4
|
attr_reader :cause
|
5
|
-
|
5
|
+
|
6
6
|
def initialize message = nil, cause = $!
|
7
7
|
@cause = cause
|
8
|
-
|
8
|
+
super(message ||= cause.message)
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def set_backtrace bt
|
12
12
|
if cause
|
13
13
|
cause.backtrace.reverse.each do |line|
|
@@ -22,6 +22,6 @@ module Nestegg
|
|
22
22
|
end
|
23
23
|
super bt
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
end
|
27
27
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
|
2
2
|
|
3
3
|
describe Nestegg::NestingException do
|
4
|
-
|
4
|
+
|
5
5
|
class TestNestingError < StandardError
|
6
6
|
include Nestegg::NestingException
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def create_cause(klass = StandardError, message = "cause msg", backtrace = ["line_one", "line_two"])
|
10
10
|
e = klass.new(message)
|
11
11
|
e.set_backtrace backtrace
|
12
12
|
e
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def with_exception exception
|
16
16
|
begin
|
17
17
|
raise exception
|
@@ -19,21 +19,21 @@ describe Nestegg::NestingException do
|
|
19
19
|
yield e
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "includes cause in backtrace" do
|
24
24
|
cause = create_cause(StandardError)
|
25
25
|
with_exception TestNestingError.new("some message", cause) do |e|
|
26
26
|
e.backtrace.should include("cause: StandardError: #{cause.message}")
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it "includes cause's backtrace after cause in backtrace" do
|
31
31
|
cause = create_cause(StandardError)
|
32
32
|
with_exception TestNestingError.new("some message", cause) do |e|
|
33
33
|
e.backtrace[-3..-1].should == ["cause: StandardError: #{cause.message}", "line_one", "line_two"]
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "removes duplicated backtrace elements from nesting exception" do
|
38
38
|
cause_bt = caller.unshift "some_other_line"
|
39
39
|
cause = create_cause(StandardError, "msg", cause_bt)
|
@@ -44,7 +44,7 @@ describe Nestegg::NestingException do
|
|
44
44
|
e.backtrace[0..1].should == ["#{__FILE__}:#{line}", "cause: StandardError: msg"]
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
it "defaults cause to current raised exception ($!)" do
|
49
49
|
expected_cause = StandardError.new
|
50
50
|
raised_error = nil
|
@@ -59,5 +59,29 @@ describe Nestegg::NestingException do
|
|
59
59
|
end
|
60
60
|
raised_error.cause.should == expected_cause
|
61
61
|
end
|
62
|
-
|
63
|
-
|
62
|
+
|
63
|
+
it "uses passed message" do
|
64
|
+
begin
|
65
|
+
begin
|
66
|
+
raise StandardError, 'STD MSG'
|
67
|
+
rescue StandardError
|
68
|
+
raise TestNestingError, 'NESTED MESSAGE'
|
69
|
+
end
|
70
|
+
rescue TestNestingError => e
|
71
|
+
e.message.should == 'NESTED MESSAGE'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it "defaults message to cause's message" do
|
76
|
+
begin
|
77
|
+
begin
|
78
|
+
raise StandardError, 'STD MSG'
|
79
|
+
rescue StandardError
|
80
|
+
raise TestNestingError
|
81
|
+
end
|
82
|
+
rescue TestNestingError => e
|
83
|
+
e.message.should == 'STD MSG'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'spec'
|
3
|
-
|
3
|
+
|
4
|
+
#Replaced this `require` with `$LOAD_PATH.unshift`
|
5
|
+
#to ensure the file is used instead of the gem.
|
6
|
+
#lib/nestegg.rb was loading nestegg/version from the gem
|
7
|
+
#instead of lib/nestegg/version.rb
|
8
|
+
#require File.dirname(__FILE__) + '/../lib/nestegg'
|
9
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../lib'))
|
10
|
+
require 'nestegg'
|
metadata
CHANGED
@@ -1,20 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loganb-nestegg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John D. Hume
|
8
|
+
- Logan Bowers
|
9
|
+
- Matt Scilipoti
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
13
|
|
12
|
-
date: 2009-
|
14
|
+
date: 2009-10-08 00:00:00 -07:00
|
13
15
|
default_executable:
|
14
16
|
dependencies: []
|
15
17
|
|
16
18
|
description: Module to add a 'cause' field to exceptions and automatically chains exceptions on re-raise
|
17
|
-
email:
|
19
|
+
email: logan@datacurrent.com
|
18
20
|
executables: []
|
19
21
|
|
20
22
|
extensions: []
|
@@ -22,6 +24,7 @@ extensions: []
|
|
22
24
|
extra_rdoc_files:
|
23
25
|
- README.txt
|
24
26
|
files:
|
27
|
+
- .gitignore
|
25
28
|
- History.txt
|
26
29
|
- License.txt
|
27
30
|
- Manifest.txt
|
@@ -31,14 +34,13 @@ files:
|
|
31
34
|
- examples/nestegg_example.rb
|
32
35
|
- lib/nestegg.rb
|
33
36
|
- lib/nestegg/nesting_exception.rb
|
34
|
-
- lib/nestegg/version.rb
|
35
|
-
- nestegg.gemspec
|
36
37
|
- spec/nestegg/nesting_exception_spec.rb
|
37
38
|
- spec/spec.opts
|
38
39
|
- spec/spec_helper.rb
|
39
|
-
has_rdoc:
|
40
|
-
homepage: http://nestegg
|
41
|
-
licenses:
|
40
|
+
has_rdoc: true
|
41
|
+
homepage: http://github.com/loganb/nestegg
|
42
|
+
licenses: []
|
43
|
+
|
42
44
|
post_install_message:
|
43
45
|
rdoc_options:
|
44
46
|
- --charset=UTF-8
|
data/lib/nestegg/version.rb
DELETED
data/nestegg.gemspec
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{nestegg}
|
8
|
-
s.version = "0.0.3"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["John D. Hume"]
|
12
|
-
s.date = %q{2009-09-22}
|
13
|
-
s.description = %q{Module to add a 'cause' field to exceptions and automatically chains exceptions on re-raise}
|
14
|
-
s.email = %q{duelin dot markers at gmail}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.txt"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"History.txt",
|
20
|
-
"License.txt",
|
21
|
-
"Manifest.txt",
|
22
|
-
"README.txt",
|
23
|
-
"Rakefile",
|
24
|
-
"VERSION",
|
25
|
-
"examples/nestegg_example.rb",
|
26
|
-
"lib/nestegg.rb",
|
27
|
-
"lib/nestegg/nesting_exception.rb",
|
28
|
-
"lib/nestegg/version.rb",
|
29
|
-
"nestegg.gemspec",
|
30
|
-
"spec/nestegg/nesting_exception_spec.rb",
|
31
|
-
"spec/spec.opts",
|
32
|
-
"spec/spec_helper.rb"
|
33
|
-
]
|
34
|
-
s.homepage = %q{http://nestegg.rubyforge.org}
|
35
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
36
|
-
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = %q{1.3.5}
|
38
|
-
s.summary = %q{Nested exceptions for ruby}
|
39
|
-
s.test_files = [
|
40
|
-
"spec/nestegg/nesting_exception_spec.rb",
|
41
|
-
"spec/spec_helper.rb",
|
42
|
-
"examples/nestegg_example.rb"
|
43
|
-
]
|
44
|
-
|
45
|
-
if s.respond_to? :specification_version then
|
46
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
47
|
-
s.specification_version = 3
|
48
|
-
|
49
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
50
|
-
else
|
51
|
-
end
|
52
|
-
else
|
53
|
-
end
|
54
|
-
end
|