Sha256: 936c345486673fbe92bc85b1f06af30d86d6556a7b95a683c9ae8e66fa6d6d4a
Contents?: true
Size: 871 Bytes
Versions: 4
Compression:
Stored size: 871 Bytes
Contents
require 'refinements/string_refinements' module Dolly module DocumentType using StringRefinements def namespace_keys(keys) keys.map { |key| namespace_key key } end def namespace_key(key) return key if key =~ %r{^#{name_paramitized}/} "#{name_paramitized}/#{key}" end def base_id self.id.sub(%r{^#{name_paramitized}/}, '') end def name_paramitized class_name.split("::").last.underscore end def class_name is_a?(Class) ? name : self.class.name end def typed? respond_to?(:type) end def set_type return unless typed? write_attribute(:type, name_paramitized) end def self.included(base) base.extend(ClassMethods) end module ClassMethods def typed_model property :type, class_name: String end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
dolly-3.1.2 | lib/dolly/document_type.rb |
dolly-3.1.1 | lib/dolly/document_type.rb |
dolly-3.1.0 | lib/dolly/document_type.rb |
dolly-3.0.1 | lib/dolly/document_type.rb |