Files

Virtus

Base module which adds Attribute API to your classes

Constants

EXTRA_CONST_ARGS

Provides args for const_get and const_defined? to make them behave consistently across different versions of ruby

Undefined

Represents an undefined parameter used by auto-generated option methods

VERSION

Public Class Methods

coerce() click to toggle source

Returns the global coercion setting

@return [Boolean]

@api public

# File lib/virtus.rb, line 89
def self.coerce
  configuration.coerce
end
coerce=(value) click to toggle source

Sets the global coercion configuration value

@param [Boolean] value

@return [Virtus]

@api public

# File lib/virtus.rb, line 79
def self.coerce=(value)
  configuration.coerce = value
  self
end
coercer(&block) click to toggle source

Sets the global coercer configuration

@example

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

@return [Coercible::Coercer]

@api public

# File lib/virtus.rb, line 68
def self.coercer(&block)
  configuration.coercer(&block)
end
config(&block) click to toggle source

Provides access to the global Virtus configuration

@example

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

@return [Configuration]

@api public

# File lib/virtus.rb, line 103
def self.config(&block)
  configuration.call(&block)
end
configuration() click to toggle source

Global configuration instance

@ return [Configuration]

@api private

# File lib/virtus.rb, line 185
def self.configuration
  @configuration ||= Configuration.new
end
finalize() click to toggle source

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

# File lib/virtus.rb, line 209
def self.finalize
  Builder.pending.each do |klass|
    klass.attribute_set.finalize
  end
end
model(options = {}, &block) click to toggle source

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

# File lib/virtus.rb, line 130
def self.model(options = {}, &block)
  ModelBuilder.call(options, &block)
end
module(options = {}, &block) click to toggle source

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

# File lib/virtus.rb, line 156
def self.module(options = {}, &block)
  ModuleBuilder.call(options, &block)
end
value_object(options = {}, &block) click to toggle source

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

# File lib/virtus.rb, line 176
def self.value_object(options = {}, &block)
  ValueObjectBuilder.call(options, &block)
end
warn(msg) click to toggle source

@api private

# File lib/virtus.rb, line 216
def self.warn(msg)
  Kernel.warn(msg)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.