Sha256: 6cdc6c80c1233a514e741acba10338e693b8bc605fc9d8ff5bf2487e9cdba85c

Contents?: true

Size: 1.88 KB

Versions: 29

Compression:

Stored size: 1.88 KB

Contents

require 'native'

# Manipulate the browser console.
#
# @see https://developer.mozilla.org/en-US/docs/Web/API/console
class Console
  include Native

  # Clear the console.
  def clear
    `#@native.clear()`
  end

  # Print a stacktrace from the call site.
  def trace
    `#@native.trace()`
  end

  # Log the passed objects based on an optional initial format.
  def log(*args)
    `#@native.log.apply(#@native, args)`
  end

  # Log the passed objects based on an optional initial format as informational
  # log.
  def info(*args)
    `#@native.info.apply(#@native, args)`
  end

  # Log the passed objects based on an optional initial format as warning.
  def warn(*args)
    `#@native.warn.apply(#@native, args)`
  end

  # Log the passed objects based on an optional initial format as error.
  def error(*args)
    `#@native.error.apply(#@native, args)`
  end

  # Time the given block with the given label.
  def time(label, &block)
    raise ArgumentError, "no block given" unless block

    `#@native.time(label)`

    begin
      if block.arity == 0
        instance_exec(&block)
      else
        block.call(self)
      end
    ensure
      `#@native.timeEnd()`
    end
  end

  # Group the given block.
  def group(*args, &block)
    raise ArgumentError, "no block given" unless block

    `#@native.group.apply(#@native, args)`

    begin
      if block.arity == 0
        instance_exec(&block)
      else
        block.call(self)
      end
    ensure
      `#@native.groupEnd()`
    end
  end

  # Group the given block but collapse it.
  def group!(*args, &block)
    return unless block_given?

    `#@native.groupCollapsed.apply(#@native, args)`

    begin
      if block.arity == 0
        instance_exec(&block)
      else
        block.call(self)
      end
    ensure
      `#@native.groupEnd()`
    end
  end
end

if defined?(`Opal.global.console`)
  $console = Console.new(`Opal.global.console`)
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
opal-0.11.4 stdlib/console.rb
opal-0.11.3 stdlib/console.rb
opal-0.11.2 stdlib/console.rb
opal-0.11.1 stdlib/console.rb
opal-0.11.1.pre stdlib/console.rb
opal-0.10.6 stdlib/console.rb
opal-0.10.6.beta stdlib/console.rb
opal-0.11.0 stdlib/console.rb
opal-0.10.5 stdlib/console.rb
opal-0.10.4 stdlib/console.rb
opal-0.11.0.rc1 stdlib/console.rb
opal-0.10.3 stdlib/console.rb
opal-0.10.2 stdlib/console.rb
opal-0.10.1 stdlib/console.rb
opal-0.10.0 stdlib/console.rb
opal-0.10.0.rc2 stdlib/console.rb
opal-0.9.4 stdlib/console.rb
opal-0.9.3 stdlib/console.rb
opal-0.10.0.rc1 stdlib/console.rb
opal-0.10.0.beta5 stdlib/console.rb