Sha256: 6dfd7340ec5d5073ea1be1e6def6f1b90f15a50e3c847db2c07effc52631c15d

Contents?: true

Size: 1.77 KB

Versions: 6

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

module ActiveModel
  # = Active \Model \Basic \Model
  #
  # Allows implementing models similar to ActiveRecord::Base.
  # Includes ActiveModel::API for the required interface for an
  # object to interact with Action Pack and Action View, but can be
  # extended with other functionalities.
  #
  # A minimal implementation could be:
  #
  #   class Person
  #     include ActiveModel::Model
  #     attr_accessor :name, :age
  #   end
  #
  #   person = Person.new(name: 'bob', age: '18')
  #   person.name # => "bob"
  #   person.age  # => "18"
  #
  # If for some reason you need to run code on <tt>initialize</tt>, make
  # sure you call +super+ if you want the attributes hash initialization to
  # happen.
  #
  #   class Person
  #     include ActiveModel::Model
  #     attr_accessor :id, :name, :omg
  #
  #     def initialize(attributes={})
  #       super
  #       @omg ||= true
  #     end
  #   end
  #
  #   person = Person.new(id: 1, name: 'bob')
  #   person.omg # => true
  #
  # For more detailed information on other functionalities available, please
  # refer to the specific modules included in +ActiveModel::Model+
  # (see below).
  module Model
    extend ActiveSupport::Concern
    include ActiveModel::API
    include ActiveModel::Access

    ##
    # :method: slice
    #
    # :call-seq: slice(*methods)
    #
    # Returns a hash of the given methods with their names as keys and returned
    # values as values.
    #
    #--
    # Implemented by ActiveModel::Access#slice.

    ##
    # :method: values_at
    #
    # :call-seq: values_at(*methods)
    #
    # Returns an array of the values returned by the given methods.
    #
    #--
    # Implemented by ActiveModel::Access#values_at.
  end

  ActiveSupport.run_load_hooks(:active_model, Model)
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
activemodel-7.1.2 lib/active_model/model.rb
activemodel-7.1.1 lib/active_model/model.rb
activemodel-7.1.0 lib/active_model/model.rb
activemodel-7.1.0.rc2 lib/active_model/model.rb
activemodel-7.1.0.rc1 lib/active_model/model.rb
activemodel-7.1.0.beta1 lib/active_model/model.rb