Module: Oasis::Loader

Defined in:
lib/oasis/loader.rb

Overview

only require this if you need it. This is designed for use as pre-initializer. do not bother setting this within your engine’s init.rb file, its too late by then.

Class Method Summary collapse

Class Method Details

.add_app_load_path_support_for(*names) ⇒ Object

this method defines a series of methods and method chains that can be used to augment the plugin/engines loader to consider more potential load paths within the app/ directory. this should only be necessary if you have code hiding in a top-level directory, beneath vendor/plugins/<your_engine>/app eg: vendor/plugins/<your_engine>/app/cells

this method should be used in the master environment.rb of your rails application.

example:

require ‘oasis/loader’ Oasis::Loader.add_app_load_path_support_for :cells

Rails::Initializer.run do |config|

...

end



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/oasis/loader.rb', line 23

def self.add_app_load_path_support_for(*names)
  names.each do |name|
    Rails::Plugin.class_eval "      def has_\#{name}_directory?                                     #    def has_cells_directory?\n        File.directory?(File.join(directory, 'app', '\#{name}'))      #      File.directory?(File.join(directory, 'app', 'cells'))\n      end                                                            #    end\n                                                                     #    \n      def \#{name}_path                                               #    def cells_path\n        File.join(directory, 'app', '\#{name}')                       #      File.join(directory, 'app', 'cells')\n      end                                                            #    end\n                                                                     #    \n      def load_paths_with_\#{name}                                    #    def load_paths_with_cells\n        paths = load_paths_without_\#{name}                           #      paths = load_paths_without_cells\n        paths << \#{name}_path if has_\#{name}_directory?              #      paths << cells_path if has_cells_directory?\n        paths                                                        #      paths\n      end                                                            #    end\n      alias_method :load_paths_without_\#{name}, :load_paths\n      alias_method :load_paths, :load_paths_with_\#{name}\n    EOS\n  end\nend\n"