Class: Foobara::CommandConnectors::ShCliConnector::ActionParser
- Inherits:
-
Object
- Object
- Foobara::CommandConnectors::ShCliConnector::ActionParser
- Defined in:
- foobara-sh-cli-connector-0.0.17/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.
59 60 61 62 |
# File 'foobara-sh-cli-connector-0.0.17/src/sh_cli_connector/action_parser.rb', line 59 def initialize self.parser = OptionParser.new setup_parser end |
Instance Attribute Details
#parser ⇒ Object
Returns the value of attribute parser.
57 58 59 |
# File 'foobara-sh-cli-connector-0.0.17/src/sh_cli_connector/action_parser.rb', line 57 def parser @parser end |
Instance Method Details
#normalize_action(action) ⇒ Object
64 65 66 |
# File 'foobara-sh-cli-connector-0.0.17/src/sh_cli_connector/action_parser.rb', line 64 def normalize_action(action) action end |
#parse(argv, starting_action: nil) ⇒ Object
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 93 |
# File 'foobara-sh-cli-connector-0.0.17/src/sh_cli_connector/action_parser.rb', line 68 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
95 96 97 |
# File 'foobara-sh-cli-connector-0.0.17/src/sh_cli_connector/action_parser.rb', line 95 def supported_actions %w[run describe manifest help list] end |