module ArDocStore::Storage::ClassMethods

Public Instance Methods

json_attribute(name, *args) click to toggle source
# File lib/ar_doc_store/storage.rb, line 15
def json_attribute(name, *args)
  type = args.shift if args.first.is_a?(Symbol)
  options = args.extract_options!
  type ||= options.delete(:as) || :string
  class_name = ArDocStore.mappings[type] || "ArDocStore::Attributes::#{type.to_s.classify}"
  raise "Invalid attribute type: #{class_name}" unless const_defined?(class_name)

  json_attributes[name] = class_name.constantize.build self, name, options
end