Class: Yoda::Parsing::NodeObjects::MlhsNode
- Inherits:
-
Object
- Object
- Yoda::Parsing::NodeObjects::MlhsNode
- Defined in:
- lib/yoda/parsing/node_objects/mlhs_node.rb
Instance Attribute Summary collapse
- #node ⇒ Object readonly
Instance Method Summary collapse
-
#initialize(node) ⇒ MlhsNode
constructor
A new instance of MlhsNode.
- #post_nodes ⇒ Array<::AST::Node>
- #pre_nodes ⇒ Array<::AST::Node>
- #rest_node ⇒ ::AST::Node?
Constructor Details
#initialize(node) ⇒ MlhsNode
Returns a new instance of MlhsNode.
9 10 11 12 |
# File 'lib/yoda/parsing/node_objects/mlhs_node.rb', line 9 def initialize(node) fail ArgumentError, node unless node.is_a?(::AST::Node) && node.type == :mlhs @node = node end |
Instance Attribute Details
#node ⇒ Object (readonly)
6 7 8 |
# File 'lib/yoda/parsing/node_objects/mlhs_node.rb', line 6 def node @node end |
Instance Method Details
#post_nodes ⇒ Array<::AST::Node>
25 26 27 |
# File 'lib/yoda/parsing/node_objects/mlhs_node.rb', line 25 def post_nodes @post_nodes ||= node.children.drop_while { |arg_node| %i(arg optarg mlhs).include?(arg_node.type) }.select { |arg_node| %i(arg optarg mlhs).include?(arg_node.type) } end |
#pre_nodes ⇒ Array<::AST::Node>
15 16 17 |
# File 'lib/yoda/parsing/node_objects/mlhs_node.rb', line 15 def pre_nodes @pre_nodes ||= node.children.take_while { |arg_node| %i(arg optarg mlhs).include?(arg_node.type) } end |
#rest_node ⇒ ::AST::Node?
20 21 22 |
# File 'lib/yoda/parsing/node_objects/mlhs_node.rb', line 20 def rest_node @rest_node ||= node.children.find { |arg_node| arg_node.type == :restarg } end |