Sha256: fbc788430bca270c6fe187c010940a9a8fc88feba87b598d074e028fdf0ba880
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module ActiveData class Config include Singleton attr_accessor :include_root_in_json, :i18n_scope, :logger, :primary_attribute, :_normalizers, :_typecasters def self.delegated public_instance_methods - superclass.public_instance_methods - Singleton.public_instance_methods end def initialize @include_root_in_json = false @i18n_scope = :active_data @logger = Logger.new(STDERR) @primary_attribute = :id @_normalizers = {} @_typecasters = {} end def normalizer name, &block if block _normalizers[name.to_sym] = block else _normalizers[name.to_sym] or raise NormalizerMissing.new(name) end end def typecaster *classes, &block classes = classes.flatten if block _typecasters[classes.first.to_s.camelize] = block else _typecasters[classes.detect do |klass| _typecasters[klass.to_s.camelize] end.to_s.camelize] or raise TypecasterMissing.new(*classes) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_data-1.0.0 | lib/active_data/config.rb |