@@ -81,8 +81,9 @@ namespace :news do
8181 f . write ( formatted_items . to_yaml )
8282 end
8383
84- logger . info ( "✅ Wrote #{ merged_items . size } items to #{ NEWS_YAML_PATH } (#{ created_items . size } new, #{ updated_items . size } updated)" )
85- logger . info ( '==== END news:fetch ====' )
84+ logger . info "✅ Wrote #{ merged_items . size } items to #{ NEWS_YAML_PATH } (#{ created_items . size } new, #{ updated_items . size } updated)"
85+ logger . info "==== END news:fetch ===="
86+ logger . info ""
8687 end
8788
8889 desc "#{ NEWS_YAML_PATH } からデータベースに upsert"
@@ -93,32 +94,33 @@ namespace :news do
9394
9495 logger . info "==== START news:upsert ===="
9596
96- entries = YAML . safe_load File . read ( NEWS_YAML_PATH )
97- new_count = 0
97+ news_items = YAML . safe_load File . read ( NEWS_YAML_PATH )
98+ created_count = 0
9899 updated_count = 0
99100
100101 News . transaction do
101- entries . each do |attrs |
102- news = News . find_or_initialize_by ( url : attrs [ 'url' ] )
103- is_new = news . new_record?
104-
102+ news_items . each do |item |
103+ news = News . find_or_initialize_by ( url : item [ 'url' ] )
105104 news . assign_attributes (
106- title : attrs [ 'title' ] ,
107- published_at : attrs [ 'published_at' ]
105+ title : item [ 'title' ] ,
106+ published_at : item [ 'published_at' ]
108107 )
109108
110- if is_new || news . changed?
109+ is_new_record = news . new_record?
110+ if is_new_record || news . changed?
111111 news . save!
112- status = is_new ? 'new' : 'updated'
113- new_count += 1 if is_new
114- updated_count += 1 unless is_new
112+
113+ status = is_new_record ? 'new' : 'updated'
114+ created_count += 1 if is_new_record
115+ updated_count += 1 unless is_new_record
115116
116117 logger . info "[News] #{ news . published_at . to_date } #{ news . title } (#{ status } )"
117118 end
118119 end
119120 end
120121
121- logger . info "Upserted #{ new_count + updated_count } items (#{ new_count } new, #{ updated_count } updated)."
122+ logger . info "Upserted #{ created_count + updated_count } items (#{ created_count } new, #{ updated_count } updated)."
122123 logger . info "==== END news:upsert ===="
124+ logger . info ""
123125 end
124126end
0 commit comments