Class: Foobara::CommandConnectors::ShCliConnector::ActionParser
- Inherits:
-
Object
- Object
- Foobara::CommandConnectors::ShCliConnector::ActionParser
- Defined in:
- foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb
Defined Under Namespace
Classes: Result
Instance Attribute Summary collapse
-
#parser ⇒ Object
Returns the value of attribute parser.
Instance Method Summary collapse
-
#initialize ⇒ ActionParser
constructor
A new instance of ActionParser.
- #normalize_action(action) ⇒ Object
- #parse(argv, starting_action: nil) ⇒ Object
- #supported_actions ⇒ Object
Constructor Details
#initialize ⇒ ActionParser
Returns a new instance of ActionParser.
58 59 60 61 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb', line 58 def initialize self.parser = OptionParser.new setup_parser end |
Instance Attribute Details
#parser ⇒ Object
Returns the value of attribute parser.
56 57 58 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb', line 56 def parser @parser end |
Instance Method Details
#normalize_action(action) ⇒ Object
63 64 65 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb', line 63 def normalize_action(action) action end |
#parse(argv, starting_action: nil) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb', line 67 def parse(argv, starting_action: nil) result = Result.new result.action = starting_action result.remainder = parser.order(argv) do |positional_arg| if result.action.nil? positional_arg = normalize_action(positional_arg) # TODO: refactor this list of actions to a more reusable place if supported_actions.include?(positional_arg) result.action = positional_arg else result.action = "run" result.argument = positional_arg end elsif result.argument.nil? result.argument = positional_arg parser.terminate else parser.terminate(positional_arg) end end result.validate! result end |
#supported_actions ⇒ Object
94 95 96 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/action_parser.rb', line 94 def supported_actions %w[run describe manifest help list] end |