class Composable::Core::ComposableDSL::Composable::Sync

Attributes

conditions[R]
from[R]
to[R]

Public Class Methods

new(from:) click to toggle source
# File lib/composable/core/composable_dsl.rb, line 143
def initialize(from:)
  @from = from.to_sym
  @conditions = Conditions.new
end

Public Instance Methods

initialize_copy(original_object) click to toggle source
# File lib/composable/core/composable_dsl.rb, line 148
def initialize_copy(original_object)
  @conditions = original_object.conditions.deep_dup
end
merge(to:, **options) click to toggle source
# File lib/composable/core/composable_dsl.rb, line 152
def merge(to:, **options)
  @to = to.to_sym

  conditions.merge(**options)
end
sync(form, record, reverse: false) click to toggle source
# File lib/composable/core/composable_dsl.rb, line 158
def sync(form, record, reverse: false)
  if reverse
    form.send("#{from}=", record.send(to))
  else
    value = form.send(from)
    record.send("#{to}=", value) if conditions.valid?(form, record)
  end
end