module Synchronisable::Model::Methods
Methods
that will be attached to synchronisable model class.
Public Instance Methods
imports_count()
click to toggle source
Count of import records for this model.
# File lib/synchronisable/model/methods.rb, line 63 def imports_count Import.where(synchronisable_type: self).count end
sync(*args)
click to toggle source
Creates a new controller, that initiates synchronization for this particular model and its associations. If you have implemented `fetch` & `find` methods in your model synchronizer, than it will be used if no data supplied.
@overload sync(data, options)
@param data [Hash, Array<Hash>, Array<String>, Array<Integer>, String, Integer] synchronization data @param options [Hash] synchronization options @option options [Hash] :includes assocations to be synchronized. Use this option to override `has_one` & `has_many` assocations defined in model synchronizer.
@overload sync(options) @overload sync(data) @overload sync
@see Synchronisable::Controller
@example Supplying array of hashes with remote attributes
FooModel.sync([ { :id => '123', :attr1 => 4, :attr2 => 'blah' }, ... ])
@example General usage
FooModel.sync(:includes => { :assocation_model => :nested_association_model })
@example Football domain use case
Match.sync(:includes => { :match_players => :player })
@example Here is all possible ways to call sync
Model.sync Model.sync({ :a1 => 1, :a2 => 2 }) Model.sync({ :includes => {...}, :parent => xxx }) Model.sync(123) Model.sync('asdf') Model.sync([{ :a1 => 1, :a2 => 2 }, { :a1 => 3, :a2 => 4 }, ...]) Model.sync([123, 345, 456]) Model.sync(['123', '345', '456'])
# File lib/synchronisable/model/methods.rb, line 58 def sync(*args) Controller.call(self, *args) end
synchronisable?()
click to toggle source
# File lib/synchronisable/model/methods.rb, line 8 def synchronisable? true end