Рубрики
Без рубрики

Подбирая Ruby, как Python Dev & Mini Fish App

Это продолжение быстро подниматься Ruby, как Python Dev. Опять же, ожидайте примеров без математики … Помечено Ruby, Python, CodeNewie.

Это продолжение быстро подниматься Ruby, как Python Dev. Опять же, ожидайте примеров без математики и минимальных дерьмовых имен

Отправка сообщений нескольким методам?

Я не уверен, что это то, что вы можете сделать в Python, но вы можете сделать это в Ruby. В примере ниже Кормить "Собаки", если еда? Запускается 2 метода сразу.

Это ? в Meet_time? Также будет новым для меня, и я не видел его в Python. В Python я бы сделал мою переменную, как IS_IT_MEAL_TIME Отказ

#ruby
def meal_time? time_hrs
  if time_hrs >=5
    puts "cat is singing song of his people, guess it's food time"
    true
  else
    puts "tell cat to try again in an hour"
    false
  end
end

def feed pet
    puts "put food in #{pet} bowl\n"

end

feed "cats" if meal_time?(4)
feed "dogs" if meal_time?(5)
feed "cats" if meal_time?(18)
feed "dogs" if meal_time?(18)

Классы

Классы выглядят немного отличаться от Python, чтобы Ruby, но выглядит как в основном той же концепция. Attr_accessor и @ Новые запчасти для меня.

Мини-приложение для рыбы, сочетающее в себе вещи, которые я просмотрел до сих пор

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

# ruby
class Water_Level
  attr_accessor :time, :ph, :ammonia, :nitrites, :nitrates, :temp

  def initialize(ph, ammonia, nitrites, nitrates, temp)
    @time = Time.now
    @ph = ph
    @ammonia = ammonia
    @nitrites = nitrites
    @nitrates = nitrates
    @temp = temp
  end
end

Water_Level.new.time

class Levelizer
  def initialize(title)
    @title  = title
    @levels = [] 
  end

  def add_a_level(ph, ammonia, nitrites, nitrates, temp)
    # The << means add to the end of the array
    @levels << Level.new(ph, ammonia, nitrites, nitrates, temp)
  end

  def show_timeline
    puts "Fishify: #{@title} has tracked #{@levels.count} Levels"

    @levels.sort_by { |t|
      t.time
    }.reverse.each { |t|
      puts "#{t.ph} #{t.ammonia} #{t.nitrites} #{t.nitrates} #{t.temp} #{t.time}"
    }
  end
end

myapp = Levelizer.new "Vicki's Betta Tank"

myapp.add_a_level 7.4, 0, 0, 0, 78.2
myapp.add_a_level 7.4, 0, 0, 0, 72.3
myapp.add_a_level 7.2, 0, 0, 0, 79.1

myapp.show_timeline

"""
# output
Fishify: Vicki's Betta Tank has tracked 3 Levels
7.2 0 0 0 79.1 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
7.4 0 0 0 72.3 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
7.4 0 0 0 78.2 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
"""

Напоминание о себе: не работайте в местах, которые считают, что неоплаченная работа приемлема.

Если вы пропустили первый пост в этой серии, я слышал, что это хорошо читать и есть кошки.

Быстро поднимая Ruby, как Python Dev

Вики (она/они) · 12 ноября 20 ’20 · 3 мин читать

Оригинал: “https://dev.to/vickilanger/picking-up-ruby-as-a-python-dev-pt-iv-a-mini-fish-app-2gcd”