module Ciesta::ClassMethods

Public Instance Methods

definitions() click to toggle source

Returns fields definitions

@api private @return [Ciesta::FieldList]

# File lib/ciesta/class_methods.rb, line 31
def definitions
  @definitions ||= {}
end
field(name, **options) click to toggle source

Declare new form field

@param [Symbol] name Field name @param [Hash] options Options @option (see Ciesta::Field)

# File lib/ciesta/class_methods.rb, line 10
def field(name, **options)
  name = name.to_sym
  definitions[name] = options
  proxy.instance_eval do
    define_method(name) { fields[name] }
    define_method("#{name}=") { |value| fields[name] = value }
  end
end
proxy() click to toggle source
# File lib/ciesta/class_methods.rb, line 43
def proxy
  @proxy ||= begin
    m = Module.new
    include m
    m
  end
end
validate(&block) click to toggle source

Declare rules for validation

@param [Block] block Block with validation rules @see dry-rb.org/gems/dry-validation

# File lib/ciesta/class_methods.rb, line 23
def validate(&block)
  validator.use(&block)
end
validator() click to toggle source

Returns form validator

@api private @return [Ciesta::Validator]

# File lib/ciesta/class_methods.rb, line 39
def validator
  @validator ||= Ciesta::Validator.new
end