module Couchbase::Model::ComplexAttributes::ClassMethods
Public Instance Methods
array_attribute(*names)
click to toggle source
# File lib/couchbase/model/complex_attributes.rb, line 7 def array_attribute(*names) options = names.extract_options! class_name = options.delete(:class_name) names.each do |name| name = name.to_s (@_array_attributes ||= {})[name] = class_name attribute name, {default: proc { [] }}.merge(options) define_method("#{name}=") do |values| actual_values = values.map do |value| if value.is_a?(String) && value =~ /json_class/ JSON.load value else value end end write_attribute name, actual_values end end end
array_attribute_class(name)
click to toggle source
# File lib/couchbase/model/complex_attributes.rb, line 32 def array_attribute_class(name) @_array_attributes[name.to_s] end