Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 带#to#ivar的猴子修补线_Ruby_Cucumber_Monkeypatching - Fatal编程技术网

Ruby 带#to#ivar的猴子修补线

Ruby 带#to#ivar的猴子修补线,ruby,cucumber,monkeypatching,Ruby,Cucumber,Monkeypatching,我想用#to#ivar来修补字符串 因此,当我有一个具有如下实例变量的环境时: instance variables: @__cucumber_runtime @browser @browser_type @debug @sauce_config @user_A 我可以在步骤定义中执行此操作: Given(/^user (.*) does something$/) do |user| @user = user.to_ivar ... end 所以我做了,但是

我想用#to#ivar来修补字符串

因此,当我有一个具有如下实例变量的环境时:

instance variables:
  @__cucumber_runtime  @browser       @browser_type  @debug     @sauce_config  @user_A
我可以在步骤定义中执行此操作:

Given(/^user (.*) does something$/) do |user|
  @user = user.to_ivar
...
end
所以我做了,但是,字符串#to#ivar似乎不知道实例变量:

    13: def to_ivar
 => 14:   binding.pry
    15:   instance_variable_get("@#{self}")
    16: end

    [2] pry("user_A")> instance_variables
     => []

有没有办法让String实例了解Cucumber世界及其实例变量?

这里的内容与实际情况背道而驰。Ruby的实例变量是特定于上下文的。字符串上的实例方法不起作用。在正确的上下文中,您需要一个helper方法,在本例中是case定义。您可能希望将相应的to
传递给_ivar
    13: def to_ivar
 => 14:   binding.pry
    15:   instance_variable_get("@#{self}")
    16: end

    [2] pry("user_A")> instance_variables
     => []