Sha256: 7edb205ffe68714f2633616c1d2356326147d306b15b01775421c98af632f0cc

Contents?: true

Size: 635 Bytes

Versions: 11

Compression:

Stored size: 635 Bytes

Contents

module CloudSesame
	module Query
		module DSL
			module ScopeMethods

				def scopes(name = nil, *args)
					if (name && context_scopes && (callback = context_scopes[name])) || name.nil?
						instance_exec(*args, &callback) if callback
						dsl_return
					else
						raise NoMethodError, "scope[#{ name }] does not exist"
					end
				end

				private

				def context_scopes
					dsl_context[:scopes]
				end

				def method_missing(name, *args, &block)
					if context_scopes && (callback = context_scopes[name])
						instance_exec *args, &callback
					  dsl_return
					else
						super
					end
				end

			end
		end
	end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
CloudSesame-0.4.6 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.5 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.4 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.3 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.2 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.1 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.4.0 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.3.6 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.3.5 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.3.4 lib/cloud_sesame/query/dsl/scope_methods.rb
CloudSesame-0.3.3 lib/cloud_sesame/query/dsl/scope_methods.rb