Imagine you have a version with :from_version:
class MyUploader < CarrierWave::Uploader::Base
version :thumb do
process resize_to_fill: [280, 280]
end| class CreateUser | |
| def self.call(*args) | |
| new(*args).call | |
| end | |
| def initialize(name) | |
| @name = name | |
| end | |
| def call |
| channel in1 = [4] of { int }; | |
| channel in2 = [4] of { int }; | |
| channel out = [8] of { int }; | |
| int turn; | |
| int t1, t2; | |
| proctype read() { | |
| do | |
| :: | |
| if |
| argument_values.map do |element| | |
| "sin(#{element.round(3)})is #{sin(element)}" | |
| end |
| Я достаточно сильно улучшил наши кораблики с момента нашего последнего скайп-разговора. Я добавил возможность смотреть текущее состояние корабля, список кораблей в текущей системе, ввел отношение других кораблей к игроку и даже возможность связи с другим кораблем! | |
| Но мы затевали создание этой системы для того, чтобы ты мог изучить Ruby, поэтому вот тебе несколько заданий: | |
| 1. Если после прыжка в какую-либо систему посмотреть состояние корабля, остаток топлива будет показывать с большим количеством знаков после запятой. Попытайся понять, почему так происходит, и предложи пути решения проблемы. | |
| 2. Надо улучшить механизм заправки корабля: если происходит попытка заправить корабль на объем, больший доступного, надо бросать соответсвующее исключение. | |
| 3. Сделай так, чтобы при связи с кораблем выдавалось случайное сообщение из набора (сейчас доступно только одно). |
| В последнем коммите мы добавили нашему ассистенту навигационные возможности. Теперь он умеет показывать карту вселенной и прыгать в различные звездные системы. | |
| Дальнейшие планы: планирование полета с помощью journal.rb, конечно же, хорошо, но никто не знает заранее, с чем столкнется капитан корабля во время полета. Поэтому было принято стратегическое решение о добавлении ассистенту возможности спрашивать капитана о следующем действии: на выбор предоставляется список возможных действий. Капитан выбирает - ассистент реализует. Итак, время не ждет, давайте скорее реализуем это! | |
| Технические подробности: | |
| Я добавил в проект Gemfile. Это файл с перечислением библиотек-зависимостей проекта. Чтобы установить их, выполни: | |
| $ gem install bundler # устанавливается один раз и для всех проектов. Скачивает все зависимости и устанавливает их. | |
| $ bundle # Выполняется для каждого проекта при изменении Gemfile. Обновляет зависимости. |
| 1) склонировать репозиторий. Если настроил гит, то можно написать в консоли | |
| git clone [email protected]:hedgesky/spaceship_assistant.git | |
| Если не настроил, то просто скачать исходники: | |
| https://github.com/hedgesky/spaceship_assistant/archive/master.zip | |
| 2) Добавить двигателю атрибут "количество топлива". При создании объекта он должет устанавливаться в 0. Должна быть возможность заправить корабль (отдельным методом fuel(fuel_amount)). При прыжках и движении топливо должно расходоваться каким-то образом (придумай сам, каким; но можем обсудить этот вопрос). При попытке движения или прыжка с недостаточным уровнем топлива должно выбрасываться исключение NotEnoughFuel. |