Module: Scoping

Defined in:
lib/scoping/scope_composer.rb,
lib/scoping.rb,
lib/scoping/version.rb

Overview

This is light-weight filtering helper class that will compose all given criteria (scopes). When using this class all filtering logic has to be stored in scopes instead of creating ad-hoc filtering objects.

Usage example:

composer = ScopeComposer.new(Challenge)
composer.with_state = 'cancelled'
composer.created_during_past = '1 week'

Or you can provide criteria as a second argument to new:

ScopeComposer.new(Challenge,
  with_state: 'cancelled',
  created_during_past: '1 week')

Which translates to:

Challenge.with_state(:cancelled).created_during_past('1 week')

If you want to call the scopes which do not take arguments, you can safely use them with one condition - the scope is ommited if the argument value given is not “1” or true.

For example:

ScopeComposer.new(Challenge, accepted: false)

Would not result in the scope ‘accepted` applied, but on the other hand following code would:

ScopeComposer.new(Challenge, accepted: "1")

Defined Under Namespace

Classes: ScopeComposer

Constant Summary collapse

VERSION =
'0.0.3'