try 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/try.rb +19 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c5876e6f7db8345c101789e5634e1cb2d149c98
4
- data.tar.gz: fd06368b745e5d22e1c444f34e507b33ee45077e
3
+ metadata.gz: 709e480aa70f8f56410a63ec46009b96803e116b
4
+ data.tar.gz: b16217ce61a1bdc4eb589e632297ac4a29d414ba
5
5
  SHA512:
6
- metadata.gz: c45036d9a15d19225dd4052d09c2cc9c3fec978a3d73f6b5692ff618c18235f27494621cb8f677c0b7a4ac6da08f4749be704aa4fd7f98db6bdf151de56c5fd3
7
- data.tar.gz: d08624af2df6a00a35d75b62145bb4b680133997f208883e6871f92e78a543fed2b5c449c6ab4a2f090239f6347d8b76fdfedd5e1f6863d7200e7de4698cb3a0
6
+ metadata.gz: c4225e05e4cbf52002cfc805cf6ad792366a748d0ca627f72b6cd49a41324ab371146d553f783d4cc80a23bc45de60487f7cc2e3336b1aee4861e3dc62def597
7
+ data.tar.gz: c3d7923acfc692c72dde29c0e250d1b9f5eb838530c2a23783ebc10e9286a66c5e42d72614f30d3b95a0e6c813853b145b04eb13cf81b3e233290b843c37da43
data/lib/try.rb CHANGED
@@ -38,6 +38,25 @@ module Try
38
38
  raise
39
39
  end
40
40
 
41
+ #
42
+ # Evaluates the given block and returns its value.
43
+ # If an exception is raised, nil is returned instead.
44
+ #
45
+ # If ((%errs%)) are given, only those exceptions will be trapped,
46
+ # and any other exceptions will be raised normally.
47
+ #
48
+ # @param errs an optional list of exception types to trap.
49
+ #
50
+ def test *errs, &bk
51
+ yield
52
+ rescue Exception => ex
53
+ return nil if errs.empty?
54
+ errs.each do |klass|
55
+ return nil if klass.instance_of?(Module) ? ex.kind_of?(klass) : ex.is_a?(klass)
56
+ end
57
+ raise
58
+ end
59
+
41
60
  extend self
42
61
  end
43
62
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: try
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Kerwin