Sha256: a5c3e0762d66fd61c093fa3dffb606b431b90bde65e56cd7394e5b752275e82b
Contents?: true
Size: 1.48 KB
Versions: 2
Compression:
Stored size: 1.48 KB
Contents
require 'scout/annotation' require_relative 'entity/format' require_relative 'entity/property' require_relative 'entity/object' require_relative 'entity/identifiers' require_relative 'entity/named_array' module Entity def self.extended(base) base.extend Annotation base.extend Entity::Property base.instance_variable_set(:@properties, []) base.instance_variable_set(:@persisted_methods, {}) base.include Entity::Object base.include AnnotatedArray base.format = base.to_s base end def self.prepare_entity(entity, field, options = {}) return entity unless defined? Entity return entity unless String === entity or Array === entity or Numeric === entity if Entity === field or (Entity.respond_to?(:formats) and (_format = Entity.formats.find(field))) options ||= {} dup_array = options.delete :dup_array params = options.dup params[:format] ||= params.delete "format" params.merge!(:format => _format) unless _format.nil? or (params.include?(:format) and not ((f = params[:format]).nil? or (String === f and f.empty?))) mod = Entity === field ? field : Entity.formats[field] entity = entity.dup entity = (entity.frozen? and not entity.nil?) ? entity.dup : ((Array === entity and dup_array) ? entity.collect{|e| e.nil? ? e : e.dup} : entity) entity = mod.setup(entity, params) entity.extend AnnotatedArray if Array === entity && ! options[:annotated_array] == FalseClass end entity end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
scout-gear-10.7.3 | lib/scout/entity.rb |
scout-gear-10.7.2 | lib/scout/entity.rb |