module RailsEdgeTest::Dsl

Constants

Action
Controller
Edge

Public Class Methods

add(controller) click to toggle source
# File lib/rails_edge_test/dsl.rb, line 48
def add(controller)
  @controllers << controller
end
execute!() click to toggle source
# File lib/rails_edge_test/dsl.rb, line 14
def execute!
  printer = RailsEdgeTest.configuration.printer.new
  printer.begin_suite

  RailsEdgeTest.configuration.wrap_suite_execution do

    @controllers.each do |controller|
      printer.begin_controller(controller)

      controller.__actions.each do |action|
        printer.begin_action(action)

        action.__edges.each do |edge, block|
          printer.begin_edge(edge)

          RailsEdgeTest.configuration.wrap_edge_execution do
            define_lets(edge, controller.__let_handler)
            define_lets(edge, action.__let_handler)
            edge.instance_exec(&block)
          end

          printer.end_edge
        end

        printer.end_action
      end

      printer.end_controller
    end

  end
  printer.end_suite
end
reset!() click to toggle source
# File lib/rails_edge_test/dsl.rb, line 10
def reset!
  @controllers = []
end

Private Class Methods

define_lets(edge, lets_handler) click to toggle source
# File lib/rails_edge_test/dsl.rb, line 54
def define_lets(edge, lets_handler)
  lets_handler.let_blocks.each do |title, block|
    edge.define_singleton_method(title) do
      @let_cache[title] ||= instance_eval(&block)
    end
  end
end

Public Instance Methods

controller(controller_class, &block) click to toggle source
# File lib/rails_edge_test/dsl.rb, line 3
def controller(controller_class, &block)
  controller = RailsEdgeTest::Dsl::Controller.new(controller_class)
  controller.instance_exec(&block)
  Dsl.add(controller)
end