Class: Refinery::Initializer

Inherits:
Rails::Initializer
  • Object
show all
Defined in:
vendor/plugins/refinery/lib/refinery/initializer.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.run(command = :process, configuration = Configuration.new) ⇒ Object



47
48
49
50
51
52
53
# File 'vendor/plugins/refinery/lib/refinery/initializer.rb', line 47

def self.run(command = :process, configuration = Configuration.new)
  configuration.plugin_loader = Refinery::PluginLoader
  Rails.configuration = configuration

  # call rails' run
  super
end

Instance Method Details

#load_pluginsObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'vendor/plugins/refinery/lib/refinery/initializer.rb', line 55

def load_plugins
  # inject all gems that manipulate ActiveRecord::Base into the application
  # and stub any calls that are dangerous.
  ::ActiveRecord::Base.module_eval do
    begin
      require 'friendly_id'
      require 'will_paginate'
      require 'aasm'
    rescue LoadError => load_error
      # this will stop us running rake gems:install which we don't really want so just trap this error.
      puts "*** Trapping error caused by missing gems ***"
    end

    # Stub has_friendly_id. This will get overriden when/if included.
    # The config will still complain that the gem is missing but this allows it to do so.
    def self.has_friendly_id(column, options = {}, &block)
      super if defined? super and table_exists?
    end
  end

  # call rails' load_plugins
  super
end