class Object

Public Instance Methods

define_attributes_setter_methods(reflection, association) click to toggle source
# File lib/smooth_operator/associations.rb, line 89
def define_attributes_setter_methods(reflection, association)
  define_method("#{association}_attributes=") do |attributes|
    instance_variable_set("@#{association}_attributes", attributes)

    attributes = attributes.values if reflection.has_many?

    internal_data_push(association.to_s, attributes)
  end
end
define_single_association_method(reflection, association) click to toggle source
# File lib/smooth_operator/associations.rb, line 77
def define_single_association_method(reflection, association)
  define_method(association) { internal_data_get(association.to_s) }

  define_method("build_#{association}") do |attributes = {}|
    new_instance = reflection.klass.new(attributes)

    internal_data_push(association, new_instance)

    new_instance
  end
end
parse_options(options, default_options) click to toggle source
# File lib/smooth_operator/associations.rb, line 99
def parse_options(options, default_options)
  options = options.is_a?(Hash) ? options.merge(default_options) : default_options

  if options[:rails_serialization].nil?
    options[:rails_serialization] = rails_serialization
  end

  Helpers.symbolyze_keys(options)
end