module Mongosteen::BaseHelpers

Protected Instance Methods

collection() click to toggle source

add support for scopes, search and pagination

# File lib/mongosteen/base_helpers.rb, line 7
def collection
  get_collection_ivar || begin
    chain = end_of_association_chain

    # scopes
    chain = apply_scopes(chain)

    # search
    if params[:search]
      chain = chain.search(params[:search].to_s.downcase, match: :all)
    end

    # pagination
    if params[:page]
      per_page = params[:perPage] || 20
      chain    = chain.page(params[:page]).per(per_page)
    else
      chain = chain.all
    end

    set_collection_ivar(chain)
  end
end
get_resource_version() click to toggle source

add support for history

# File lib/mongosteen/base_helpers.rb, line 32
def get_resource_version
  resource = get_resource_ivar

  version = params[:version].try(:to_i)

  if version && version > 0 && version < resource.version
    resource.undo(nil, from: version + 1, to: resource.version)
    resource.version = version
  end

  return resource
end