Sha256: 0d68b2d5fb4c0b3900a27cc138f02254a30e1169dbf354a661aa7ec03803a0bc
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module RailsEdgeTest::Dsl Action = Struct.new(:name, :controller) do def initialize(*args) super @edges = {} @let_handler = LetHandler.new end delegate :controller_class, to: :controller def edge(description, &block) edge = Edge.new(description, self) @edges[edge] = block end def let(title, &block) @let_handler.add_definition(title, &block) end def generate(title, &block) @let_handler.add_definition("generate_#{title}", &block) end def __edges @edges end def __let_handler @let_handler end # support calling methods defined in controller def method_missing(method_name, *arguments, &block) if controller.respond_to?(method_name) controller.public_send(method_name, *arguments, &block) else super end end # always define respond_to_missing? when defining method_missing: # https://thoughtbot.com/blog/always-define-respond-to-missing-when-overriding def respond_to_missing?(method_name, include_private = false) controller.respond_to?(method_name) || super end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_edge_test-1.2.0 | lib/rails_edge_test/dsl/action.rb |