Module: Kernel
- Defined in:
- lib/active_support/core_ext/kernel.rb
Instance Method Summary collapse
-
#require_library_or_gem(library_name) ⇒ Object
Method that requires a library, ensuring that rubygems is loaded.
-
#returning(value) ⇒ Object
A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.
-
#silence_warnings ⇒ Object
Sets $VERBOSE to nil for the duration of the block and back to its original value afterwards.
Instance Method Details
#require_library_or_gem(library_name) ⇒ Object
Method that requires a library, ensuring that rubygems is loaded
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/active_support/core_ext/kernel.rb', line 33 def require_library_or_gem(library_name) begin require library_name rescue LoadError => cannot_require # 1. Requiring the module is unsuccessful, maybe it's a gem and nobody required rubygems yet. Try. begin require 'rubygems' rescue LoadError => rubygems_not_installed raise cannot_require end # 2. Rubygems is installed and loaded. Try to load the library again begin require library_name rescue LoadError => gem_not_installed raise cannot_require end end end |
#returning(value) ⇒ Object
A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.
def foo
returning values = [] do
values << 'bar'
values << 'baz'
end
end
foo # => ['bar', 'baz']
13 14 15 16 |
# File 'lib/active_support/core_ext/kernel.rb', line 13 def returning(value) yield value end |
#silence_warnings ⇒ Object
Sets $VERBOSE to nil for the duration of the block and back to its original value afterwards.
silence_warnings do
value = noisy_call # no warning voiced
end
noisy_call # warning voiced
25 26 27 28 29 30 |
# File 'lib/active_support/core_ext/kernel.rb', line 25 def silence_warnings old_verbose, $VERBOSE = $VERBOSE, nil yield ensure $VERBOSE = old_verbose end |