Method: Engine2::TypeInfo#define_field

Defined in:
lib/engine2/type_info.rb

#define_field(field, type) {|info| ... } ⇒ Object

Yields:

  • (info)

Raises:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/engine2/type_info.rb', line 12

def define_field field, type
    info = @info[field]
    raise E2Error.new("Field '#{field}' already defined in model '#{@model}'") if info && info[:type]

    unless info
        @info[field] = info = {dummy: true}
        @model.dummies << field
    end

    info.merge!({
        name: field,
        otype: type,
        type: type,
        validations: {}
    })
    yield info
end