class Spectroscope::Example::Scope

Example::Scope is used by Context to create a shared scope for running examples.

Public Class Methods

new(group) click to toggle source

@param [Context] group

# File lib/spectroscope/example.rb, line 182
def initialize(group)
  @_group = group
  extend group.scope
  #include group.scope
  #extend self
  @_let ||= {}
end

Public Instance Methods

pending(message=nil) click to toggle source

@raise [NotImplementedError] Example is a “todo”.

# File lib/spectroscope/example.rb, line 193
def pending(message=nil)
  raise NotImplementedError.new(message)
end
subject() click to toggle source
Calls superclass method
# File lib/spectroscope/example.rb, line 200
def subject
  @_subject ||= (
    if defined?(super)
      super || described_class.new
    else
      described_class.new
    end
  )
end

Private Instance Methods

described_class() click to toggle source

@todo Maybe deprecate. It seems silly.

# File lib/spectroscope/example.rb, line 230
def described_class
  case @_group.subject
  when Class
    @_group.subject
  else
    raise NoMethodError, "undefined method `described_class` for #{self}"
  end
end
method_missing(s, *a, &b) click to toggle source

Handle implicit subject.

# File lib/spectroscope/example.rb, line 215
def method_missing(s, *a, &b)
  subject.__send__(s, *a, &b)  # public_send
end