class RailsFormObject::Base

Public Class Methods

as(name) click to toggle source
# File lib/rails_form_object/base.rb, line 15
def self.as(name)
  define_method :model_name do
    ActiveModel::Name.new(self, nil, name.to_s)
  end
end
attributes(*attr) click to toggle source
# File lib/rails_form_object/base.rb, line 10
def self.attributes(*attr)
  attr_accessor(*attr)
  define_method(:stored_attributes) { attr }
end
new(attributes) click to toggle source
Calls superclass method
# File lib/rails_form_object/base.rb, line 26
def initialize(attributes)
  super(filtered_attributes(attributes))
end

Public Instance Methods

filtered_attributes(attributes) click to toggle source
# File lib/rails_form_object/base.rb, line 21
def filtered_attributes(attributes)
  raise AttributesMustBeDefined unless respond_to? :stored_attributes
  attributes.select { |key, _value| stored_attributes.include?(key.to_sym) }
end