Module: Alf::Shell
- Defined in:
- lib/alf/shell.rb,
lib/alf/shell/support.rb,
lib/alf/shell/version.rb,
lib/alf/shell/operator.rb,
lib/alf/shell/from_argv.rb,
lib/alf/shell/doc_manager.rb,
lib/alf/shell/command/exec.rb,
lib/alf/shell/command/help.rb,
lib/alf/shell/command/main.rb,
lib/alf/shell/command/show.rb
Defined Under Namespace
Modules: Operator, Support, Version Classes: DocManager, Exec, Help, Main, Show
Constant Summary collapse
- DOC_EXTRACTOR =
This is the main documentation extractor
DocManager.new
- VERSION =
Version.to_s
- FROM_ARGV =
Myrrha.coercions do |c| # ARGV -> Boolean c.coercion(Array, Boolean){|argv,_| throw :next_rule if argv.size > 1 Alf::Support.coerce(argv.first || false, Boolean) } # ARGV -> Size c.coercion(Array, Size){|argv,_| throw :next_rule if argv.size > 1 Size.new(Integer(argv.first || 0)) } # ARGV -> AttrName c.coercion(Array, AttrName){|argv,_| throw :next_rule if argv.size > 1 AttrName.coerce(argv.first) } # ARGV -> AttrList c.coercion(Array, AttrList){|argv,_| AttrList.coerce(argv) } # ARGV -> Heading c.coercion(Array, Heading){|argv,_| Heading.coerce(argv) } # ARGV -> Ordering c.coercion(Array, Ordering){|argv,_| Ordering.coerce(argv) } # ARGV -> Renaming c.coercion(Array, Renaming){|argv,_| Renaming.coerce(argv) } # ARGV -> Summarization c.coercion(Array, Summarization){|argv,_| Summarization.coerce(argv) } # ARGV -> TupleComputation c.coercion(Array, TupleComputation){|argv,_| TupleComputation.coerce(argv) } # ARGV -> TupleExpression c.coercion(Array, TupleExpression){|argv,_| throw :next_rule if argv.size != 1 TupleExpression.coerce(argv.first) } # ARGV -> Predicate c.coercion(Array, Predicate){|argv,_| if argv.size == 1 Predicate.coerce(argv.first) elsif (argv.size % 2) == 0 Predicate.coerce(Hash[argv.each_slice(2).map{|k,v| [k.to_sym, eval(v)] }]) else throw :next_rule end } end
Class Method Summary collapse
-
.Command ⇒ Object
Command factory.
-
.Delegator ⇒ Object
Delegator command factory.
- .from_argv(argv, target_domain) ⇒ Object
-
.Operator ⇒ Object
Operator factory.
Class Method Details
.Command ⇒ Object
Command factory
21 22 23 24 25 26 27 28 29 |
# File 'lib/alf/shell.rb', line 21 def self.Command() Quickl::Command(){|builder| builder.command_parent = Alf::Shell::Main builder.doc_extractor = DOC_EXTRACTOR builder.class_module Command::ClassMethods builder.instance_module Shell::Support yield(builder) if block_given? } end |
.Delegator ⇒ Object
Delegator command factory
12 13 14 15 16 17 18 |
# File 'lib/alf/shell.rb', line 12 def self.Delegator() Quickl::Delegator(){|builder| builder.doc_extractor = DOC_EXTRACTOR builder.class_module Command::ClassMethods yield(builder) if block_given? } end |
.from_argv(argv, target_domain) ⇒ Object
73 74 75 |
# File 'lib/alf/shell/from_argv.rb', line 73 def self.from_argv(argv, target_domain) FROM_ARGV.coerce(argv, target_domain) end |
.Operator ⇒ Object
Operator factory
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/alf/shell.rb', line 32 def self.Operator() Quickl::Command(){|builder| builder.command_parent = Alf::Shell::Main builder.doc_extractor = DOC_EXTRACTOR builder.class_module Operator::ClassMethods builder.instance_module Shell::Support builder.instance_module Operator::InstanceMethods yield(builder) if block_given? } end |