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



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



63
64
65
# File 'lib/formwandler/field.rb', line 63

def array?
  field_definition.array
end

#defaultObject



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

def default
  _evaluate_field_definition_value(:default)
end

#default?Boolean



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

def default?
  !field_definition.default.nil?
end

#delocalizeObject



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

def delocalize
  _evaluate_field_definition_value(:delocalize)
end

#disabled?Boolean



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

def disabled?
  _evaluate_field_definition_value(:disabled)
end

#hidden?Boolean



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

def hidden?
  _evaluate_field_definition_value(:hidden)
end

#optionsObject



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

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

#readonly?Boolean



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

def readonly?
  _evaluate_field_definition_value(:readonly)
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



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

def visible?
  !hidden?
end