Module | Kernel
In: | lib/active_support/core_ext/kernel/daemonizing.rb lib/active_support/core_ext/kernel/debugger.rb lib/active_support/core_ext/kernel/reporting.rb lib/active_support/core_ext/kernel/requires.rb lib/active_support/vendor/builder-2.1.2/blankslate.rb

Since Ruby is very dynamic, methods added to the ancestors of BlankSlate after BlankSlate is defined will show up in the list of available BlankSlate methods. We handle this by defining a hook in the Object and Kernel classes that will hide any method defined after BlankSlate has been loaded.

### Methods

breakpoint daemonize debugger enable_warnings method_added require_library_or_gem silence_stream silence_warnings suppress

### External Aliases

method_added | -> | blank_slate_method_added

### Public Class methods

method_added(name)

Detect method additions to Kernel and remove them in the BlankSlate class.

### Public Instance methods

breakpoint()
daemonize()

Turns the current script into a daemon process that detaches from the console. It can be shut down with a TERM signal.

debugger()

Starts a debugging session if ruby-debug has been loaded (call script/server —debugger to do load it).

enable_warnings() {|| ...}

Sets $VERBOSE to true for the duration of the block and back to its original value afterwards.

require_library_or_gem(library_name)

Require a library with fallback to RubyGems. Warnings during library loading are silenced to increase signal/noise for application warnings.

silence_stream(stream) {|| ...}

Silences any stream for the duration of the block.

      silence_stream(STDOUT) do
        puts 'This will never be seen'
      end

      puts 'But this will'

silence_warnings() {|| ...}

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

suppress(*exception_classes) {|| ...}

Blocks and ignores any exception passed as argument if raised within the block.

      suppress(ZeroDivisionError) do
        1/0
        puts "This code is NOT reached"
      end

      puts "This code gets executed and nothing related to ZeroDivisionError was seen"

[Validate]