module Rmodel::RepositoryExt::Scopable

Public Class Methods

included(base) click to toggle source
# File lib/rmodel/repository_ext/scopable.rb, line 4
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

delete_all(scope = nil) click to toggle source
# File lib/rmodel/repository_ext/scopable.rb, line 20
def delete_all(scope = nil)
  raw_query = (scope || fetch).raw_query
  @source.delete_by_query(raw_query)
end
destroy_all(scope = nil) click to toggle source
# File lib/rmodel/repository_ext/scopable.rb, line 25
def destroy_all(scope = nil)
  find_all(scope).each { |object| destroy(object) }
end
fetch() click to toggle source
# File lib/rmodel/repository_ext/scopable.rb, line 8
def fetch
  self.class.scope_class.new(self, @source.build_query)
end
find_all(scope = nil) click to toggle source
# File lib/rmodel/repository_ext/scopable.rb, line 12
def find_all(scope = nil)
  raw_query = (scope || fetch).raw_query

  @source.exec_query(raw_query).map do |hash|
    @mapper.deserialize(hash)
  end
end