module ApiNotify::ActiveRecord::Main::ClassMethods

Public Instance Methods

api_notify(fields, identificators, *args) click to toggle source
# File lib/api_notify/active_record/main.rb, line 14
def api_notify(fields, identificators, *args)
  options = args.extract_options!

  after_update :post_via_api
  after_create :post_via_api
  after_destroy :delete_via_api

  attr_accessor :skip_api_notify

  define_method :notify_attributes do
    fields
  end

  define_method :identificators do
    identificators
  end

  METHODS.each do |method|
    define_method "api_notify_#{method}_success" do |response|
    end

    define_method "api_notify_#{method}_failed" do |response|
    end
  end

  options.each_pair do |key, value|
    define_singleton_method key do
      value
    end
  end

  define_singleton_method :synchronizer do
    begin
      _api_route_name = api_route_name
      ApiNotify::LOGGER.info "api_route_name2: #{api_route_name}"
    rescue Exception => e
      _api_route_name = class_name.pluralize
    end

    ApiNotify::ActiveRecord::Synchronizer.new _api_route_name.downcase, identificators.keys.first
  end
end