Class: StatusQuerier::Querier::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/status_querier/querier.rb

Instance Method Summary collapse

Instance Method Details

#combine_scopes(model_class, statuses, with = :or) ⇒ Object



38
39
40
# File 'lib/status_querier/querier.rb', line 38

def combine_scopes(model_class, statuses, with = :or)
  statuses.map { |status| with_resource_status(model_class, status) }.reduce(with)
end

#with_resource_status(model_class, status) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/status_querier/querier.rb', line 42

def with_resource_status(model_class, status)
  unless StatusQuerier::SUPPORTED_STATUSES.include?(status)
    raise Error::InvalidStatus, "Status needs to be #{StatusQuerier::SUPPORTED_STATUSES.join(', ')}"
  end

  unless model_class.respond_to?(status)
    raise ::NotImplementedError
  end

  model_class.send(status)
end