如何将参数传递给类<<自己在Ruby?

时间:2012-05-18 22:52:58

标签: ruby class self

如何在Ruby中将参数传递给class << self?我有一个我在下面工作的片段,我正在尝试使用RMagick生成一张图片。

#!/usr/bin/env ruby
%w[ rubygems RMagick ].each{|l| require l  }
%w[ Magick ].each{|i| require i }

module ImgGen
  class << self
    def start
      stripes = ImageList.new
      puts "hi"
    end

  end
end

WIDTH=650
HEIGHT=40
FILENAME="output.png"
FONT="winvga1.ttf"
ImgGen.start(WIDTH, HEIGHT, FILENAME, FONT)

1 个答案:

答案 0 :(得分:5)

参数不会传递给class << self,它们会被传递给方法:

module ImgGen
  class << self
    def start(width, height, filename, font)
      stripes = ImageList.new
      puts "hi"
    end
  end
end

如果它让你感到困惑,你可以阅读detailed description of what class << self does,但简而言之:它打开了类的单例类,因此你可以为它添加方法。