class Sesc::Parser::Sp::Events

Constants

VALUES

Public Class Methods

new(html_body_events) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 12
def initialize(html_body_events)
  @events = Body.new(html_body_events).events
end

Public Instance Methods

to_hash() click to toggle source
# File lib/sesc/parser/sp/events.rb, line 16
def to_hash
  group_by_place(load_events)
end

Private Instance Methods

age_limit(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 76
def age_limit(event)
  event.elements[3].children[3].elements.last.text
end
availability(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 43
def availability(event)
  event.elements[0].css('span').last.children.first&.text
end
category(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 47
def category(event)
  event.elements[1].css('p').first.children[1].text
end
clear_text_for(text) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 85
def clear_text_for(text)
  text.delete("\r").delete("\n").delete("\t").strip
end
date(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 55
def date(event)
  clear_text_for(
    event.elements[1].css('span').first.children.first.text
  )
end
description(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 70
def description(event)
  clear_text_for(
    event.elements[1].css('form').last.children[1].children.first.text
  )
end
group_by_place(events) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 30
def group_by_place(events)
  events.group_by { |event| event[:place] }
end
hours(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 61
def hours(event)
  clear_text_for(event.elements[1].css('span')[1].children.first.text)
end
image_url(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 38
def image_url(event)
  i = event.elements[0].css('span').first
  i.attributes.values.last.value[22..-3]
end
load_events() click to toggle source
# File lib/sesc/parser/sp/events.rb, line 22
def load_events
  @events.map do |event|
    VALUES.each_with_object({}) do |value, memo|
      memo[value] = send(value, event)
    end
  end
end
place(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 65
def place(event)
  p = event.elements[1].css('span')[2].children.first.text
  "SESC #{clear_text_for(p)}"
end
price(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 80
def price(event)
  p = clear_text_for(event.elements[3].children[5].text)
  p.split('R$ ').join(' R$ ').strip
end
title(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 51
def title(event)
  event.elements[1].css('a')[1].attributes['data-ga-action'].value
end
url(event) click to toggle source
# File lib/sesc/parser/sp/events.rb, line 34
def url(event)
  event.elements[0].css('a').first.attributes['href'].value
end