Class: DeployHoroscope::Collection

Inherits:
Object
  • Object
show all
Defined in:
lib/deploy_horoscope/collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(signs, actual_date) ⇒ Collection

Returns a new instance of Collection.

Parameters:

  • signs (Array<Sign>)
  • actual_date (String)

    DateTime in ‘%d/%m/%Y’ format



7
8
9
10
# File 'lib/deploy_horoscope/collection.rb', line 7

def initialize(signs, actual_date)
  @signs = signs
  @actual_date = actual_date
end

Instance Attribute Details

#actual_dateObject (readonly)

Returns the value of attribute actual_date.



16
# File 'lib/deploy_horoscope/collection.rb', line 16

attr_reader :signs, :actual_date

#signsArray<Sign> (readonly)

Returns:



16
17
18
# File 'lib/deploy_horoscope/collection.rb', line 16

def signs
  @signs
end

Instance Method Details

#can_deploy_signs(lang = :en) ⇒ Array<Symbols>

Returns Ex: [:aries, :taurus].

Parameters:

  • lang (Symbol) (defaults to: :en)

    :en or :ru

Returns:

  • (Array<Symbols>)

    Ex: [:aries, :taurus]



29
30
31
32
# File 'lib/deploy_horoscope/collection.rb', line 29

def can_deploy_signs(lang = :en)
  items = signs.reject { |i| i.today == :unfavorable }
  lang == :ru ? items.map(&:sign_ru) : items.map(&:sign)
end

#neutral_today(lang = :en) ⇒ Array<Symbols>

Returns Ex: [:aries, :taurus].

Parameters:

  • lang (Symbol) (defaults to: :en)

    :en or :ru

Returns:

  • (Array<Symbols>)

    Ex: [:aries, :taurus]



50
51
52
53
# File 'lib/deploy_horoscope/collection.rb', line 50

def neutral_today(lang = :en)
  items = select_by_type(:neutral)
  lang == :ru ? items.map(&:sign_ru) : items.map(&:sign)
end

#positive_today(lang = :en) ⇒ Array<Symbols>

Returns Ex: [:aries, :taurus].

Parameters:

  • lang (Symbol) (defaults to: :en)

    :en or :ru

Returns:

  • (Array<Symbols>)

    Ex: [:aries, :taurus]



36
37
38
39
# File 'lib/deploy_horoscope/collection.rb', line 36

def positive_today(lang = :en)
  items = select_by_type(:positive)
  lang == :ru ? items.map(&:sign_ru) : items.map(&:sign)
end

#sign(sign = ::DeployHoroscope::SIGNS.firts) ⇒ Sign

Parameters:

  • sign (Symbol) (defaults to: ::DeployHoroscope::SIGNS.firts)

    :aries, :taurus, etc

Returns:

Raises:



21
22
23
24
25
# File 'lib/deploy_horoscope/collection.rb', line 21

def sign(sign = ::DeployHoroscope::SIGNS.firts)
  raise ::DeployHoroscope::Error, "Undefined sign '#{sign}'" unless SIGNS.values.include?(sign)

  signs.find { |i| i.sign == sign }
end

#unfavorable_today(lang = :en) ⇒ Array<Symbols>

Returns Ex: [:aries, :taurus].

Parameters:

  • lang (Symbol) (defaults to: :en)

    :en or :ru

Returns:

  • (Array<Symbols>)

    Ex: [:aries, :taurus]



43
44
45
46
# File 'lib/deploy_horoscope/collection.rb', line 43

def unfavorable_today(lang = :en)
  items = select_by_type(:unfavorable)
  lang == :ru ? items.map(&:sign_ru) : items.map(&:sign)
end