lib/spontaneous/site/helpers.rb in spontaneous-0.2.0.beta4 vs lib/spontaneous/site/helpers.rb in spontaneous-0.2.0.beta5
- old
+ new
@@ -2,19 +2,20 @@
class Spontaneous::Site
module Helpers
extend Spontaneous::Concern
- module ClassMethods
+ # module ClassMethods
def helper(*formats, &block)
helper_module = Module.new(&block)
register_helper(helper_module, helper_module_name(caller), *formats.flatten)
helper_module
end
def helper_module_name(_caller)
- path = _caller.first.split(':').first.split('/')[-5..-1]
+ parts = _caller.first.split(':').first.split('/')
+ path = parts[-([5, parts.length].min)..-1]
path.join('_').gsub(/[^A-Za-z_]/, '_').gsub(/_+/, '_').gsub(/^_+/, '').capitalize
end
# Private: Generates a module including all helper methods for the requested format(s)
def context(*formats)
@@ -23,44 +24,40 @@
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|
+ 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, module_name, *formats)
- site = instance
- helpers = site.registered_helpers
+ site = self
+ helpers = registered_helpers
if formats.empty?
helpers[:*] << helper_module
else
formats.each do |format|
helpers[format.to_sym] << helper_module
end
end
- # Spontaneous::Site::Helpers.const_set(module_name, helper_module)
def helper_module.__finalize
- Spontaneous::Site.unregister_helper(self)
+ site.unregister_helper(self)
end
end
def unregister_helper(helper_module)
- helpers = instance.registered_helpers
+ helpers = registered_helpers
helpers.each do |format, helpers|
helpers.delete(helper_module)
end
end
- def registered_helpers
- instance.registered_helpers
- end
- end
+ # end
def registered_helpers
@registered_helpers ||= Hash.new { |hash, key| hash[key] = [] }
end
end # Helpers