Module: Formally::Overrides

Defined in:
lib/formally/overrides.rb

Instance Method Summary collapse

Instance Method Details

#fill(data = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/formally/overrides.rb', line 8

def fill data={}
  if data.respond_to?(:permit!)
    # Assume ActionController::Parameters or similar
    # The schema will handle whitelisting allowed attributes
    data = data.permit!.to_h.deep_symbolize_keys
  end

  formally.call data

  if formally.valid?
    super formally.data
  end

  self
end

#initialize(*args) ⇒ Object



3
4
5
6
# File 'lib/formally/overrides.rb', line 3

def initialize *args
  super(*args)
  @formally = self.class.formally.new self
end

#saveObject



24
25
26
27
28
29
30
# File 'lib/formally/overrides.rb', line 24

def save
  return false unless formally.valid?
  formally.transaction do
    super
  end
  true
end

#save!Object



32
33
34
35
36
37
38
39
40
# File 'lib/formally/overrides.rb', line 32

def save!
  unless save
    ex = Formally::Invalid.new
    ex.form   = self
    ex.errors = errors
    raise ex
  end
  true
end