Sha256: 30f826149329a2319b65813c37e254fb0dfcdcd66574724d7ff5d436d19ba999
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
require 'date' require 'time' require 'bigdecimal' require 'bigdecimal/util' # Base module which adds Attribute API to your classes module Virtus # Represents an undefined parameter used by auto-generated option methods Undefined = Object.new.freeze # Extends base class with class and instance methods # # @param [Class] base # # @return [Class] # # @api private def self.included(base) base.extend(DescendantsTracker) base.extend(ClassMethods) base.send(:include, InstanceMethods) end # Returns a Virtus::Attribute::Object sub-class based on a name or class # # @example # Virtus.determine_type('String') # => Virtus::Attribute::String # # @param [Class,String] class_or_name # name of a class or a class itself # # @return [Class] # one of the Virtus::Attribute::Object sub-class # # @api semipublic def self.determine_type(class_or_name) if class_or_name.kind_of?(Class) if class_or_name < Attribute::Object class_or_name else Attribute.descendants.detect do |descendant| class_or_name <= descendant.primitive end end elsif Attribute.const_defined?(name = class_or_name.to_s) Attribute.const_get(name) end end end # module Virtus require 'virtus/support/descendants_tracker' require 'virtus/class_methods' require 'virtus/instance_methods' require 'virtus/attribute_set' require 'virtus/typecast/boolean' require 'virtus/typecast/numeric' require 'virtus/typecast/string' require 'virtus/typecast/time' require 'virtus/attribute' require 'virtus/attribute/object' require 'virtus/attribute/array' require 'virtus/attribute/boolean' require 'virtus/attribute/date' require 'virtus/attribute/date_time' require 'virtus/attribute/numeric' require 'virtus/attribute/decimal' require 'virtus/attribute/float' require 'virtus/attribute/hash' require 'virtus/attribute/integer' require 'virtus/attribute/string' require 'virtus/attribute/time'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
virtus-0.0.4 | lib/virtus.rb |