Module: Reform::Form::Validate::Populator

Defined in:
lib/reform/form/validate.rb

Defined Under Namespace

Classes: PopulateIfEmpty

Instance Method Summary collapse

Instance Method Details

#from_hash(params, *args) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/reform/form/validate.rb', line 56

def from_hash(params, *args)
  populated_attrs = []

  nested_forms do |attr|
    next unless attr[:populate_if_empty]

    attr.merge!(
      # DISCUSS: it would be cool to move the lambda block to PopulateIfEmpty#call.
      :populator => lambda do |fragment, *args|
        PopulateIfEmpty.new(self, fragment, args).call
      end
    )
  end


  nested_forms do |attr|
    next unless attr[:populator]

    attr.merge!(
      :parse_strategy => attr[:populator],
      :representable  => false
      )
    populated_attrs << attr.name.to_sym
  end

  super(params, {:include => populated_attrs})
end