class Object

Public Instance Methods

as_json(options = nil) click to toggle source
# File lib/monatomic/models/model.rb, line 5
def as_json(options = nil)
  to_s
end
require_user_and_prepare_resources() click to toggle source
# File lib/monatomic/controller.rb, line 115
def require_user_and_prepare_resources
  redirect "/" unless current_user
  begin
    @model = params[:resources].classify.constantize
  rescue NameError
  end
  @resources = @model && @model.for(current_user)
  halt t(:not_authorized) if @resources.nil?
  if params[:search].present?
    available_fields = @model.fields_for(current_user).map(&:name)
    query = {}
    params[:search].split.each do |e|
      if e =~ /:/
        k, v = e.split(":", 2)
        query[k] ||= []
        query[k] << /#{Regexp.escape(v)}/i
      else
        @model.search_fields.each do |f|
          query[f.to_s] ||= []
          query[f.to_s] << /#{Regexp.escape(e)}/i
        end
      end
    end
    query = query.map do |k, v|
      {"$and" => v.map { |e| {k => e} }} if k.in? available_fields
    end.reject(&:nil?)
    @resources = @resources.and("$or" => query) if query.present?
  end
  if params[:sort].present?
    if params[:sort][0] == "-"
      @resources = @resources.order_by(params[:sort][1..-1] => -1)
    else
      @resources = @resources.order_by(params[:sort] => 1)
    end
  end
  @resources = @resources.includes(:created_by)
  return if params[:id].blank?
  @resource = @resources.find(params[:id])
end