Module: Virtus
- Defined in:
- lib/virtus.rb,
lib/virtus/model.rb,
lib/virtus/builder.rb,
lib/virtus/coercer.rb,
lib/virtus/version.rb,
lib/virtus/attribute.rb,
lib/virtus/extensions.rb,
lib/virtus/value_object.rb,
lib/virtus/attribute_set.rb,
lib/virtus/class_methods.rb,
lib/virtus/configuration.rb,
lib/virtus/attribute/hash.rb,
lib/virtus/support/options.rb,
lib/virtus/attribute/strict.rb,
lib/virtus/class_inclusions.rb,
lib/virtus/instance_methods.rb,
lib/virtus/attribute/boolean.rb,
lib/virtus/attribute/builder.rb,
lib/virtus/attribute/coercer.rb,
lib/virtus/module_extensions.rb,
lib/virtus/support/equalizer.rb,
lib/virtus/attribute/accessor.rb,
lib/virtus/attribute/coercible.rb,
lib/virtus/support/type_lookup.rb,
lib/virtus/attribute/collection.rb,
lib/virtus/builder/hook_context.rb,
lib/virtus/attribute/lazy_default.rb,
lib/virtus/attribute/default_value.rb,
lib/virtus/attribute/nullify_blank.rb,
lib/virtus/attribute/embedded_value.rb,
lib/virtus/const_missing_extensions.rb,
lib/virtus/attribute/default_value/from_symbol.rb,
lib/virtus/attribute/default_value/from_callable.rb,
lib/virtus/attribute/default_value/from_clonable.rb
Overview
Builds a module for…modules
Defined Under Namespace
Modules: ClassInclusions, ClassMethods, ConstMissingExtensions, Extensions, InstanceMethods, Model, ModuleExtensions, Options, TypeLookup, ValueObject Classes: Attribute, AttributeSet, Builder, Coercer, CoercionError, Configuration, Equalizer, ModelBuilder, ModuleBuilder, PendingAttribute, TypeDefinition, ValueObjectBuilder
Constant Summary collapse
- EXTRA_CONST_ARGS =
(RUBY_VERSION < '1.9' ? [] : [ false ]).freeze
- Undefined =
Object.new.freeze
- VERSION =
'2.0.0'.freeze
Class Method Summary collapse
- .coerce ⇒ Object
- .coerce=(value) ⇒ Object
- .coercer(&block) ⇒ Object
- .config {|configuration| ... } ⇒ Object
-
.configuration ⇒ Object
private
Global configuration instance.
- .constantize(type) ⇒ Object private
-
.finalize ⇒ Array
Finalize pending attributes.
- .inflector ⇒ Object private
- .model(options = {}, &block) ⇒ Object
- .module(options = {}, &block) ⇒ Object
-
.value_object(options = {}, &block) ⇒ Module
Builds a module for value object models.
- .warn(msg) ⇒ Object private
Class Method Details
.coerce ⇒ Object
109 110 111 |
# File 'lib/virtus.rb', line 109 def self.coerce configuration.coerce end |
.coerce=(value) ⇒ Object
99 100 101 102 |
# File 'lib/virtus.rb', line 99 def self.coerce=(value) configuration.coerce = value self end |
.coercer(&block) ⇒ Object
88 89 90 |
# File 'lib/virtus.rb', line 88 def self.coercer(&block) configuration.coercer(&block) end |
.config {|configuration| ... } ⇒ Object
123 124 125 126 |
# File 'lib/virtus.rb', line 123 def self.config(&block) yield configuration if block_given? configuration end |
.configuration ⇒ 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.
Global configuration instance
@ return [Configuration]
206 207 208 |
# File 'lib/virtus.rb', line 206 def self.configuration @configuration ||= Configuration.new end |
.constantize(type) ⇒ 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.
211 212 213 |
# File 'lib/virtus.rb', line 211 def self.constantize(type) inflector.constantize(type) end |
.finalize ⇒ Array
Finalize pending attributes
249 250 251 252 253 |
# File 'lib/virtus.rb', line 249 def self.finalize Builder.pending.each do |klass| klass.attribute_set.finalize end end |
.inflector ⇒ 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.
216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/virtus.rb', line 216 def self.inflector @inflector ||= begin require 'dry/inflector' Dry::Inflector.new rescue LoadError raise( NotImplementedError, 'Virtus needs dry-inflector gem to constantize namespaced constant names' ) end end |
.model(options = {}, &block) ⇒ Object
151 152 153 |
# File 'lib/virtus.rb', line 151 def self.model( = {}, &block) ModelBuilder.call(, &block) end |
.module(options = {}, &block) ⇒ Object
177 178 179 |
# File 'lib/virtus.rb', line 177 def self.module( = {}, &block) ModuleBuilder.call(, &block) end |
.value_object(options = {}, &block) ⇒ Module
Builds a module for value object models
197 198 199 |
# File 'lib/virtus.rb', line 197 def self.value_object( = {}, &block) ValueObjectBuilder.call(, &block) end |
.warn(msg) ⇒ 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.
256 257 258 |
# File 'lib/virtus.rb', line 256 def self.warn(msg) Kernel.warn(msg) end |