Class: AIA::Directive
- Inherits:
-
PM::Directive
- Object
- PM::Directive
- AIA::Directive
- Defined in:
- lib/aia/directive.rb
Direct Known Subclasses
ConfigurationDirectives, ContextDirectives, ExecutionDirectives, ModelDirectives, UtilityDirectives, WebAndFileDirectives
Constant Summary collapse
- DIRECTIVE_PREFIX =
'/'
Class Method Summary collapse
-
.build_dispatch_block(inst, method_name) ⇒ Object
—- Dispatch override ———————————————— AIA directive methods use (args_array, context_manager) convention, not (ctx, *args).
-
.help ⇒ Object
—- Help output —————————————————— Application-level concern: formats help text using DIRECTIVE_PREFIX and all registered directive subclasses.
Class Method Details
.build_dispatch_block(inst, method_name) ⇒ Object
—- Dispatch override ———————————————— AIA directive methods use (args_array, context_manager) convention, not (ctx, *args). Override build_dispatch_block to adapt.
44 45 46 |
# File 'lib/aia/directive.rb', line 44 def build_dispatch_block(inst, method_name) proc { |_ctx, *args| inst.send(method_name, Array(args).flatten, nil) } end |
.help ⇒ Object
—- Help output —————————————————— Application-level concern: formats help text using DIRECTIVE_PREFIX and all registered directive subclasses.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/aia/directive.rb', line 52 def help puts puts "Available Directives" puts "====================" puts total = 0 PM::Directive.directive_subclasses.each do |klass| next if klass.directive_descriptions.empty? cat = klass.category_name puts "#{cat}:" puts "-" * cat.length klass.directive_descriptions.each do |method_name, description| aliases = klass.directive_aliases[method_name] || [] alias_text = if aliases.any? " (aliases: #{aliases.map { |a| "#{DIRECTIVE_PREFIX}#{a}" }.join(', ')})" else "" end puts " #{DIRECTIVE_PREFIX}#{method_name}#{alias_text}" puts " #{description}" puts total += 1 end end puts "\nTotal: #{total} directives available" "" end |