module RSpec::Roda::Plugin::ClassInterface

Class interface for plugin specs.

Public Instance Methods

extended(child) click to toggle source

@param [Module] child

Calls superclass method
# File lib/rspec/roda.rb, line 37
def extended(child)
  super(child)
  roda
end
roda(plugin = metadata[:name], &block) click to toggle source

@param [Symbol] plugin @param [Proc] block

# File lib/rspec/roda.rb, line 44
def roda(plugin = metadata[:name], &block)
  let(:_roda_class) do
    route_block = self.route_block
    self.class.const_set(:TestApp, Class.new(::Roda) do
      include ::RSpec::Matchers
      include ::RSpec::Mocks::ExampleMethods

      plugin plugin
      instance_exec(&block) if block
      route { |r| instance_exec(r, &route_block) } if route_block
    end)
  end
end
route(&block) click to toggle source

@param [Proc] block

# File lib/rspec/roda.rb, line 59
def route(&block)
  let(:route_block) { block }
  roda # re-initiate app
end

Private Instance Methods

plugin_name() click to toggle source

@return [Symbol]

# File lib/rspec/roda.rb, line 67
def plugin_name
  @plugin_name ||= metadata[:name] || Inflector.underscore(
    Inflector.demodulize(described_class.name)
  )
end