Add Feed#[] for episode lookup by number
Assisted-by: Claude Opus 4.6 via pi
diff --git a/Rakefile b/Rakefile
index 11adf85..d4e66cc 100644
--- a/Rakefile
+++ b/Rakefile
@@ -25,12 +25,6 @@ def feed
@feed ||= CookingIssues::Feed.new(HRN_FEED)
end
-def find_episode(number)
- ep = feed.episodes.find { |e| e.number == number.to_i }
- abort "Episode #{number} not found in feed." unless ep
- ep
-end
-
# --- Tasks ---
task default: :sync
@@ -56,7 +50,8 @@ desc "Transcribe an episode by number (e.g., rake transcribe[42])"
task :transcribe, [:number] => HRN_FEED do |_t, args|
abort "Usage: rake transcribe[NUMBER]" unless args[:number]
- ep = find_episode(args[:number])
+ ep = feed[args[:number].to_i]
+ abort "Episode #{args[:number]} not found in feed." unless ep
audio = File.join(AUDIO_DIR, "#{ep.slug}.mp3")
abort "Audio not found: #{audio}\nRun `rake sync` first." unless File.exist?(audio)
diff --git a/lib/feed.rb b/lib/feed.rb
index c40d862..803922f 100644
--- a/lib/feed.rb
+++ b/lib/feed.rb
@@ -24,6 +24,10 @@ module CookingIssues
@episodes ||= parse(File.read(@path))
end
+ def [](number)
+ episodes.find { |e| e.number == number }
+ end
+
private
def parse(xml)