Class: VersioRac1::Podcast::Episode

Inherits:
Object
  • Object
show all
Defined in:
lib/versio_rac1/podcast/episode.rb

Constant Summary collapse

ONE_DAY =
24 * 3600
DESCRIPTION_DATE_FORMAT =
"Emis.: %d-%m-%y a les %Hh"
DESCRIPTION_DATE_TIME_ZONE =
"Europe/Berlin"

Class Method Summary collapse

Class Method Details

.allObject



18
19
20
# File 'lib/versio_rac1/podcast/episode.rb', line 18

def self.all
  Client.list
end

.find(date) ⇒ Object



22
23
24
25
26
27
# File 'lib/versio_rac1/podcast/episode.rb', line 22

def self.find(date)
  all.select do |episode|
    episode.broadcasted_at > date &&
    episode.broadcasted_at < date + ONE_DAY
  end
end

.from_slop(episode_slop) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/versio_rac1/podcast/episode.rb', line 29

def self.from_slop(episode_slop)
  title = episode_slop.title.text
  broadcasted_at = parse_description(episode_slop.at("description").text)
  link = episode_slop.link.text

  new(title: title, broadcasted_at: broadcasted_at, link: link)
end

.parse_description(description) ⇒ Object



37
38
39
40
41
42
# File 'lib/versio_rac1/podcast/episode.rb', line 37

def self.parse_description(description)
  date_time = DateTime.strptime(description, DESCRIPTION_DATE_FORMAT)
  offset    = date_time.to_time.in_time_zone(DESCRIPTION_DATE_TIME_ZONE).
                        utc_offset
  date_time.change(offset: offset / 3600.0 / 24)
end