module Repositorish::ClassMethods

Public Instance Methods

create(model, *args, &block) click to toggle source
# File lib/repositorish.rb, line 75
def create(model, *args, &block)
  return false if model.persisted?

  model.save(*args, &block)
end
destroy(model) click to toggle source
# File lib/repositorish.rb, line 87
def destroy(model)
  return if model.new_record?

  model.destroy
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/repositorish.rb, line 97
def method_missing(method, *args, &block)
  return query.public_send(method, *args, &block) if method_defined?(method)

  raise DomainMethodError, method if @domain.respond_to?(method)
  super
end
query(domain = @domain) click to toggle source
# File lib/repositorish.rb, line 93
def query(domain = @domain)
  new(domain)
end
repositorish(model, options = {}) click to toggle source
# File lib/repositorish.rb, line 69
def repositorish(model, options = {})
  @domain = model.to_s.classify.constantize
  @domain = @domain.public_send(options[:scope]) if options[:scope]
  self
end
update(model, *args, &block) click to toggle source
# File lib/repositorish.rb, line 81
def update(model, *args, &block)
  return false if model.new_record?

  model.save(*args, &block)
end