class DSL::Var

常量

PRETTY_PRINT_INSTANCE_VARIABLES

属性

to_s[R]
value[R]
var[R]

公共类方法

new(table, arg) { |arg| ... } 点击切换源代码
# File ripper/tools/dsl.rb, line 85
def initialize(table, arg, &block)
  @var = table.new_var
  @value = yield arg
  @table = table
end

公共实例方法

[](idx) 点击切换源代码

索引。

$:1 -> v1=get_value($:1)
$:1[0] -> rb_ary_entry(v1, 0)
$:1[0..1] -> [rb_ary_entry(v1, 0), rb_ary_entry(v1, 1)]
*$:1[0..1] -> rb_ary_entry(v1, 0), rb_ary_entry(v1, 1)

Splat 需要 ‘[range]`,因为 `Var` 没有长度信息。

# File ripper/tools/dsl.rb, line 99
def [](idx)
  if ::Range === idx
    idx.map {|i| self[i]}
  else
    @table.fetch("#@var[#{idx}]") {"rb_ary_entry(#{@var}, #{idx})"}
  end
end
pretty_print_instance_variables() 点击切换源代码
# File ripper/tools/dsl.rb, line 79
def pretty_print_instance_variables
  PRETTY_PRINT_INSTANCE_VARIABLES
end