Sha256: fb58d90108f9e46cbf7cf94542b2f4b2f243bee724594178b8eb3f7655b4aabf

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

require 'rails'
require 'e9_rails'
require 'e9_tags'
require 'money'
require 'inherited_resources'
require 'will_paginate'
require 'has_scope'

require 'e9_crm/rails_extensions'

module E9Crm
  autoload :VERSION,            'e9_crm/version'
  autoload :Controller,         'e9_crm/controller'
  autoload :Model,              'e9_crm/model'
  autoload :TrackingController, 'e9_crm/tracking_controller'

  mattr_accessor :cookie_name
  @@cookie_name = '_e9_tc'

  mattr_accessor :query_param
  @@query_param = 'code'

  mattr_accessor :log_level
  @@log_level = :debug

  mattr_accessor :logging
  @@logging = false

  mattr_accessor :user_model
  @@user_model = nil

  mattr_accessor :tracking_controllers
  @@tracking_controllers = []

  def E9Crm.log(message)
    Rails.logger.send(@@log_level, "e9Crm: #{message}") if @@logging
  end

  def E9Crm.configure
    yield self
  end

  def E9Crm.init!
    user_model = case @@user_model
    when Class; @@user_model
    when String, Symbol; @@user_model.classify.constantize
    end

    if user_model
      user_model.send(:include, E9Crm::Model)
    end

    ActionController::Base.send(:include, E9Crm::Controller)

    E9Crm.tracking_controllers.each do |controller|
      controller.send(:include, E9Crm::TrackingController)
    end
  end

  class Engine < ::Rails::Engine
    config.e9_crm = E9Crm
    config.active_record.observers ||= []
    config.active_record.observers << :deal_observer
    config.to_prepare { E9Crm.init! }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
e9_crm-0.1.8 lib/e9_crm.rb