module Mongoid::Contextual

Private Instance Methods

calc_new_collection_name(query_class) click to toggle source
# File lib/mongoid/collection_separated/monkey_patches.rb, line 40
def calc_new_collection_name query_class
  return unless query_class.respond_to?(:separated_field) && query_class.send(:separated_field).present?
  return unless query_class.respond_to?(:calc_collection_name_fun) && query_class.respond_to?(query_class.calc_collection_name_fun)
  collection_name_for query_class, separated_value(query_class)
end
create_context()
create_context_with_separated() click to toggle source

Changes:

  1. Get form_id from selector

  2. If collection is entries, not matter from context or current collection object, and form has entries_separated flag set, set collection name instance variable to entries plus form_id as new collection name

# File lib/mongoid/collection_separated/monkey_patches.rb, line 28
def create_context_with_separated
  context = create_context_without_separated
  query_class = instance_variable_get :@klass
  new_collection_name = calc_new_collection_name query_class
  unless new_collection_name.blank?
    context.collection.instance_variable_set :@name, new_collection_name
    collection.instance_variable_set :@name, new_collection_name
  end
  instance_variable_set :@context, context
  context
end
Also aliased as: create_context
create_context_without_separated()
Alias for: create_context
separated_selector(query_class) click to toggle source
# File lib/mongoid/collection_separated/monkey_patches.rb, line 56
def separated_selector query_class
  selector[query_class.separated_field.to_s]
end
separated_value(query_class) click to toggle source
# File lib/mongoid/collection_separated/monkey_patches.rb, line 46
def separated_value query_class
  value = separated_selector(query_class)
  value = separated_value_from_query_in_with_only_one_value(query_class) if value.is_a?(Hash)
  value
end
separated_value_from_query_in_with_only_one_value(query_class) click to toggle source
# File lib/mongoid/collection_separated/monkey_patches.rb, line 52
def separated_value_from_query_in_with_only_one_value query_class
  separated_selector(query_class)['$in']&.first
end