Sha256: 5fcb814bf115e1b4db8637e2f0ccb0123b561a677c715fe43455571525a5d1eb
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require "active_support/core_ext/class" require "active_support/core_ext/string" require "sync_machine/change_listener" require "sync_machine/ensure_publication" require "sync_machine/ensure_publication/deduper" require "sync_machine/ensure_publication/publication_history" require "sync_machine/ensure_publication_worker" require "sync_machine/find_subjects_worker" require "sync_machine/orm_adapter/active_record" require "sync_machine/orm_adapter/mongoid" require "sync_machine/version" # A mini-framework for intelligently publishing complex model changes to an # external API.. module SyncMachine mattr_accessor :orm_adapter def self.use_active_record setup_orm_adapter(OrmAdapter::ActiveRecord) end def self.use_mongoid setup_orm_adapter(OrmAdapter::Mongoid) end def self.setup_orm_adapter(orm_adapter) self.orm_adapter = orm_adapter orm_adapter.setup end def self.extended(base) base.mattr_accessor :subject_sym # Force loading of all relevant classes. Should only be necessary when # running your application in a way that it defers loading constants, i.e., # Rails' development or test mode. def base.eager_load const_names = %w( Payload FindSubjectsWorker EnsurePublicationWorker ChangeListener ) const_names.each do |const_name| const_get(const_name) end end end def self.sync_module(child_const) child_const.name.split(/::/).first.constantize end def subject(subject_sym) self.subject_sym = subject_sym end def subject_class subject_sym.to_s.camelize.constantize end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sync_machine-0.2.0 | lib/sync_machine.rb |