may_nil 0.0.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.
Files changed (2) hide show
  1. data/lib/may_nil.rb +16 -0
  2. metadata +46 -0
data/lib/may_nil.rb ADDED
@@ -0,0 +1,16 @@
1
+ #
2
+ # Usage:
3
+ # require 'may_nil'
4
+ #
5
+ # Examples:
6
+ # may_nil{ nil.foo.bar[2].baz } => nil
7
+ # may_nil{ 0.foo.bar[2].baz } => Exception: NoMethodError
8
+ #
9
+
10
+ def may_nil &blk
11
+ blk.call
12
+ rescue NoMethodError => e
13
+ raise if e.missing_name != "NilClass"
14
+ nil
15
+ end
16
+
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: may_nil
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rue Meese
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-11-05 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Method chain to your heart's content
15
+ email: rupert.meese@lightmind.co.uk
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/may_nil.rb
21
+ homepage: https://github.com/meesern/may_nil
22
+ licenses:
23
+ - MIT
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.25
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: May Nil
46
+ test_files: []