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
-
.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.
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" |