Как включить / требовать / загрузить файл в ruby ​​с переменными экземпляра - PullRequest
0 голосов
/ 13 марта 2010

Я бы хотел поместить определение большой переменной в отдельный файл, чтобы избавиться от него. Я, должно быть, делаю что-то не так, потому что мой puts звонок ничего не выдает.

my_class.rb:

class foobar
  def initialize
    require 'datafile.rb'
    puts @fat_data
  end
end

datafile.rb:

@fat_data = [1,2,3,4,5,6,7,8,9,10]

Можете ли вы использовать этот способ?

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Вы можете сделать что-то вроде этого:

my_class.rb:

class Foobar
  def initialize
    init_fat_data
    puts @fat_data
  end
end

datafile.rb:

class Foobar
  private

  def init_fat_data
    @fat_data = [1,2,3,4,5,6,7,8,9,10]
  end
end

Или, возможно, изменить class Foobar в datafile.rb на module MyData и затем включить модуль в Foobar класс в my_class.rb.

0 голосов
/ 13 марта 2010

Если вы просто хотите получить данные из определения класса, вы также можете использовать __END__ и DATA:

Бесполезные приемы Ruby: DATA и __END __

...