Module: Synchronisable
- Defined in:
- lib/synchronisable.rb,
lib/synchronisable/model.rb,
lib/synchronisable/source.rb,
lib/synchronisable/context.rb,
lib/synchronisable/gateway.rb,
lib/synchronisable/version.rb,
lib/synchronisable/dsl/macro.rb,
lib/synchronisable/controller.rb,
lib/synchronisable/exceptions.rb,
lib/synchronisable/worker/base.rb,
lib/synchronisable/input/parser.rb,
lib/synchronisable/model/scopes.rb,
lib/synchronisable/synchronizer.rb,
lib/synchronisable/configuration.rb,
lib/synchronisable/error_handler.rb,
lib/synchronisable/model/methods.rb,
lib/synchronisable/models/import.rb,
lib/synchronisable/worker/record.rb,
lib/synchronisable/helper/logging.rb,
lib/synchronisable/dsl/association.rb,
lib/synchronisable/attribute_mapper.rb,
lib/synchronisable/dsl/associations.rb,
lib/synchronisable/dsl/macro/method.rb,
lib/synchronisable/input/descriptor.rb,
lib/synchronisable/dsl/macro/attribute.rb,
lib/synchronisable/worker/associations.rb,
lib/synchronisable/dsl/macro/expression.rb,
lib/generators/synchronisable/install_generator.rb,
lib/synchronisable/synchronizers/synchronizer_default.rb
Defined Under Namespace
Modules: DSL, Helper, Input, Model, VERSION, Worker
Classes: AttributeMapper, Configuration, Context, Controller, ErrorHandler, Gateway, Import, InstallGenerator, MissedAssociationsError, MissedRemoteIdError, Source, Synchronizer, SynchronizerDefault
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
21
22
23
|
# File 'lib/synchronisable.rb', line 21
def self.config
@configuration ||= Configuration.new
end
|
25
26
27
|
# File 'lib/synchronisable.rb', line 25
def self.configure
yield config
end
|
.default_models ⇒ Object
56
57
58
|
# File 'lib/synchronisable.rb', line 56
def self.default_models
config.models.map(&:safe_constantize).compact
end
|
.find_models ⇒ Object
60
61
62
63
64
|
# File 'lib/synchronisable.rb', line 60
def self.find_models
ActiveRecord::Base.descendants.select do |model|
model.included_modules.include?(Synchronisable::Model)
end
end
|
.source_models(models) ⇒ Object
51
52
53
54
|
# File 'lib/synchronisable.rb', line 51
def self.source_models(models)
source = models.present? ? models : default_models
source = source.present? ? source : find_models
end
|
Syncs models that are defined in #models
43
44
45
46
47
|
# File 'lib/synchronisable.rb', line 43
def self.sync(*args)
options = args.
source = source_models(args)
source.map { |model| model.sync(options) }
end
|