Class: Node::ITER
- Defined in:
- ext/internal/node/nodeinfo.c,
ext/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.4/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.4/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.5/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.5/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.6/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.6/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.7/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.7/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.1/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.1/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.2/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.2/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.3/internal/node/nodeinfo.c,
ext/cached/ruby-1.9.3/internal/node/nodeinfo.c
Overview
Represents an iteration loop, e.g.:
iter do |*args|
assign args to var
body
end
A new block is created so that dynamic variables created inside the loop do not persist once the loop has terminated.
If the iter node is a POSTEXE node, indicates that the expression should be evaluated when the program terminates.
Class Method Summary collapse
-
.members ⇒ Array
Return an array of strings containing the names of the node class’s members.
Instance Method Summary collapse
-
#body ⇒ Object
Return the Node’s body member.
-
#iter ⇒ Object
Return the Node’s iter member.
-
#var ⇒ Object
Return the Node’s var member.
Methods inherited from Node
#[], #_dump, _load, #address, #bytecode_compile, compile_string, #eval, #flags, #inspect, #members, #nd_file, #nd_line, #nd_type, #obfusc, #pretty_print, #swap, #to_a, #tree, type
Class Method Details
.members ⇒ Array
Return an array of strings containing the names of the node class’s members.
2793 2794 2795 2796 |
# File 'ext/internal/node/nodeinfo.c', line 2793 VALUE node_s_members(VALUE klass) { return rb_iv_get(klass, "__member__"); } |
Instance Method Details
#body ⇒ Object
Return the Node’s body member. The return type is either a Node or an Object.
2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 |
# File 'ext/internal/node/nodeinfo.c', line 2076 static VALUE node_body(VALUE self) { NODE * n; Data_Get_Struct(self, NODE, n); if(TYPE(n->nd_body) == T_NODE) { if(0 && nd_type(n) == NODE_OP_ASGN2) { return wrap_node_as( (NODE *)n->nd_body, rb_cNodeSubclass[NODE_OP_ASGN2_ARG]); } else { return wrap_node((NODE *)n->nd_body); } } else { return (VALUE)n->nd_body; } } |
#iter ⇒ Object
Return the Node’s iter member. The return type is either a Node or an Object.
2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 |
# File 'ext/internal/node/nodeinfo.c', line 2362 static VALUE node_iter(VALUE self) { NODE * n; Data_Get_Struct(self, NODE, n); if(TYPE(n->nd_iter) == T_NODE) { if(0 && nd_type(n) == NODE_OP_ASGN2) { return wrap_node_as( (NODE *)n->nd_iter, rb_cNodeSubclass[NODE_OP_ASGN2_ARG]); } else { return wrap_node((NODE *)n->nd_iter); } } else { return (VALUE)n->nd_iter; } } |
#var ⇒ Object
Return the Node’s var member. The return type is either a Node or an Object.
2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 |
# File 'ext/internal/node/nodeinfo.c', line 2741 static VALUE node_var(VALUE self) { NODE * n; Data_Get_Struct(self, NODE, n); if(TYPE(n->nd_var) == T_NODE) { if(0 && nd_type(n) == NODE_OP_ASGN2) { return wrap_node_as( (NODE *)n->nd_var, rb_cNodeSubclass[NODE_OP_ASGN2_ARG]); } else { return wrap_node((NODE *)n->nd_var); } } else { return (VALUE)n->nd_var; } } |