Sha256: ff98e73108cba806806df35873d913334446d058414c27539e8d90b70d441732
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module ObjectAttorney module ExposedData def exposed_data self.class.exposed_getters.reduce({}) do |data, getter| data[getter] = send(getter) data end end def to_json(options = {}) exposed_data.to_json end def self.included(base) base.extend(ClassMethods) end module ClassMethods def exposed_getters return @exposed_getters if defined?(@exposed_getters) @exposed_getters = zuper_method(:exposed_getters) @exposed_getters ||= represented_object_class.present? && represented_object_class.method_defined?(:id) ? [:id] : [] end def add_exposed_getters(*getters) exposed_getters.push(*getters) unless exposed_getters.include?(getters) end def exposed_setters @exposed_setters ||= (zuper_method(:exposed_setters) || []) end def add_exposed_setters(*setters) exposed_setters.push(*setters) unless exposed_setters.include?(setters) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
object_attorney-2.8.1 | lib/object_attorney/exposed_data.rb |