Sha256: ffd2abc313652d365c2fdef26654d27dc2b74fd18f9b7bc553e76e8d288be162
Contents?: true
Size: 997 Bytes
Versions: 3
Compression:
Stored size: 997 Bytes
Contents
require 'delegate' module DBViewCTI module Model class CollectionDelegator < SimpleDelegator def initialize(object, target_class_name) super(object) @target_class_name = target_class_name end def <<(object, *args, &block) __getobj__.send('<<', object.convert_to(@target_class_name), *args, &block) end def []=(*args, &block) object = args.last.convert_to(@target_class_name) __getobj__.send('[]=', *(args[0..-2]), object, &block) end def delete(*args, &block) objects = args.map do |obj| obj.respond_to?(:convert_to) ? obj.convert_to(@target_class_name) : obj end __getobj__.send('delete', *objects, &block) end def destroy(*args, &block) objects = args.map do |obj| obj.respond_to?(:convert_to) ? obj.convert_to(@target_class_name) : obj end __getobj__.send('delete', *objects, &block) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems