Module: BBLib::Serializer::ClassMethods
- Defined in:
- lib/bblib/core/mixins/serializer.rb
Instance Method Summary collapse
- #_ancestor_dont_serialize_fields ⇒ Object
- #_ancestor_serialize_fields ⇒ Object
- #_dont_serialize_fields ⇒ Object
- #_serialize_fields ⇒ Object
- #dont_serialize_method(method) ⇒ Object
- #serialize_method(name, method = nil, **opts) ⇒ Object
Instance Method Details
#_ancestor_dont_serialize_fields ⇒ Object
28 29 30 31 32 33 |
# File 'lib/bblib/core/mixins/serializer.rb', line 28 def _ancestor_dont_serialize_fields ancestors.reverse.flat_map do |ancestor| next unless ancestor.respond_to?(:_dont_serialize_fields) && ancestor != self ancestor._dont_serialize_fields end.compact.uniq end |
#_ancestor_serialize_fields ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/bblib/core/mixins/serializer.rb', line 15 def _ancestor_serialize_fields hash = {} ancestors.reverse.map do |ancestor| next unless ancestor.respond_to?(:_serialize_fields) && ancestor != self hash = hash.deep_merge(ancestor._serialize_fields) end hash end |
#_dont_serialize_fields ⇒ Object
24 25 26 |
# File 'lib/bblib/core/mixins/serializer.rb', line 24 def _dont_serialize_fields @_dont_serialize_fields ||= _ancestor_dont_serialize_fields end |
#_serialize_fields ⇒ Object
11 12 13 |
# File 'lib/bblib/core/mixins/serializer.rb', line 11 def _serialize_fields @_serialize_fields ||= _ancestor_serialize_fields end |
#dont_serialize_method(method) ⇒ Object
35 36 37 |
# File 'lib/bblib/core/mixins/serializer.rb', line 35 def dont_serialize_method(method) _dont_serialize_fields.push(method) unless _dont_serialize_fields.include?(method) end |
#serialize_method(name, method = nil, **opts) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/bblib/core/mixins/serializer.rb', line 39 def serialize_method(name, method = nil, **opts) return false if method == :serialize || name == :serialize && method.nil? _serialize_fields[name.to_sym] = { method: (method || name).to_sym }.merge(opts) end |