Module Virtus
In: lib/virtus/const_missing_extensions.rb
lib/virtus/builder.rb
lib/virtus/class_methods.rb
lib/virtus/attribute/nullify_blank.rb
lib/virtus/attribute/collection.rb
lib/virtus/attribute/accessor.rb
lib/virtus/attribute/builder.rb
lib/virtus/attribute/hash.rb
lib/virtus/attribute/coercer.rb
lib/virtus/attribute/coercible.rb
lib/virtus/attribute/boolean.rb
lib/virtus/attribute/default_value.rb
lib/virtus/attribute/strict.rb
lib/virtus/attribute/lazy_default.rb
lib/virtus/attribute/embedded_value.rb
lib/virtus/attribute/default_value/from_symbol.rb
lib/virtus/attribute/default_value/from_clonable.rb
lib/virtus/attribute/default_value/from_callable.rb
lib/virtus/extensions.rb
lib/virtus/configuration.rb
lib/virtus/builder/hook_context.rb
lib/virtus/value_object.rb
lib/virtus/instance_methods.rb
lib/virtus/module_extensions.rb
lib/virtus/coercer.rb
lib/virtus/attribute_set.rb
lib/virtus/model.rb
lib/virtus/attribute.rb
lib/virtus/class_inclusions.rb
lib/virtus/version.rb
lib/virtus/support/options.rb
lib/virtus/support/type_lookup.rb
lib/virtus/support/equalizer.rb
lib/virtus.rb

Base module which adds Attribute API to your classes

Methods

Classes and Modules

Module Virtus::ClassInclusions
Module Virtus::ClassMethods
Module Virtus::ConstMissingExtensions
Module Virtus::Extensions
Module Virtus::InstanceMethods
Module Virtus::Model
Module Virtus::ModuleExtensions
Module Virtus::Options
Module Virtus::TypeLookup
Module Virtus::ValueObject
Class Virtus::Attribute
Class Virtus::AttributeSet
Class Virtus::Builder
Class Virtus::Coercer
Class Virtus::CoercionError
Class Virtus::Configuration
Class Virtus::Equalizer
Class Virtus::ModelBuilder
Class Virtus::ModuleBuilder
Class Virtus::PendingAttribute
Class Virtus::TypeDefinition
Class Virtus::ValueObjectBuilder

Constants

VERSION = '1.0.5'.freeze
EXTRA_CONST_ARGS = (RUBY_VERSION < '1.9' ? [] : [ false ]).freeze   Provides args for const_get and const_defined? to make them behave consistently across different versions of ruby
Undefined = Object.new.freeze   Represents an undefined parameter used by auto-generated option methods

Public Class methods

Returns the global coercion setting

@return [Boolean]

@api public

Sets the global coercion configuration value

@param [Boolean] value

@return [Virtus]

@api public

Sets the global coercer configuration

@example

  Virtus.coercer do |config|
    config.string.boolean_map = { true => '1', false => '0' }
  end

@return [Coercible::Coercer]

@api public

Provides access to the global Virtus configuration

@example

  Virtus.config do |config|
    config.coerce = false
  end

@return [Configuration]

@api public

Global configuration instance

@ return [Configuration]

@api private

Finalize pending attributes

@example

  class User
    include Virtus.model(:finalize => false)

    attribute :address, 'Address'
  end

  class Address
    include Virtus.model(:finalize => false)

    attribute :user, 'User'
  end

  Virtus.finalize # this will resolve constant names

@return [Array] array of finalized models

@api public

Provides access to the Virtus module builder see Virtus::ModuleBuilder

@example

  MyVirtusModule = Virtus.module { |mod|
    mod.coerce = true
    mod.string.boolean_map = { 'yup' => true, 'nope' => false }
  }

 class Book
   include MyVirtusModule

   attribute :published, Boolean
 end

 # This could be made more succinct as well
 class OtherBook
   include Virtus.module { |m| m.coerce = false }
 end

@return [Module]

@api public

Builds a module for...modules

@example

  module Common
    include Virtus.module

    attribute :name, String
    attribute :age,  Integer
  end

  class User
    include Common
  end

  class Admin
    include Common
  end

@return [Module]

@api public

Builds a module for value object models

@example

  class GeoLocation
    include Virtus.value_object

    values do
      attribute :lat, Float
      attribute :lng, Float
    end
  end

@return [Module]

@api public

@api private

Public Instance methods

@api public

Coerce members

@see [Attribute#coerce]

@api public

@api private

@api private

@api private

@api private

[Validate]