class Selector::Not

The inversion of another condition

Public Class Methods

new(source) click to toggle source

@private

Calls superclass method Selector::Condition::new
# File lib/selector/not.rb, line 10
def self.new(source)
  return NOTHING  if source.equal? ANYTHING
  return ANYTHING if source.equal? NOTHING
  super
end

Public Instance Methods

!() click to toggle source

Returns the inverted condition (avoids double negation)

@example

condition = Selector.new(only: [:foo])
inversion = Not.new(condition)
!inversion == condition # => true

@return (see Selector::Condition#!)

# File lib/selector/not.rb, line 44
def !
  attribute
end
[](value) click to toggle source

Checks if the value doesn’t satisfy inverted condition

@example

condition = Selector.new(only: [:foo])
inversion[:foo] # => true
inversion[:bar] # => false

inversion = Not.new(condition)
inversion[:foo] # => false
inversion[:bar] # => true

@param (see Selector::Condition#[])

@return (see Selector::Condition#[])

# File lib/selector/not.rb, line 31
def [](value)
  !attribute[value]
end