Class: Parser::Astrology

Inherits:
Object
  • Object
show all
Defined in:
lib/fly_parser/sources/astrology.rb

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ Astrology

Returns a new instance of Astrology.



5
6
7
8
9
10
11
12
13
14
# File 'lib/fly_parser/sources/astrology.rb', line 5

def initialize(source)
  @zodiacs = ['Овен','Телец','Близнецы','Рак','Лев','Дева','Весы','Скорпион','Стрелец','Козерог','Водолей','Рыбы']
  @source = Parser.connect(source)

  small_titles = ["Гороскоп на сегодня", "Гороскоп на завтра", "Гороскоп на неделю"]
  big_titles = ["Гороскопы на месяц", "Гороскоп на 2014 год", "Гороскоп на 2014 год зеленой Лошади", "Гороскоп на сентябрь 2014"]
  @titles = Hashie::Mash.new 
  @titles.small = small_titles
  @titles.big = big_titles
end

Instance Method Details

#parse_allObject



35
36
37
38
39
40
# File 'lib/fly_parser/sources/astrology.rb', line 35

def parse_all
  small_content = @titles.small.map { |title| {title: title, content: parse_in(title,"small")} }
  big_content = @titles.big.map { |title| {title: title, content: parse_in(title,"big")} }
  
  small_content.concat big_content
end

#parse_contentObject



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/fly_parser/sources/astrology.rb', line 22

def parse_content
  zodiac_links.map do |item|
    link = item.link
    zodiac = item.zodiac
    @page = Parser.http(link.value)
    content = (@date == 'small' ? parse_small : parse_big)
    result = Hashie::Mash.new 
    result.zodiac = zodiac
    result.content = content
    result
  end
end

#parse_in(text = "Гороскоп на сегодня", date = 'small') ⇒ Object



16
17
18
19
20
# File 'lib/fly_parser/sources/astrology.rb', line 16

def parse_in(text = "Гороскоп на сегодня", date = 'small')
  @text = text
  @date = date
  parse_content
end