Sha256: 581d328c91ab346e2d40c3cbe43f2a0827ccbbbf6fca731249ebc636b7f2bb12
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
# encoding: UTF-8 class Spontaneous::Site module Helpers extend Spontaneous::Concern module ClassMethods def helper(*formats, &block) helper_module = Module.new(&block) register_helper(helper_module, *formats.flatten) helper_module end # Private: Generates a module including all helper methods for the requested format(s) def context(*formats) formats = [:*].concat formats.flatten.map { |f| f.to_sym } helper_module = Module.new formats.each do |format| Spontaneous::Output::Helpers.registered_helpers[format].each do |mod| helper_module.send :include, mod helper_module.send :extend, mod end Spontaneous::Site.registered_helpers[format].each do |mod| helper_module.send :include, mod helper_module.send :extend, mod end end helper_module end def register_helper(helper_module, *formats) site = instance if formats.empty? site.registered_helpers[:*] << helper_module else formats.each do |format| site.registered_helpers[format.to_sym] << helper_module end end end def registered_helpers instance.registered_helpers end end def registered_helpers @registered_helpers ||= Hash.new { |hash, key| hash[key] = [] } end end # Helpers end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spontaneous-0.2.0.beta1 | lib/spontaneous/site/helpers.rb |