open_exception 0.2.1 → 0.2.2

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.
Files changed (4) hide show
  1. data/README.md +60 -1
  2. data/VERSION +1 -1
  3. data/open_exception.gemspec +2 -1
  4. metadata +3 -3
data/README.md CHANGED
@@ -12,23 +12,82 @@ in your application code when the exception occurs in a framework or lib.
12
12
  If you are on MacOSX and have the [growl gem](http://rubygems.org/gems/growl) installed,
13
13
  you will get a growl notification with the exception message when the file is opened.
14
14
 
15
+ Editors
16
+ -------
17
+
18
+ Out if the box, the gem supports three editors (with the following open commands):
19
+
20
+ :emacs => '/usr/bin/emacsclient -n +{line} {file}',
21
+ :textmate => '/usr/local/bin/mate -a -d -l {line} {file}',
22
+ :macvim => '/usr/local/bin/mvim +{line} {file}'
23
+
24
+ Note: if using emacs, you will need to be running `emacsserver`. To start the server:
25
+ M-x server-start
26
+ or add the following to your init:
27
+ (server-start)
28
+
15
29
  Configuration
16
30
  -------------
17
31
 
18
32
  To configure, pass a block to the configure method:
19
33
 
20
34
  OpenException.configure do |oe|
35
+ # open_with can be one of the built in editors (:emacs, :macvim, :textmate)
36
+ # or a command to execute to open the file, where {file} and {line} will be replaced
37
+ # with the file path and line number, respectively. See 'Editors' above for an example.
38
+ # The default editor is :emacs.
39
+
21
40
  oe.open_with = :emacs
41
+
42
+ # you can add exclusion filters to ignore exceptions. A filter can be an exception class to
43
+ # ignore, or a proc that is passed the exception, and should evaluate to true if the exception
44
+ # should be ignored. Be careful with using a class - it uses is_a?, so any subclasses of the
45
+ # passed class will be ignored as well. The list of filters is [] by default.
46
+
47
+ oe.exclusion_filters << SomeErrorClass
48
+ oe.exclusion_filters << lambda { |exception| true if exception_should_be_excluded }
49
+
50
+ # you can scope the search for the file:line to open with a filter as well. A filter can be a
51
+ # regular expression that is matched against the line, or a proc that is passed the line and
52
+ # should evaluate to true if the line should be used. The first line that any filter passes for
53
+ # will be the file:line that is opened. This is useful for opening the point in the stack just
54
+ # before control passes out of your app code when the exception occurs in an external
55
+ # lib/framework. The list of filters is [] by default.
56
+
57
+ oe.backtrace_line_filters << %r{/app/root/(app|lib)}
58
+ oe.backtrace_line_filters << lambda { |backtrace_line| true if line_should_be_used }
59
+
22
60
  end
23
61
 
62
+
24
63
  Rails Integration
25
64
  -----------------
26
65
 
27
- auto filter
66
+ The gem also alias chains in to rails' `ActionController#rescue_action_locally` method to automatically
67
+ open exceptions in development mode. The gem also adds the following filter to the `:backtrace_line_filters` to scope the opened files to the app:
68
+
69
+ %r{#{Rails.root}/(app|lib)}
70
+
71
+ To replace or remove this filter, you will need to reset the `:backtrace_line_filters` in your configure
72
+ block:
73
+ OpenException.configure do |oe|
74
+ oe.backtrace_line_filters = []
75
+ oe.backtrace_line_filters << my_new_filter
76
+ end
77
+
78
+ This has been tested with rails v2.3.5, but should work fine with 2.1 <= rails < 3. It may work with
79
+ rails 3 as well, I just haven't yet looked at rails 3.
28
80
 
29
81
  Standalone/Other Frameworks
30
82
  ---------------------------
31
83
 
84
+ To manually open an exception, or wire it up in another framework, you call:
85
+
86
+ OpenException.open(exception)
87
+
88
+ You can override the default (or configured) options by passing a hash as the second arg:
89
+
90
+ OpenException.open(exception, {:open_with => :textmate, :backtrace_line_filters => [filter, another_filter])
32
91
 
33
92
  Note on Patches/Pull Requests
34
93
  -----------------------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{open_exception}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tobias Crawley"]
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ".document",
21
21
  ".gitignore",
22
22
  "LICENSE",
23
+ "README.md",
23
24
  "Rakefile",
24
25
  "VERSION",
25
26
  "lib/open_exception.rb",
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 1
9
- version: 0.2.1
8
+ - 2
9
+ version: 0.2.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Tobias Crawley
@@ -44,6 +44,7 @@ files:
44
44
  - .document
45
45
  - .gitignore
46
46
  - LICENSE
47
+ - README.md
47
48
  - Rakefile
48
49
  - VERSION
49
50
  - lib/open_exception.rb
@@ -54,7 +55,6 @@ files:
54
55
  - spec/open_exception_spec.rb
55
56
  - spec/spec.opts
56
57
  - spec/spec_helper.rb
57
- - README.md
58
58
  has_rdoc: true
59
59
  homepage: http://github.com/tobias/open_exception
60
60
  licenses: []