class Scraper
def initialize(options = {}) do
@options = options
end
def scrape
Wombat.crawl do
base_url @options[:base_url]
path @options[:path]
some_data css: @options[:css]
end
end
end
Пример использования:Рубин Scoping Не удается передать переменную класса
sample = Scraper.new({base_url: "someurl.com", path:"/random", css: ".regular"})
sample.scrape
Я не могу получить доступ к @options в внутри метода соскоба. Его проблема охвата и, вероятно, может быть решена путем определения области, но я не могу ее обойти. Любая помощь будет оценена по достоинству.
Ваг должен быть доступен. Покажите нам использование этого кода. –
Возможно, блок, переданный в метод 'crawl', вычисляется в другом контексте, чем определено. Как в Савоне: https://github.com/savonrb/savon/blob/version2/lib/savon/block_interface.rb –
Я просто добавляю «raise @ options.to_yaml» внутри Wombat.crawl. Он показывает значения внутри def scrape, но не внутри Wombat.crawl –