Невозможно получить доступ к классу внутри модуля: "Main.rb: 2: in` <main>': неинициализированная константа " - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок ie на ruby языке.

Мне просто нужно выполнить программу, написанную на ruby.

Я извлек этот небольшой проект . Затем увидел, что он содержит гемфайл и выполнил следующие шаги:

# Fist installed what I believe is needed
sudo apt install ruby-full
sudo gem install bundler

cd colorscore
bundle install --path vendor/bundle

Затем, как предложено на README.md, создал файл с содержимым:

include Colorscore
histogram = Histogram.new('test/fixtures/skydiver.jpg')

# This image is 78.8% #7a9ab5:
histogram.scores.first # => [0.7884625, RGB [#7a9ab5]]

# This image is closest to pure blue:
palette = Palette.from_hex(['ff0000', '00ff00', '0000ff'])
scores = palette.scores(histogram.scores, 1)
scores.first # => [0.16493763694876, RGB [#0000ff]]

и выполнил:

bundle exec ruby Main.rb

Я получаю ошибку:

Main.rb: 2: in `': неинициализированная константа Гистограмма (NameError)

Похоже, Файл Main.rb читает модуль Colorscore, но не может получить доступ к классу Histogram внутри него.

Что я делаю не так?


версии:

ruby -v
# ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
bundle -v
# Bundler version 2.1.4

1 Ответ

0 голосов
/ 30 апреля 2020

Благодаря комментариям @ Olkin / @ BobRodes я решил проблему:

Мне пришлось добавить: require 'colorscore' в верхней части Main.rb

...