Class: Formwandler::Field

Inherits:
Object
  • Object
show all
Defined in:
lib/formwandler/field.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(form:, field_definition:) ⇒ Field

Returns a new instance of Field.



9
10
11
12
# File 'lib/formwandler/field.rb', line 9

def initialize(form:, field_definition:)
  @form = form
  @field_definition = field_definition
end

Instance Attribute Details

#field_definitionObject (readonly)

Returns the value of attribute field_definition.



5
6
7
# File 'lib/formwandler/field.rb', line 5

def field_definition
  @field_definition
end

#formObject (readonly)

Returns the value of attribute form.



5
6
7
# File 'lib/formwandler/field.rb', line 5

def form
  @form
end

Instance Method Details

#array?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/formwandler/field.rb', line 59

def array?
  field_definition.array
end

#defaultObject



51
52
53
# File 'lib/formwandler/field.rb', line 51

def default
  _evaluate_field_definition_value(:default)
end

#default?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/formwandler/field.rb', line 47

def default?
  !field_definition.default.nil?
end

#delocalizeObject



55
56
57
# File 'lib/formwandler/field.rb', line 55

def delocalize
  _evaluate_field_definition_value(:delocalize)
end

#disabled?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/formwandler/field.rb', line 39

def disabled?
  _evaluate_field_definition_value(:disabled)
end

#hidden?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/formwandler/field.rb', line 31

def hidden?
  _evaluate_field_definition_value(:hidden)
end

#optionsObject



43
44
45
# File 'lib/formwandler/field.rb', line 43

def options
  all_options - hidden_options
end

#raw_valueObject



27
28
29
# File 'lib/formwandler/field.rb', line 27

def raw_value
  model_instance ? model_instance.public_send(field_definition.source) : @value
end

#valueObject



23
24
25
# File 'lib/formwandler/field.rb', line 23

def value
  transform_value(raw_value, field_definition.out_transformation)
end

#value=(new_value) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/formwandler/field.rb', line 14

def value=(new_value)
  new_value = transform_value(new_value, field_definition.in_transformation)
  if model_instance
    model_instance.public_send("#{field_definition.source}=", new_value)
  else
    @value = new_value
  end
end

#visible?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/formwandler/field.rb', line 35

def visible?
  !hidden?
end