Module: Watchbuffy

Defined in:
lib/watchbuffy.rb,
lib/watchbuffy/version.rb

Constant Summary collapse

EPISODES =
JSON.parse(File.read(__dir__ + "/../data/buffyverse-episodes.json"))["episodes"]
BUFFY_SEASONS =
[1, 2, 3, 4, 5, 6, 7]
ANGEL_SEASONS =
[1, 2, 3, 4, 5]
VERSION =
"1.0.3"

Class Method Summary collapse

Class Method Details

.pick(show: %w[buffy angel],, buffy_season: BUFFY_SEASONS, angel_season: ANGEL_SEASONS, exclude_characters: []) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/watchbuffy.rb', line 11

def pick(show: %w[buffy angel], buffy_season: BUFFY_SEASONS, angel_season: ANGEL_SEASONS, exclude_characters: [])
  episode = EPISODES.select{ |e|
    show.include?(e["show"]) &&
    (
      e["show"] == "buffy" && Array(buffy_season).include?(e["season"]) ||
      e["show"] == "angel" && Array(angel_season).include?(e["season"])
    ) &&
    (Array(e["includesCharacters"]) & Array(exclude_characters)).length.zero?
  }.sample

  if episode
    watch(episode)
  else
    puts "No episode found"
  end
end