Sha256: 78f80d4bde220f33d77e2b2b11d537b9ae8c78d5175fc7b5a8cefd666dfe7df9
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
require 'smart_properties' module ActionWidget class << self def [](helper_name) registry[helper_name] end def []=(helper_name, klass) registry[helper_name] = klass end def configuration @configuration ||= Configuration.new(suffix: "Widget") end def configure(&block) @configuration = Configuration.new(&block) end def helper?(name) !!configuration.pattern.match(name) end protected def registry @registry ||= Hash.new do |registry, helper_name| if klass = find_action_widget(helper_name) registry[helper_name] = klass else nil end end end private def find_action_widget(helper_name) return nil unless helper?(helper_name) basename = configuration.pattern.match(helper_name)[1] classname = [configuration.prefix, basename.camelcase, configuration.suffix].join("") classname.constantize rescue NameError, LoadError nil end end end require 'action_widget/base' require 'action_widget/configuration' require 'action_widget/view_helper' require 'action_widget/extensions' require 'action_widget/version'
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
action_widget-0.7.0 | lib/action_widget.rb |
action_widget-0.6.1 | lib/action_widget.rb |
action_widget-0.6.0 | lib/action_widget.rb |