module Sequel::Plugins::Sharding::ClassMethods

Public Instance Methods

create_using_server(s, values={}, &block) click to toggle source

Create a new object on the given shard s.

# File lib/sequel/plugins/sharding.rb, line 25
def create_using_server(s, values={}, &block)
  new_using_server(s, values, &block).save
end
eager_load_results(opts, eo, &block) click to toggle source

Eager load the association with the given eager loader options.

Calls superclass method
# File lib/sequel/plugins/sharding.rb, line 30
def eager_load_results(opts, eo, &block)
  if (s = eo[:self]) && (server = s.opts[:server])
    eb = eo[:eager_block]
    set_server = proc do |ds|
      ds = eb.call(ds) if eb
      ds = ds.server?(server)
      ds
    end
    eo = Hash[eo]
    eo[:eager_block] = set_server
    eo
  end

  super
end
new_using_server(s, values={}, &block) click to toggle source

Return a newly instantiated object that is tied to the given shard s. When the object is saved, a record will be inserted on shard s.

# File lib/sequel/plugins/sharding.rb, line 49
def new_using_server(s, values={}, &block)
  new(values, &block).set_server(s)
end

Private Instance Methods

eager_graph_dataset(opts, eager_options) click to toggle source

Set the server for each graphed dataset to the current server unless the graphed dataset already has a server set.

Calls superclass method
# File lib/sequel/plugins/sharding.rb, line 57
def eager_graph_dataset(opts, eager_options)
  ds = super
  if s = eager_options[:self].opts[:server]
    ds = ds.server?(s)
  end
  ds
end