Sha256: e04627c608e3cc11d07f123c4237ef7f67fa1fc32a3dc0dea334615f5eb8f62c

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

module Merb
  
  module Helpers
    HELPERS_DIR   = File.dirname(__FILE__) / 'merb_helpers'
    HELPERS_FILES = Dir["#{HELPERS_DIR}/*_helpers.rb"].collect {|h| h.match(/\/(\w+)\.rb/)[1]}
      
    def self.load_helpers(helpers = HELPERS_FILES)
      helpers.each {|h| Kernel.load(File.join(HELPERS_DIR, "#{h}.rb") )} # using load here allows specs to work
    end
    
    def self.load
      if Merb::Plugins.config[:merb_helpers]
        config = Merb::Plugins.config[:merb_helpers]
        raise "With and Without options cannot be used with merb_helpers plugin configuration" if config[:with] && config[:without]
        if config[:include]
          load_helpers(config[:include])
        elsif config[:exclude]
          load_helpers(HELPERS_FILES.reject {|h| config[:exclude].include? h})
        else
          # This is in case someone defines an entry in the config,
          # but doesn't put in a with or without option
          load_helpers
        end
      else
        load_helpers
      end

      Merb::Plugins.add_rakefiles "tasks/merb_tasks"
    end
    
  end
  
end

Merb::Helpers.load if defined?(Merb::Plugins)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
merb_helpers-0.5 lib/merb_helpers.rb