Sha256: 14c8051d55143d82832bee0d092a718c2c42fef0c00fdf10e578f1b07158f082

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module AstrologicalForecast
  class DefinitionSign
    attr_reader :definition, :signs

    def initialize(date:)
      @date = date
      # Номер знака зодиака
      @definition = date.nil? ? definition_sign_console : definition_sign_hands

      @signs = sign
    end

    def sign
      # Прочитаем файл со знаками зодиака и запишем данные в ассоциативный хэш-массив
      file = File.read("#{__dir__}/data/signs.json", encoding: 'utf-8')
      JSON.parse(file)
    end

    # Определение знака зодиака по дате рождения через консоль
    def definition_sign_console
      # Запрос у пользователя даты его рождения
      puts 'Когда вы родились (укажите дату в формате ДД.ММ, например, 31.12)'
      user_date_string = $stdin.gets.chomp

      AstrologicalForecast::Facts.sign_identification(sign, user_date_string)
    end

    def definition_sign_hands
      raise IncorrectDate unless @date.match?(/\A(\d{2})\.(\d{2})\z/)

      AstrologicalForecast::Facts.sign_identification(sign, @date)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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