Class: StructuredMenus::Dispatcher
- Inherits:
-
Object
- Object
- StructuredMenus::Dispatcher
- Defined in:
- lib/structured_menus/dispatcher.rb
Instance Method Summary collapse
-
#initialize ⇒ Dispatcher
constructor
A new instance of Dispatcher.
- #show(name, adapter_name, user, **options) ⇒ Object
Constructor Details
#initialize ⇒ Dispatcher
Returns a new instance of Dispatcher.
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/structured_menus/dispatcher.rb', line 3 def initialize = StructuredMenus.config. = Dir.entries().reject { |f| File.directory? f }\ .map { |p| [File.basename(p).gsub('.yml', ''), p] }.to_h.with_indifferent_access @adapters = StructuredMenus.config.adapters.map do |an| if an.class == Class an elsif an.class == String require_relative an File.basename(an).gsub('.rb', '').classify.constantize end end.map { |ac| [ac.name.demodulize.gsub('Adapter', '').underscore, ac] }.to_h.with_indifferent_access end |
Instance Method Details
#show(name, adapter_name, user, **options) ⇒ Object
17 18 19 20 21 |
# File 'lib/structured_menus/dispatcher.rb', line 17 def show(name, adapter_name, user, **) = YAML.safe_load(File.read(StructuredMenus.config..join([name]))) adapter = @adapters[adapter_name] adapter.show(, user, **) end |