Sha256: ae84be4d0ba9845a30c249843abca110d8714a7dc9cd0d1e0209813663f008b7

Contents?: true

Size: 924 Bytes

Versions: 6

Compression:

Stored size: 924 Bytes

Contents

module Acfs::Model

  # Initialization drop-in for pre-4.0 ActiveModel.
  #
  module Initialization

    # Initializes a new model with the given +params+.
    #
    #   class User
    #     include Acfs::Model
    #     attribute :name
    #     attribute :email, default: -> { "#{name}@dom.tld" }
    #     attribute :age, :integer, default: 18
    #   end
    #
    #   user = User.new(name: 'bob')
    #   user.name  # => "bob"
    #   user.email # => "bob@dom.tld"
    #   user.age   # => 18
    #
    def initialize(params={})
      params.each do |attr, value|
        self.public_send("#{attr}=", value)
      end if params
    end

    # Indicates if the model is persisted. Default is +false+.
    #
    #  class User
    #    include Acfs::Model
    #    attribute :name
    #  end
    #
    #  user = User.new(name: 'bob')
    #  user.persisted? # => false
    #
    def persisted?
      false
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
acfs-0.7.0 lib/acfs/model/initialization.rb
acfs-0.6.0 lib/acfs/model/initialization.rb
acfs-0.5.1 lib/acfs/model/initialization.rb
acfs-0.5.0 lib/acfs/model/initialization.rb
acfs-0.4.0 lib/acfs/model/initialization.rb
acfs-0.3.0 lib/acfs/model/initialization.rb