Дізнайтеся, як встановити Pharo локально, щоб розвʼязувати вправи Exercism на власному компʼютері
Найпростіший спосіб встановити Pharo - скористатися zero conf завантаженням із командного рядка термінала.
Примітка: якщо потрібно оновити вже встановлену версію, дивіться інструкції з оновлення.
Користувачам Windows, у яких не встановлено оболонку в стилі UNIX, варто пропустити цей розділ і перейти до інструкцій зі встановлення на Windows (нижче).
Досвідченіші користувачі Linux можуть звернутися до встановлення для Linux-хакерів.
Для Linux/OSX (за умови, що Exercism уже встановлено і до треку Pharo приєднано) перейдіть до каталогу /Exercism/pharo-smalltalk і введіть:
curl https://get.pharo.org/64/ | bash
і запустіть Pharo з інструментами Exercism, вставивши такий «скрипт завантаження»:
./pharo-ui Pharo.image eval "
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
"
Якщо під час завантаження інструментів виникають проблеми з TIMEOUT, вийдіть із Pharo та очистьте кеш git, ввівши:
rm -rf pharo-local/iceberg/
І потім повторіть наведений вище приклад ./pharo-ui ....
Якщо проблеми не зникнуть, відвідайте канал Pharo у Discord, описаний на сторінці Спільнота Pharo.
Якщо все працює належним чином, екраном мерехтітимуть смуги прогресу завантаження, а потім зʼявиться вікно System Browser.
Порада: коли настане час виходити з Pharo, збережіть зміни (виберіть меню Pharo і пункт «Save and Quit»). Тепер Pharo із уже завантаженим Exercism можна запустити, просто ввівши:
./pharo-ui Pharo.image
Ми все ще зʼясовуємо, які передумови для інструментів командного рядка найкращі у Windows, але Pharo можна встановити й графічно за допомогою Windows Pharo Launcher (зручний інструмент для керування кількома образами Pharo). Цей засіб запуску також доступний для OSX і Linux, якщо більше до вподоби графічний інтерфейс.
Запустіть завантажений файл .msi, щоб встановити Pharo Launcher.
Запустіть Pharo Launcher.
У верхньому лівому куті натисніть «New».
У вікні виберіть «Official distributions» у категоріях шаблонів.
Для вправ Exercism виберіть зі списку шаблонів образів Pharo найновіший стабільний випуск (наразі рекомендовано «Pharo 10.0 64-bit (stable)»).
Клацніть, щоб виділити шаблон образу, дайте йому назву, а потім натисніть кнопку створення образу внизу (помаранчева шестерня).

Коли шаблон завантажиться, він зʼявиться праворуч у таблиці Existing Images. Клацніть на нього, а потім натисніть кнопку запуску вгорі (зелена стрілка play).

Коли образ Pharo запуститься, відкрийте Playground, вибравши меню Browse і пункт Playground, або скористайтеся
ctrl + o + w.

Нарешті, скопіюйте й вставте такий фрагмент у Playground:
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
Потім виконайте вставлений код, виділивши його весь, клацнувши правою кнопкою миші та вибравши в меню Do it (або скористайтеся ctrl + d).
Якщо все працює належним чином, екраном мерехтітимуть смуги прогресу завантаження, а потім зʼявиться вікно System Browser.
Коли ми запускаємо Pharo, ми бачимо проєкт Welcome у System Browser (порада: якщо це вікно колись загубиться, його можна відкрити заново з меню Tools|System Browser).

Верхня ліва панель System Browser показує пакети в нашому середовищі, і ми побачимо, що скрипт встановлення вже налаштував
пакет Exercism, який містить тег підпроєкту Welcome. Друга панель показує класи, серед яких теж є клас Welcome. Під панеллю класів розташовані 4 перемикачі: «Flat» (показує класи в пакеті), «Hier.» (показує ієрархію класів), «Inst. side» (показує методи екземплярів), «Class side» (показує методи класу та конструктори).
Якщо клацнути на вкладці Comment, можна побачити найновіші вказівки щодо використання Pharo Exercism. Прочитайте коментарі та спробуйте запустити свій перший тест.
У мовах, що працюють із файлами, зазвичай на цьому етапі ми переходимо в термінал і за допомогою Exercism CLI завантажуємо наступну вправу. Хоча Pharo вміє працювати з файлами подібним чином, його середовище насправді налаштоване на роботу з живими обʼєктами. Цікаво, що класи, методи й вихідний код теж є обʼєктами, як і все інше в Pharo. Докладніше про це ми дізнаємося протягом цього треку.
Для Exercism ми додали плагін, який дає змогу отримувати й надсилати вправи Pharo прямо з IDE.
Усе, що потрібно, - клацнути правою кнопкою миші на пакеті вправи (у цьому випадку на пакеті Welcome у верхній лівій панелі) і вибрати пункт меню Exercism | Fetch Exercise.
Зʼявиться запит на назву вправи (наприклад, hello-world), і після її введення вправа завантажиться автоматично.
Назви вправ можна знайти в описі кожної вправи на сторінці треку Pharo (праворуч). Там є інструкція Download із рядком CLI, який містить ключ кожної вправи. Можна також скористатися кнопкою копіювання поруч з інструкціями CLI і вставити весь рядок у запит на завантаження (а ключ ми виділимо автоматично).
Коли введено коректну назву вправи, плагін завантажить відповідний код і покаже його в System Browser, щоб можна було почати писати код із тестами.
Коли всі тести проходять, рішення можна надіслати через те саме контекстне меню пакета вправи (клацніть правою кнопкою миші на тегу пакета й виберіть Exercism | Submit Exercise...)

Нарешті, скористайтеся меню Exercism | View Track Progress, щоб перейти на сайт Exercism, побачити, які ще вправи для нас відкрилися, а також поставити запитання про своє рішення, які зможуть прочитати наставники.
Цікавий факт: Коли ми запускаємо Pharo, насправді відновлюється знімок образу виконання, подібний до образу операційної системи VMWare. Це потужна концепція, яка дає змогу призупинити роботу посеред операції, можливо, навіть під час налагодження чогось. Коли ми наступного разу запустимо Pharo, можна буде продовжити покрокове виконання коду у відновленому зневаджувачі або, можливо, продовжити крок рефакторингу.
Якщо колись виникне потреба скинути токен CLI через проблему з безпекою, перейдіть на сторінку налаштувань Exercism і скористайтеся кнопкою скидання токена. Після цього потрібно очистити старий токен у Pharo Exercism, виконавши такий код у Playground:
ExercismHttpClient
reset;
promptForToken.
Час від часу може знадобитися оновити бібліотеки в образі Pharo Exercism. Дотримуйтеся цих інструкцій.