Sha256: f151af04811b36b1a125626376ad714a5e369b3f92e4a1ec46ad26e4ce822945
Contents?: true
Size: 1.32 KB
Versions: 5
Compression:
Stored size: 1.32 KB
Contents
require 'representable/hash' module Representable::Hash module Collection include Representable::Hash def self.included(base) base.class_eval do include Representable::Hash extend ClassMethods property(:_self, {:collection => true}) end end module ClassMethods def items(options={}, &block) collection(:_self, options.merge(:getter => lambda { |*| self }), &block) end end # TODO: revise lonely collection and build separate pipeline where we just use Serialize, etc. def create_representation_with(doc, options, format) options = normalize_options(**options) options[:_self] = options bin = representable_bindings_for(format, options).first Collect[*bin.default_render_fragment_functions]. (represented, {doc: doc, fragment: represented, options: options, binding: bin, represented: represented}) end def update_properties_from(doc, options, format) options = normalize_options(**options) options[:_self] = options bin = representable_bindings_for(format, options).first value = Collect[*bin.default_parse_fragment_functions]. (doc, fragment: doc, document: doc, options: options, binding: bin, represented: represented) represented.replace(value) end end end
Version data entries
5 entries across 5 versions & 3 rubygems