module ArelMysqlIndexHint::ActiveRecordHintMethods
Public Instance Methods
build_arel()
click to toggle source
Calls superclass method
# File lib/arel-mysql-index-hint/active_record-hint_methods.rb, line 17 def build_arel arel = super if mysql_index_hint_value.present? if mysql_index_hint_value.values.any? {|i| i.is_a?(Hash) } index_hint_by_table = mysql_index_hint_value else index_hint_by_table = Hash.new(mysql_index_hint_value) end arel.ast.select {|i| i.is_a?(Arel::Table) }.each do |node| node.index_hint = index_hint_by_table[node.name] end end arel end
hint(index_hint_by_table)
click to toggle source
# File lib/arel-mysql-index-hint/active_record-hint_methods.rb, line 11 def hint(index_hint_by_table) self.mysql_index_hint_value ||= {}.with_indifferent_access mysql_index_hint_value.deep_merge!(index_hint_by_table) self end
mysql_index_hint_value()
click to toggle source
# File lib/arel-mysql-index-hint/active_record-hint_methods.rb, line 7 def mysql_index_hint_value @values[:mysql_index_hint] end
mysql_index_hint_value=(value)
click to toggle source
# File lib/arel-mysql-index-hint/active_record-hint_methods.rb, line 3 def mysql_index_hint_value=(value) @values[:mysql_index_hint] = value end