Module: Sequel::Plugins::Sharding::ClassMethods
- Defined in:
- lib/sequel/plugins/sharding.rb
Instance Method Summary collapse
-
#create_using_server(s, values = {}, &block) ⇒ Object
Create a new object on the given shard s.
-
#eager_load_results(opts, eo, &block) ⇒ Object
Eager load the association with the given eager loader options.
-
#new_using_server(s, values = {}, &block) ⇒ Object
Return a newly instantiated object that is tied to the given shard s.
Instance Method Details
#create_using_server(s, values = {}, &block) ⇒ Object
Create a new object on the given shard s.
23 24 25 |
# File 'lib/sequel/plugins/sharding.rb', line 23 def create_using_server(s, values={}, &block) new_using_server(s, values, &block).save end |
#eager_load_results(opts, eo, &block) ⇒ Object
Eager load the association with the given eager loader options.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sequel/plugins/sharding.rb', line 28 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) ⇒ Object
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.
47 48 49 |
# File 'lib/sequel/plugins/sharding.rb', line 47 def new_using_server(s, values={}, &block) new(values, &block).set_server(s) end |