Sha256: 807c1ec16fec29d38cc784e6ee9eacce08310eee948b09acf1bab1df35ebd764

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module AstrologicalForecast
  module Facts
    TYPES = {
      'Общий' => 'general',
      'Любовный' => 'love',
      'Семейный' => 'family',
      'Карьерный' => 'career',
      'Здоровье' => 'health',
      'Тинейджер' => 'tinager',
      'Флирт' => 'flirt',
      'Друзья' => 'amigos'
    }.freeze

    PERIOD = {
      'На сегодня' => 'today',
      'На завтра' => 'tomorrow',
      'На неделю' => 'week',
      'На месяц' => 'month',
      'На год' => 'year'
    }.freeze

    class << self
      def give_types

        TYPES.each_with_index do |type, index|

          puts "#{index + 1}. #{type[0]}"
        end
        puts
        print '> '
      end

      def give_period
        PERIOD.each_with_index do |period, index|
          puts "#{index + 1}. #{period[0]}"
        end
        puts
        print '> '
      end

      def sign_identification(signs, user_date_string)
        user_date = Date.parse("#{user_date_string}.2000")

        user_sign = nil

        # Для ассоциативных массивов, как и для обычных, тоже есть метод each, он кладет
        # в переменные блока по очереди каждую пару ключ-значение.
        signs.each do |_, sign|
          dates = sign['dates'].split('..').map do |date_string|
            Date.parse("#{date_string}.2000")
          end

          user_sign = sign if dates.first <= user_date && user_date <= dates.last
        end

        user_sign
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
astrological_forecast-2.0.5 lib/astrological_forecast/facts.rb
astrological_forecast-2.0.4 lib/astrological_forecast/facts.rb
astrological_forecast-2.0.2 lib/astrological_forecast/facts.rb
astrological_forecast-2.0.1 lib/astrological_forecast/facts.rb