Module: ActsAsIcontact::Rails::ClassMethods::Macro

Included in:
ActiveRecord::Base
Defined in:
lib/acts_as_icontact/rails/macro.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_icontact(options = {}) ⇒ Object

The core macro for ActsAsIcontact’s Rails integration. Establishes callbacks to keep Rails models in sync with iContact. See the README for more on what it does.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/acts_as_icontact/rails/macro.rb', line 8

def acts_as_icontact(options = {})
  logger.info "Initializing ActsAsIcontact module..."

  # Fail on exceptions?
  @icontact_exception_on_failure = options.delete(:exception_on_failure) || false
  logger.info "ActsAsIcontact #{'NOT ' unless @icontact_exception_on_failure}returning exceptions on failure."
  
  # Set up lists for autosubscribe
  set_default_lists(options.delete(:list), options.delete(:lists))
  logger.info "ActsAsIcontact autosubscribe lists: #{icontact_default_lists.join}" unless icontact_default_lists.empty?
  
  # Set up field mappings
  set_mappings(options)
  logger.info "ActsAsIcontact field mappings: #{icontact_mappings}"
  
  # If we haven't flaked out so far, we must be doing okay.  Make magic happen.
  include ActsAsIcontact::Rails::Callbacks
  after_create :icontact_after_create
  after_update :icontact_after_update
  logger.info "ActsAsIcontact callbacks created.  Have Fun."
end

#icontact_exception_on_failureObject



30
31
32
# File 'lib/acts_as_icontact/rails/macro.rb', line 30

def icontact_exception_on_failure
  @icontact_exception_on_failure
end