module Virtus::Extensions::Methods
Private Class Methods
extended(descendant)
click to toggle source
@api private
Calls superclass method
# File lib/virtus/extensions.rb, line 30 def self.extended(descendant) super descendant.extend(AttributeSet.create(descendant)) end
Public Instance Methods
attribute(name, type = nil, options = {})
click to toggle source
Defines an attribute on an object's class or instance
@example
class Book include Virtus.model attribute :title, String attribute :author, String attribute :published_at, DateTime attribute :page_count, Integer attribute :index # defaults to Object end
@param [Symbol] name
the name of an attribute
@param [Class,Array,Hash,Axiom::Types::Type,String,Symbol] type
the type class of an attribute
@param [#to_hash] options
the extra options hash
@return [self]
@api public
# File lib/virtus/extensions.rb, line 63 def attribute(name, type = nil, options = {}) assert_valid_name(name) attribute_set << Attribute.build(type, options.merge(:name => name)) self end
values() { || ... }
click to toggle source
@see Virtus.default_value
@api public
# File lib/virtus/extensions.rb, line 72 def values(&block) private :attributes= if instance_methods.include?(:attributes=) yield include(::Equalizer.new(*attribute_set.map(&:name))) end
Private Instance Methods
attribute_set()
click to toggle source
Return an attribute set for that instance
@return [AttributeSet]
@api private
# File lib/virtus/extensions.rb, line 85 def attribute_set @attribute_set end