Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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 属性访问器赢得';在procs中使用时不起作用_Ruby_Attr Accessor - Fatal编程技术网

Ruby 属性访问器赢得';在procs中使用时不起作用

Ruby 属性访问器赢得';在procs中使用时不起作用,ruby,attr-accessor,Ruby,Attr Accessor,我写了下面的代码片段来下载一些我需要的文件 require 'open-uri' MEGABYTE = 1024.0 * 1024.0 def bytes_to_megabytes(bytes) bytes / MEGABYTE end class Downloader class << self attr_accessor :size def get(resource) open(resource, content_le

我写了下面的代码片段来下载一些我需要的文件

require 'open-uri'

MEGABYTE = 1024.0 * 1024.0

def bytes_to_megabytes(bytes)
  bytes / MEGABYTE
end

class Downloader
  class << self
    attr_accessor :size

    def get(resource)
      open(resource,
         content_length_proc: proc do |t|
           size = bytes_to_megabytes(t).round
           puts "Total size is: #{size}"
         end,
         progress_proc: proc do |step| 
           # size won't print here!
           puts "Downloading #{bytes_to_megabytes(step).round} out of #{size}"
         end ) 
    end
  end
end
需要“打开uri”
兆字节=1024.0*1024.0
def字节到兆字节(字节)
字节/兆字节
结束
类下载器
阶级
即使已在
content\u length\u proc

不,还没定。在此处设置局部变量
size
,而不是访问器。新手犯的错误。更改为:

self.size = bytes_to_megabytes(t).round
即使已在
content\u length\u proc

不,还没定。在此处设置局部变量
size
,而不是访问器。新手犯的错误。更改为:

self.size = bytes_to_megabytes(t).round

顺便说一下,这个(“失踪<代码>自我/代码>”)可能是我认为可以帮助的第一个RuBOCOP建议(如果RuBOCCOP不愿意提出建议)。耸耸肩:你一定是在开玩笑。是否为隐藏实例变量的局部变量赋值?几乎不可能被发现,是的:)@mudasobwa:你在开玩笑,但事实确实如此。不实际运行代码就不可能[以任何形式确定]。“以任何形式确定”-除了
0
1
;)对于动态赋值,不一定是肯定的,它来自于<代码> StistAsEngEng/<代码>等。它应该是一样容易的:<代码>警告,如果SeopeEa包含StaseSythApple and LoalAlxValabeLySoxsS< 。(如果rubocop不厌其烦地建议。)@mudasobwa:它怎么知道?:耸耸肩:你一定是在开玩笑。分配给一个隐藏实例变量的局部变量?几乎不可能发现,是的:)@mudasobwa:你在开玩笑,但事实确实如此。不实际运行代码就不可能[以任何形式确定]。“以任何形式确定”-除了
0
1
;)它不应该确定动态分配,来自
实例评估
等。它应该简单到:
如果范围包含实例变量和局部变量,则发出警告