Module: RailsRedshiftReplicator::Model::Extension::ClassMethods

Defined in:
lib/rails_redshift_replicator/model/extension.rb

Instance Method Summary collapse

Instance Method Details

#has_redshift_replication(replication_type, options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/rails_redshift_replicator/model/extension.rb', line 9

def has_redshift_replication(replication_type, options = {})
  cattr_accessor :rails_redshift_replicator_replicable
  replication_type = replication_type.to_s
  raise I18n.t(:replication_type_not_supported,
               replication_type: replication_type,
               types: RailsRedshiftReplicator.base_exporter_types.join(","),
               scope: :exception_messages) unless replication_type.in? RailsRedshiftReplicator.base_exporter_types
  extend Actions
  options[:source_table] ||= self.table_name
  self.rails_redshift_replicator_replicable = RailsRedshiftReplicator::Replicable.new(replication_type, options)
  RailsRedshiftReplicator.add_replicable({ options[:source_table] => rails_redshift_replicator_replicable })
end