From a790cc0c72b6dd67e78918f6ffafcf3fc3c6119e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Sat, 24 Feb 2024 21:12:32 +0800 Subject: [PATCH] Prepare to support ruby 3.3. --- app/controllers/feeds_controller.rb | 4 +- app/models/site_feed.rb | 4 +- lib/feeds/engine.rb | 101 ++++++++++++++-------------- 3 files changed, 54 insertions(+), 55 deletions(-) diff --git a/app/controllers/feeds_controller.rb b/app/controllers/feeds_controller.rb index 6c11ea1..da42b02 100644 --- a/app/controllers/feeds_controller.rb +++ b/app/controllers/feeds_controller.rb @@ -136,7 +136,7 @@ class FeedsController < ApplicationController end elsif params[:type] == 'update_all' feed_data = params[:data] - FileUtils.mkdir_p(feed_directory) if !File.exists?(feed_directory) + FileUtils.mkdir_p(feed_directory) if !File.exist?(feed_directory) File.open(File.join(feed_directory.to_s,feed.feed_uid + ".json"),"w") do |file| feed_data.force_encoding("utf-8") file.write(feed_data) @@ -151,7 +151,7 @@ class FeedsController < ApplicationController end if need_write feed_data = feed_data.to_json - FileUtils.mkdir_p(feed_directory) if !File.exists?(feed_directory) + FileUtils.mkdir_p(feed_directory) if !File.exist?(feed_directory) File.open(File.join(feed_directory.to_s,feed.feed_uid + ".json"),"w") do |file| feed_data.force_encoding("utf-8") file.write(feed_data) diff --git a/app/models/site_feed.rb b/app/models/site_feed.rb index d65a5f7..0985638 100644 --- a/app/models/site_feed.rb +++ b/app/models/site_feed.rb @@ -95,7 +95,7 @@ class SiteFeed end main_directory = File.join("#{Rails.root}","public","site_feeds") feed_directory = File.join(main_directory.to_s, self.id.to_s) - if !force_refresh && File.exists?(feed_directory) + if !force_refresh && File.exist?(feed_directory) anns = JSON.parse(File.read(File.join(feed_directory.to_s, self.feed_uid + ".json")))[self.channel_key.pluralize] rescue [] else uri = URI(self.feed_url) @@ -143,7 +143,7 @@ class SiteFeed end res = JSON.dump({"announcements" => res_to_json}) end - FileUtils.mkdir_p(feed_directory) if !File.exists?(feed_directory) + FileUtils.mkdir_p(feed_directory) if !File.exist?(feed_directory) File.open(File.join(feed_directory.to_s,self.feed_uid + ".json"),"w") do |file| res.force_encoding("utf-8") file.write(res) diff --git a/lib/feeds/engine.rb b/lib/feeds/engine.rb index 3c8cdca..6b5dfc7 100644 --- a/lib/feeds/engine.rb +++ b/lib/feeds/engine.rb @@ -1,62 +1,61 @@ module Feeds class Engine < ::Rails::Engine initializer "feeds" do - if ENV['worker_num']=='0' && File.basename($0) != 'rake' && !Rails.const_defined?('Console') - require File.expand_path('../../../app/models/site_feed_setting', __FILE__) - if defined?(SiteFeedSetting) - if SiteFeedSetting.count==0 - SiteFeedSetting.create + Rails.application.config.to_prepare do + if ENV['worker_num']=='0' && File.basename($0) != 'rake' && !Rails.const_defined?('Console') + require File.expand_path('../../../app/models/site_feed_setting', __FILE__) + if defined?(SiteFeedSetting) + if SiteFeedSetting.count==0 + SiteFeedSetting.create + end end end - end - OrbitApp.registration "Feeds", :type => "ModuleApp" do - module_label "feed.feed" - base_url File.expand_path File.dirname(__FILE__) - categorizable - authorizable - if File.basename($0) != 'rake' - begin - avoid_page_cache SiteFeed - rescue => e - puts ["avoid_page_cache", e.to_s] + OrbitApp.registration "Feeds", :type => "ModuleApp" do + module_label "feed.feed" + base_url File.expand_path File.dirname(__FILE__) + categorizable + authorizable + if File.basename($0) != 'rake' + begin + avoid_page_cache SiteFeed + rescue => e + puts ["avoid_page_cache", e.to_s] + end end - end - side_bar do - head_label_i18n 'feed.feed', icon_class: "icons-rss" - available_for "managers" - active_for_controllers (['admin/feeds']) - head_link_path "admin_feeds_path" + side_bar do + head_label_i18n 'feed.feed', icon_class: "icons-rss" + available_for "managers" + active_for_controllers (['admin/feeds']) + head_link_path "admin_feeds_path" - context_link 'feed.all_feeds', - :link_path=>"admin_feeds_path" , - :priority=>1, - :active_for_action=>{'admin/feeds'=>'index'}, - :available_for => 'managers' - context_link 'feed.new_', - :link_path=>"new_admin_feed_path" , - :priority=>2, - :active_for_action=>{'admin/feeds'=>'new'}, - :available_for => 'managers' - context_link 'feed.all_announcements', - :link_path=>"admin_feeds_announcements_path" , - :priority=>3, - :active_for_action=>{'admin/feeds'=>'announcements'}, - :available_for => 'managers' - context_link 'feed.settings', - :link_path=>"admin_feeds_settings_path" , - :priority=>3, - :active_for_action=>{'admin/feeds'=>'settings'}, - :available_for => 'managers' - - end + context_link 'feed.all_feeds', + :link_path=>"admin_feeds_path" , + :priority=>1, + :active_for_action=>{'admin/feeds'=>'index'}, + :available_for => 'managers' + context_link 'feed.new_', + :link_path=>"new_admin_feed_path" , + :priority=>2, + :active_for_action=>{'admin/feeds'=>'new'}, + :available_for => 'managers' + context_link 'feed.all_announcements', + :link_path=>"admin_feeds_announcements_path" , + :priority=>3, + :active_for_action=>{'admin/feeds'=>'announcements'}, + :available_for => 'managers' + context_link 'feed.settings', + :link_path=>"admin_feeds_settings_path" , + :priority=>3, + :active_for_action=>{'admin/feeds'=>'settings'}, + :available_for => 'managers' + + end - end - spec = Gem::Specification.find_by_name("feeds") rescue nil - if !spec.nil? - gem_root = spec.gem_dir - gem_tmp = gem_root + "/tmp/" - f = File.join(gem_tmp + "install_bash") - if File.exists?(f) + end + gem_root = Feeds::Engine.root + gem_tmp = File.join(gem_root, 'tmp') + f = File.join(gem_tmp, "install_bash") + if File.exist?(f) File.delete(f) %x(cp "#{gem_root}/config/schedule.rb" config/schedule.rb) %x(whenever --update-crontab feeds --set environment="#{ENV["RAILS_ENV"]}")