# File lib/post_json/query_translator.rb, line 14 def primary_key model_class.primary_key end
class PostJson::QueryTranslator
Public Class Methods
new(relation)
click to toggle source
# File lib/post_json/query_translator.rb, line 6 def initialize(relation) @relation = relation end
Public Instance Methods
create(attributes = {})
click to toggle source
# File lib/post_json/query_translator.rb, line 48 def create(attributes = {}) relation_query.create(attributes.with_indifferent_access) end
each(&block)
click to toggle source
# File lib/post_json/query_translator.rb, line 22 def each(&block) relation_query.each(&block) end
execute(ignore_dynamic_indexes = false, &block)
click to toggle source
# File lib/post_json/query_translator.rb, line 26 def execute(ignore_dynamic_indexes = false, &block) if ignore_dynamic_indexes == true || model_class.use_dynamic_index != true block.call(relation_query) else result = block.call(relation_query) select_query = ActiveRecord::Base.connection.last_select_query select_duration = ActiveRecord::Base.connection.last_select_query_duration * 1000 if model_class.use_dynamic_index == true && model_class.create_dynamic_index_milliseconds_threshold < select_duration selectors = select_query.scan(/.*?json_selector\('(.*?)', \"post_json_documents\"\.__doc__body\)/).flatten.uniq model_class.ensure_dynamic_index(*selectors) end result end end
model_class()
click to toggle source
# File lib/post_json/query_translator.rb, line 10 def model_class @relation.klass end
primary_key()
click to toggle source
relation_query()
click to toggle source
# File lib/post_json/query_translator.rb, line 42 def relation_query active_record_send_invocations.inject(@relation) do |query, send_arguments| query.send(*send_arguments) end end
table_name()
click to toggle source
# File lib/post_json/query_translator.rb, line 18 def table_name model_class.table_name end