def to_json(*args)
options = args.first || {}
result = '{ '
fields = []
propset = properties_to_serialize(options)
fields += propset.map do |property|
"#{property.name.to_json}: #{send(property.getter).to_json}"
end
(options[:methods] || []).each do |meth|
if self.respond_to?(meth)
fields << "#{meth.to_json}: #{send(meth).to_json}"
end
end
(options[:relationships] || {}).each do |rel,opts|
if self.respond_to?(rel)
fields << "#{rel.to_json}: #{send(rel).to_json(opts)}"
end
end
result << fields.join(', ')
result << ' }'
result
end