ngelx/solidus_import_products

View on GitHub
lib/solidus_import_products/engine.rb

Summary

Maintainability
A
25 mins
Test Coverage
module SolidusImportProducts
  class Engine < Rails::Engine
    engine_name 'import_products'

    config.autoload_paths += %W[#{config.root}/lib]

    def self.activate
      Dir.glob(File.join(File.dirname(__FILE__), '../app/**/*_decorator*.rb')) do |c|
        Rails.env.production? ? require(c) : load(c)
      end

      Dir.glob(File.join(File.dirname(__FILE__), '../../app/overrides/*.rb')) do |c|
        Rails.application.config.cache_classes ? require(c) : load(c)
      end

      Spree::UserMailer.send(:include, SolidusImportProducts::UserMailerExt)

      # TODO: replace the class_eval
      Spree::User.class_eval do
        has_many :product_imports, class_name: 'Spree::ProductImport', foreign_key: 'created_by'
      end
    end

    config.to_prepare &method(:activate).to_proc
  end
end