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.
25 26 27 |
# 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) ⇒ Object
Eager load the association with the given eager loader options.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ 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.
49 50 51 |
# File 'lib/sequel/plugins/sharding.rb', line 49 def new_using_server(s, values={}, &block) new(values, &block).set_server(s) end |