Use Weirich-style blocks: braces for values, do/end for effects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LG4iASZnHb1yEM1JAASiWn
change
commit 8720fb86d1b4b33b669e8d1ac0e7e96909af260e
author Claude <noreply@anthropic.com>
date
parent 5e8a2ce0
diff --git a/lib/rank_king/google.rb b/lib/rank_king/google.rb
index cc813d5..ff0a4a3 100644
--- a/lib/rank_king/google.rb
+++ b/lib/rank_king/google.rb
@@ -60,9 +60,9 @@ module RankKing
     # out Watch Later and Liked videos.
     #: (String access_token) -> Array[[String, String]]
     def self.playlists(access_token)
-      pages(access_token, PLAYLISTS_URL, { part: "snippet", mine: "true" }).map do |item|
+      pages(access_token, PLAYLISTS_URL, { part: "snippet", mine: "true" }).map { |item|
         [item.fetch("id"), item.dig("snippet", "title").to_s] #: [String, String]
-      end
+      }
     end
 
     # The videos in a playlist, in playlist order, as [video id, title].
@@ -71,12 +71,12 @@ module RankKing
     #: (String access_token, String playlist_id) -> Array[[String, String]]
     def self.playlist_videos(access_token, playlist_id)
       items = pages(access_token, PLAYLIST_ITEMS_URL, { part: "snippet", playlistId: playlist_id })
-      items.filter_map do |item|
+      items.filter_map { |item|
         snippet = item.fetch("snippet")
         next unless snippet["videoOwnerChannelTitle"]
 
         [snippet.dig("resourceId", "videoId"), snippet.fetch("title")] #: [String, String]
-      end
+      }
     end
 
     # Every item of a YouTube list endpoint, following its pages.
@@ -105,7 +105,9 @@ module RankKing
     def self.request(method, url, params, access_token)
       uri = URI(url)
       request = if method == :post
-        Net::HTTP::Post.new(uri).tap { |post| post.set_form_data(params) }
+        Net::HTTP::Post.new(uri).tap do |post|
+          post.set_form_data(params)
+        end
       else
         uri.query = URI.encode_www_form(params)
         Net::HTTP::Get.new(uri)
diff --git a/lib/rank_king/sources/text.rb b/lib/rank_king/sources/text.rb
index 7445d07..bcb9e20 100644
--- a/lib/rank_king/sources/text.rb
+++ b/lib/rank_king/sources/text.rb
@@ -24,7 +24,9 @@ module RankKing
         names = params["items"].to_s.lines.map(&:strip).reject(&:empty?)
         return false if names.size < 2
 
-        names.each { |name| Item.create(list_id: list.id, name:) }
+        names.each do |name|
+          Item.create(list_id: list.id, name:)
+        end
         true
       end
 
@@ -60,7 +62,9 @@ module RankKing
             end
           end
 
-          added.each {|name| Item.create(list_id: @list.id, name:) }
+          added.each do |name|
+            Item.create(list_id: @list.id, name:)
+          end
         end
       end
     end
diff --git a/lib/rank_king/sources/youtube_playlist.rb b/lib/rank_king/sources/youtube_playlist.rb
index c91eb97..66277a7 100644
--- a/lib/rank_king/sources/youtube_playlist.rb
+++ b/lib/rank_king/sources/youtube_playlist.rb
@@ -78,9 +78,9 @@ module RankKing
       #: () -> Hash[String, Item]
       def items_by_key
         video_ids = DB[ITEMS].where(item_id: Item.where(list_id: @list.id).select(:id)).to_hash(:item_id, :video_id)
-        Item.where(id: video_ids.keys).all.to_h do |item|
+        Item.where(id: video_ids.keys).all.to_h { |item|
           [video_ids.fetch(item.id).to_s, item] #: [String, Item]
-        end
+        }
       end
 
       #: (Item item, Entry entry) -> void
diff --git a/lib/rank_king/views/list/new.rb b/lib/rank_king/views/list/new.rb
index 6bb5ba3..1025ae7 100644
--- a/lib/rank_king/views/list/new.rb
+++ b/lib/rank_king/views/list/new.rb
@@ -29,7 +29,9 @@ module RankKing
               label(class: "field") do
                 plain "Source"
                 select(name: "source") do
-                  @sources.each { |kind, title, _fields| option(value: kind) { title } }
+                  @sources.each do |kind, title, _fields|
+                    option(value: kind) { title }
+                  end
                 end
                 small { "A list keeps its source." }
               end
diff --git a/lib/rank_king/views/sources/youtube_playlist.rb b/lib/rank_king/views/sources/youtube_playlist.rb
index 63fe2a8..d100da2 100644
--- a/lib/rank_king/views/sources/youtube_playlist.rb
+++ b/lib/rank_king/views/sources/youtube_playlist.rb
@@ -24,7 +24,9 @@ module RankKing
             label(class: "field") do
               plain "Playlist"
               select(name: "playlist", required: true) do
-                @playlists.each { |id, title| option(value: id) { title } }
+                @playlists.each do |id, title|
+                  option(value: id) { title }
+                end
               end
               small { "Private playlists are listed too. YouTube does not share Watch Later." }
             end
diff --git a/lib/rank_king/web.rb b/lib/rank_king/web.rb
index c2b8be4..982fd9b 100644
--- a/lib/rank_king/web.rb
+++ b/lib/rank_king/web.rb
@@ -92,13 +92,15 @@ module RankKing
 
             # The source fills the list from its own fields, or turns it
             # down and nothing is made.
-            list = DB.transaction do
+            list = DB.transaction {
               l = List.create(name: name, user_id: user.id, source_kind: source_kind)
               raise Sequel::Rollback unless Sources.fetch(source_kind).create(l, r.params)
 
-              axis_names.each { |n| Axis.create(list_id: l.id, name: n) }
+              axis_names.each do |n|
+                Axis.create(list_id: l.id, name: n)
+              end
               l
-            end
+            }
             r.halt 422 unless list
 
             r.redirect "/lists/#{list.id}"
@@ -106,10 +108,10 @@ module RankKing
         end
 
         r.get "new" do
-          kinds = Sources::KINDS.map do |kind|
+          kinds = Sources::KINDS.map { |kind|
             source = Sources.fetch(kind)
             [kind, source.title, source.fields(user)] #: [String, String, Sources::_Component]
-          end
+          }
           Views::ListViews::New.new(sources: kinds, csrf: method(:csrf_token)).call
         end