X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/25bfcc0f6b5344acb4039457f8492df7fbada7fc..5f51982916827b84d73bfa8f3a98a9ee1d48d3ce:/vendor/plugins/engines/lib/bundles.rb diff --git a/vendor/plugins/engines/lib/bundles.rb b/vendor/plugins/engines/lib/bundles.rb deleted file mode 100755 index ce045f8..0000000 --- a/vendor/plugins/engines/lib/bundles.rb +++ /dev/null @@ -1,77 +0,0 @@ -require 'bundles/require_resource' - -# The 'require_bundle' method is used in views to declare that certain stylesheets and javascripts should -# be included by the 'resource_tags' (used in the layout) for the view to function properly. -module Bundles - def require_bundle(name, *args) - method = "bundle_#{name}" - send(method, *args) - end - - def require_bundles(*names) - names.each { |name| require_bundle(name) } - end -end - -ActionView::Base.send(:include, Bundles) - -# Registers a module within the Bundles module by renaming the module's 'bundle' method (so it doesn't -# clash with other methods named 'bundle') and by including any Controller or Helper modules within -# their respective Rails base classes. -# -# For example, if you have a module such as -# module Bundles::Calendar; end -# -# then within that Calendar module there *must* be a method named "bundle" which groups the -# bundle's resources together. Example: -# module Bundles::Calendar -# def bundle -# require_relative_to Engines.current.public_dir do -# require_stylesheet "/stylesheets/calendar.css" -# require_javascript "/javascripts/calendar.js" -# end -# end -# end -# -# You may optionally define a Controller or Helper sub-module if you need any methods available to -# the applications controllers or views. Example: -# -# module Bundles::Calendar -# module Helper -# def calendar_date_select(*args -# # ... output some HTML -# end -# end -# end -# -# The calendar_date_select method will now be available within the scope of the app's views because the -# register_bundle method will inject the Helper module's methods in to ActionView::Base for you. -# -# Similarly, you can make methods available to controllers by adding a Controller module. -def register_bundle(name) - require "bundles/#{name}" - - # Rename the generic 'bundle' method in to something that doesn't conflict with - # the other module method names. - bundle_module = Bundles.const_get(name.to_s.camelize) - bundle_module.module_eval "alias bundle_#{name} bundle" - bundle_module.send :undef_method, :bundle - - # Then include the bundle module in to the base module, so that the methods will - # be available inside ActionView::Base - ActionView::Base.send(:include, bundle_module) - - # Check for optional Controller module - if bundle_module.const_defined? 'Controller' - controller_addon = bundle_module.const_get('Controller') - RAILS_DEFAULT_LOGGER.debug "Including #{name} bundle's Controller module" - ActionController::Base.send(:include, controller_addon) - end - - # Check for optional Helper module - if bundle_module.const_defined? 'Helper' - helper_addon = bundle_module.const_get('Helper') - RAILS_DEFAULT_LOGGER.debug "Including #{name} bundle's Helper module" - ActionView::Base.send(:include, helper_addon) - end -end \ No newline at end of file