Module: ROM::Model::Attributes

Defined in:
lib/rom/model/attributes.rb

Overview

Mixin for validatable and coercible parameters

Examples:


class UserAttributes
  include ROM::Model::Attributes

  attribute :email, String
  attribute :age, Integer

  validates :email, :age, presence: true
end

user_attrs = UserAttributes.new(email: '', age: '18')

user_attrs.email # => ''
user_attrs.age # => 18

user_attrs.valid? # => false
user_attrs.errors # => #<ActiveModel::Errors:0x007fd2423fadb0 ...>

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VirtusModel =
Virtus.model(nullify_blank: true)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Inclusion hook used to extend a class with required interfaces



34
35
36
37
38
39
40
# File 'lib/rom/model/attributes.rb', line 34

def self.included(base)
  base.class_eval do
    include VirtusModel
    include ActiveModel::Conversion
  end
  base.extend(ClassMethods)
end

Instance Method Details

#model_nameActiveModel::Name

Return model name for the attributes class

The model name object is configurable using ‘set_model_name` macro

Returns:

  • (ActiveModel::Name)

See Also:



51
52
53
# File 'lib/rom/model/attributes.rb', line 51

def model_name
  self.class.model_name
end