Class: ActiveRecord::Turntable::Mixer::Fader::SelectShardsMergeResult

Inherits:
ActiveRecord::Turntable::Mixer::Fader show all
Defined in:
lib/active_record/turntable/mixer/fader/select_shards_merge_result.rb

Instance Attribute Summary

Attributes inherited from ActiveRecord::Turntable::Mixer::Fader

#called_method, #query, #shards_query_hash

Instance Method Summary collapse

Methods inherited from ActiveRecord::Turntable::Mixer::Fader

#initialize

Constructor Details

This class inherits a constructor from ActiveRecord::Turntable::Mixer::Fader

Instance Method Details

#executeObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/active_record/turntable/mixer/fader/select_shards_merge_result.rb', line 5

def execute
  res = @shards_query_hash.map do |shard, query|
    args = @args.dup
    args[1] = args[1].dup if args[1].present?
    shard.connection.send(@called_method, query, *args, &@block)
  end.flatten(1).compact

  case @called_method
  when "select_value", "select_one"
    res.first if res
  else
    res
  end
end