module Trailblazer::Macro::Contract::DSL

Public Class Methods

extended(extender) click to toggle source
# File lib/trailblazer/macro/contract/build.rb, line 43
def self.extended(extender)
  extender.extend(ClassDependencies)
  warn "[Trailblazer] Using `contract do...end` is deprecated. Please use a form class and the Builder( constant: <Form> ) option."
end

Public Instance Methods

contract(name = :default, constant = nil, base: Reform::Form, &block) click to toggle source

This is the class level DSL method.

Op.contract #=> returns contract class
Op.contract do .. end # defines contract
Op.contract CommentForm # copies (and subclasses) external contract.
Op.contract CommentForm do .. end # copies and extends contract.
# File lib/trailblazer/macro/contract/build.rb, line 53
def contract(name = :default, constant = nil, base: Reform::Form, &block)
  heritage.record(:contract, name, constant, &block)

  path, form_class = Trailblazer::DSL::Build.new.(
    {prefix: :contract, class: base, container: self},
    name, constant, block
  )

  self[path] = form_class
end