Sha256: 08517b252c8266f4df476dd7a6ff6f0181659aac806919f32e836d9dd2c718d1

Contents?: true

Size: 714 Bytes

Versions: 1

Compression:

Stored size: 714 Bytes

Contents

module MeteorMotion
	module Collections
		class Default < MeteorMotion::Collection

			def initialize name
				super
				@objects = {}
			end

			def add id, fields
				@objects[id] = fields
				super
			end


			def update id, fields, cleared
				obj = @objects[id].mutableCopy

				if fields
					fields.each do |k, v|
						obj[k] = v
					end
				end

				if cleared
					cleared.each do |key|
						obj.delete(key)
					end
				end

				@objects[id] = obj

				super
			end


			def remove id
				@objects.delete(id)
				super
			end

			def all
				@objects.map { |k,v| v.merge({:_id => k }) }
			end

			def find id
				return @objects[id]
			end

			def size
				return @objects.size
			end

		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
meteor-motion-0.1.0 motion/collections/default.rb