Class: FiForm::Item

Inherits:
Struct
  • Object
show all
Defined in:
lib/fi_form/item.rb

Direct Known Subclasses

Form, Input

Defined Under Namespace

Classes: Form, Input

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Item

Returns a new instance of Item.



31
32
33
34
35
36
37
38
39
40
# File 'lib/fi_form/item.rb', line 31

def initialize(*args)
  super
  @form = self.options.delete(:form)

  @resource = if self.options.key? :resource
    self.options.delete(:resource)
  else
    @form.resource
  end
end

Instance Attribute Details

#fieldObject (readonly)

Returns the value of attribute field.



29
30
31
# File 'lib/fi_form/item.rb', line 29

def field
  @field
end

#formObject (readonly)

Returns the value of attribute form.



29
30
31
# File 'lib/fi_form/item.rb', line 29

def form
  @form
end

#kindObject

Returns the value of attribute kind

Returns:

  • (Object)

    the current value of kind



1
2
3
# File 'lib/fi_form/item.rb', line 1

def kind
  @kind
end

#optionsObject

Returns the value of attribute options

Returns:

  • (Object)

    the current value of options



1
2
3
# File 'lib/fi_form/item.rb', line 1

def options
  @options
end

#resourceObject (readonly) Also known as: object

Returns the value of attribute resource.



29
30
31
# File 'lib/fi_form/item.rb', line 29

def resource
  @resource
end

Class Method Details

.build(kind, options) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/fi_form/item.rb', line 18

def self.build(kind, options)
  case kind
  when :input
    Input
  when :form
    Form
  else
    self
  end.new(kind, options)
end

Instance Method Details

#<<(item) ⇒ Object



63
64
65
66
# File 'lib/fi_form/item.rb', line 63

def <<(item)
  self.options[:items] ||= []
  self.options[:items] << item
end

#add_items(items) ⇒ Object



68
69
70
# File 'lib/fi_form/item.rb', line 68

def add_items(items)
  self.options[:items] += items
end

#as_json(*args) ⇒ Object



76
77
78
# File 'lib/fi_form/item.rb', line 76

def as_json(*args)
  super(except: :resource)
end

#errorsObject



42
43
44
# File 'lib/fi_form/item.rb', line 42

def errors
  self.options.fetch(:errors)
end

#inputObject



59
60
61
# File 'lib/fi_form/item.rb', line 59

def input
  self.options&.dig(:input)
end

#itemsObject Also known as: children



46
47
48
# File 'lib/fi_form/item.rb', line 46

def items
  self.options&.dig(:items) || []
end

#last_childObject



72
73
74
# File 'lib/fi_form/item.rb', line 72

def last_child
  self.options[:items].last
end

#valueObject



55
56
57
# File 'lib/fi_form/item.rb', line 55

def value
  self.options.fetch(:value)
end