module Rack::App::Extension
Public Instance Methods
apply_extensions(app_class, applied_ext_names, apply_ext_names)
click to toggle source
# File lib/rack/app/extension.rb, line 5 def apply_extensions(app_class, applied_ext_names, apply_ext_names) apply_ext_names.each do |extension_name| extension_name = format_extension_name(extension_name) next if applied_ext_names.include?(extension_name) applied_ext_names << extension_name ext = find_extension_for(extension_name) app_class.class_eval(&ext) end nil end
format_extension_name(extension_name)
click to toggle source
# File lib/rack/app/extension.rb, line 19 def format_extension_name(extension_name) extension_name.to_s.to_sym end
register(extension_name, &builder_block)
click to toggle source
# File lib/rack/app/extension.rb, line 23 def register(extension_name, &builder_block) extensions[format_extension_name(extension_name)]= builder_block end
Protected Instance Methods
extensions()
click to toggle source
# File lib/rack/app/extension.rb, line 29 def extensions @extensions ||= {} end
find_extension_for(sym_name)
click to toggle source
# File lib/rack/app/extension.rb, line 33 def find_extension_for(sym_name) return extensions[sym_name.to_s.to_sym] || raise("Not registered extension name requested: #{sym_name}") end