Sha256: be41573c18de62204538df771951c331c63da7e0c4378559a290c42499db34bf

Contents?: true

Size: 847 Bytes

Versions: 2

Compression:

Stored size: 847 Bytes

Contents

module Bento
  module Models
    module Modules
      module UserAccessors
        USER_ACCESSORS = [:first_name, :last_name, :email, :password, :password_confirmation]

        def self.included(base)
          base.class_eval do
            include ::Bento::Models::Modules::UserAssociation
            attr_accessor *USER_ACCESSORS
            before_validation :build_user, :on => :create

            define_method("build_user") do
              user_attributes = USER_ACCESSORS.inject({}) { |h, key| h.merge(key => send(key)) }
              if user_attributes.values.any?
                @user ||= users.build(user_attributes)
                @user.tap(&:valid?).errors.each { |attribute, message| errors.add(attribute, message) }
                @user
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bento-0.0.3 lib/bento/models/modules/user_accessors.rb
bento-0.0.2 lib/bento/models/modules/user_accessors.rb