From b3a4dc479b0d0c77dd4fbe0584b4ebc6f1ef9b22 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:05:55 +0800 Subject: [PATCH] Prepare to support ruby 3.3. --- app/helpers/custom_announcements_helper.rb | 8 +- lib/custom_announcement/engine.rb | 286 +++++++++++---------- 2 files changed, 148 insertions(+), 146 deletions(-) diff --git a/app/helpers/custom_announcements_helper.rb b/app/helpers/custom_announcements_helper.rb index ec8b8b6..6312b87 100644 --- a/app/helpers/custom_announcements_helper.rb +++ b/app/helpers/custom_announcements_helper.rb @@ -320,9 +320,9 @@ module CustomAnnouncementsHelper if @target_action == "index" filename = overridehtml.nil? ? params[:layout_type] : overridehtml f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "#{filename}.html.erb") - if !File.exists?f + if !File.exist?(f) f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "index.html.erb") - if !File.exists?f + if !File.exist?(f) return "
Maybe the administrator has changed the theme, please select the index page design again from the page settings.
".html_safe end end @@ -362,7 +362,7 @@ module CustomAnnouncementsHelper else filename = overridehtml.nil? ? @target_action : overridehtml f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', 'custom_announcement', "#{filename}.html.erb") - if File.exists?f + if File.exist?(f) file = File.open(f) doc = Nokogiri::HTML(file, nil, "UTF-8") file.close @@ -464,7 +464,7 @@ module CustomAnnouncementsHelper layout_types = [] @key = Site.first.template f = File.join("#{Rails.root}/app/templates/#{@key}/modules/#{module_app}/info.json") - if File.exists?f + if File.exist?(f) info = File.read(f) hash = JSON.parse(info) rescue {} frontends = hash["frontend"] || [] diff --git a/lib/custom_announcement/engine.rb b/lib/custom_announcement/engine.rb index 96751f2..6834254 100644 --- a/lib/custom_announcement/engine.rb +++ b/lib/custom_announcement/engine.rb @@ -2,153 +2,155 @@ require "yaml" module CustomAnnouncement class Engine < ::Rails::Engine initializer "custom_announcement" do - begin - translate_data = Dir["#{CustomAnnouncement::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} - data = {} - key1 = {} - key2 = {} - key3 = {} - key4 = {} - key1_attr = [] - key2_attr = [] - key3_attr = [] - key4_attr = [] - data_item = {} - key_item1 = {} - key_item2 = {} - key_item3 = {} - value_item1 = {} - value_item2 = {} - value_item3 = {} - value2_item1 = {} - value2_item2 = {} - key1_options = ['small_size','medium_size','orignal_size'] - key2_options = ['not_enable_tabs','enable_tabs_with_categories_include_all','enable_tabs_with_categories'] - key3_options = ['default','upper_left','lower_left','upper_right','lower_right'] - key4_options = ['the_same_as_data_count','display_all_in_other_tabs'] - key1_options.each_with_index do |k,i| - key1_attr[i] = {} - end - key2_options.each_with_index do |k,i| - key2_attr[i] = {} - end - key3_options.each_with_index do |k,i| - key3_attr[i] = {} - end - key4_options.each_with_index do |k,i| - key4_attr[i] = {} - end - translate_data.each do |t_data| - v = t_data.values - k = t_data.keys[0] - key1[k] = v[0]['custom_announcement']['picture_showing_size'] - key2[k] = v[0]['custom_announcement']['tabs_options'] - key3[k] = v[0]['custom_announcement']['read_more_position_options'] - key4[k] = v[0]['custom_announcement']['all_tabs_setting'] - key1_options.each_with_index do |kk,i| - key1_attr[i][k] = v[0]['custom_announcement'][kk] - end - key2_options.each_with_index do |kk,i| - key2_attr[i][k] = v[0]['custom_announcement'][kk] - end - key3_options.each_with_index do |kk,i| - key3_attr[i][k] = v[0]['custom_announcement'][kk] - end - key4_options.each_with_index do |kk,i| - key4_attr[i][k] = v[0]['custom_announcement'][kk] - end - key_item1[k] = v[0]['custom_announcement']['showing_back_and_next'] - key_item2[k] = v[0]['custom_announcement']['enable_search'] - value_item1[k] = v[0]['custom_announcement']['not_show'] - value_item2[k] = v[0]['custom_announcement']['show_bottom'] - value_item3[k] = v[0]['custom_announcement']['show_top'] - value2_item1[k] = v[0]['custom_announcement']['no'] - value2_item2[k] = v[0]['custom_announcement']['yes'] - end - data[key1] = key1_attr - data[key2] = key2_attr - data[key3] = key3_attr - data[key4] = key4_attr - data_item[key_item1] = [value_item1,value_item2,value_item3] - data_item[key_item2] = [value2_item1,value2_item2] - require File.expand_path('../../../app/models/custom_anns_cache', __FILE__) - if defined? CustomAnnsCache - CustomAnnsCache.destroy_all - end - rescue => e - puts ['error in custom_announcement',e] - end - OrbitApp.registration "CustomAnnouncement", :type => "ModuleApp" do - module_label "custom_announcement.custom_announcement" - base_url File.expand_path File.dirname(__FILE__) - widget_methods ["widget","random_custom_announcement_widget", "tag_cloud"] - widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] - taggable "CustomBulletin" - categorizable - authorizable - frontend_enabled - feeds_url "/xhr/custom_announcements/feeds" - data_count 1..30 + Rails.application.config.to_prepare do begin - show_options data - show_option_items data_item - rescue => e - puts ['there_was_no_show_option_method',e] + translate_data = Dir["#{CustomAnnouncement::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} + data = {} + key1 = {} + key2 = {} + key3 = {} + key4 = {} + key1_attr = [] + key2_attr = [] + key3_attr = [] + key4_attr = [] + data_item = {} + key_item1 = {} + key_item2 = {} + key_item3 = {} + value_item1 = {} + value_item2 = {} + value_item3 = {} + value2_item1 = {} + value2_item2 = {} + key1_options = ['small_size','medium_size','orignal_size'] + key2_options = ['not_enable_tabs','enable_tabs_with_categories_include_all','enable_tabs_with_categories'] + key3_options = ['default','upper_left','lower_left','upper_right','lower_right'] + key4_options = ['the_same_as_data_count','display_all_in_other_tabs'] + key1_options.each_with_index do |k,i| + key1_attr[i] = {} + end + key2_options.each_with_index do |k,i| + key2_attr[i] = {} + end + key3_options.each_with_index do |k,i| + key3_attr[i] = {} + end + key4_options.each_with_index do |k,i| + key4_attr[i] = {} + end + translate_data.each do |t_data| + v = t_data.values + k = t_data.keys[0] + key1[k] = v[0]['custom_announcement']['picture_showing_size'] + key2[k] = v[0]['custom_announcement']['tabs_options'] + key3[k] = v[0]['custom_announcement']['read_more_position_options'] + key4[k] = v[0]['custom_announcement']['all_tabs_setting'] + key1_options.each_with_index do |kk,i| + key1_attr[i][k] = v[0]['custom_announcement'][kk] + end + key2_options.each_with_index do |kk,i| + key2_attr[i][k] = v[0]['custom_announcement'][kk] + end + key3_options.each_with_index do |kk,i| + key3_attr[i][k] = v[0]['custom_announcement'][kk] + end + key4_options.each_with_index do |kk,i| + key4_attr[i][k] = v[0]['custom_announcement'][kk] + end + key_item1[k] = v[0]['custom_announcement']['showing_back_and_next'] + key_item2[k] = v[0]['custom_announcement']['enable_search'] + value_item1[k] = v[0]['custom_announcement']['not_show'] + value_item2[k] = v[0]['custom_announcement']['show_bottom'] + value_item3[k] = v[0]['custom_announcement']['show_top'] + value2_item1[k] = v[0]['custom_announcement']['no'] + value2_item2[k] = v[0]['custom_announcement']['yes'] + end + data[key1] = key1_attr + data[key2] = key2_attr + data[key3] = key3_attr + data[key4] = key4_attr + data_item[key_item1] = [value_item1,value_item2,value_item3] + data_item[key_item2] = [value2_item1,value2_item2] + require File.expand_path('../../../app/models/custom_anns_cache', __FILE__) + if defined? CustomAnnsCache + CustomAnnsCache.destroy_all + end + rescue => e + puts ['error in custom_announcement',e] end - side_bar do - set_sidebar_order(100) rescue nil - head_label_i18n 'custom_announcement.custom_announcement', icon_class: "icon-bullhorn" - available_for "users" - active_for_controllers (['admin/custom_announcements']) - head_link_path "admin_custom_announcements_path" + OrbitApp.registration "CustomAnnouncement", :type => "ModuleApp" do + module_label "custom_announcement.custom_announcement" + base_url File.expand_path File.dirname(__FILE__) + widget_methods ["widget","random_custom_announcement_widget", "tag_cloud"] + widget_settings [{"data_count"=>30,"enable_custom_widget_data"=>true}] + taggable "CustomBulletin" + categorizable + authorizable + frontend_enabled + feeds_url "/xhr/custom_announcements/feeds" + data_count 1..30 + begin + show_options data + show_option_items data_item + rescue => e + puts ['there_was_no_show_option_method',e] + end + side_bar do + set_sidebar_order(100) rescue nil + head_label_i18n 'custom_announcement.custom_announcement', icon_class: "icon-bullhorn" + available_for "users" + active_for_controllers (['admin/custom_announcements']) + head_link_path "admin_custom_announcements_path" + + context_link 'custom_announcement.all_articles', + :link_path=>"admin_custom_announcements_path" , + :priority=>1, + :active_for_action=>{'admin/custom_announcements'=>'index'}, + :available_for => 'users' + # context_link 'new_', + # :link_path=>"new_admin_custom_announcement_path" , + # :priority=>2, + # :active_for_action=>{'admin/custom_announcements'=>'new'}, + # :available_for => 'sub_managers' + context_link 'categories', + :link_path=>"admin_module_app_categories_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", + :priority=>3, + :active_for_action=>{'admin/custom_announcements'=>'categories'}, + :active_for_category => 'CustomAnnouncement', + :available_for => 'managers' + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", + :priority=>4, + :active_for_action=>{'admin/custom_announcements'=>'tags'}, + :active_for_tag => 'CustomAnnouncement', + :available_for => 'managers' + context_link 'custom_announcement.feed_list', + :link_path=>"admin_custom_announcement_feed_path" , + :priority=>5, + :active_for_action=>{'admin/custom_announcements'=>'feed'}, + :available_for => 'managers' + context_link 'custom_announcement.import', + :link_path=>"admin_custom_announcement_import_path" , + :priority=>6, + :active_for_action=>{'admin/custom_announcements'=>'import'}, + :available_for => 'managers' + context_link 'custom_announcement.settings', + :link_path=>"admin_custom_announcement_settings_path" , + :priority=>6, + :active_for_action=>{'admin/custom_announcements'=>'settings'}, + :available_for => 'managers' + end - context_link 'custom_announcement.all_articles', - :link_path=>"admin_custom_announcements_path" , - :priority=>1, - :active_for_action=>{'admin/custom_announcements'=>'index'}, - :available_for => 'users' - # context_link 'new_', - # :link_path=>"new_admin_custom_announcement_path" , - # :priority=>2, - # :active_for_action=>{'admin/custom_announcements'=>'new'}, - # :available_for => 'sub_managers' - context_link 'categories', - :link_path=>"admin_module_app_categories_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", - :priority=>3, - :active_for_action=>{'admin/custom_announcements'=>'categories'}, - :active_for_category => 'CustomAnnouncement', - :available_for => 'managers' - context_link 'tags', - :link_path=>"admin_module_app_tags_path" , - :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'custom_announcement').id}", - :priority=>4, - :active_for_action=>{'admin/custom_announcements'=>'tags'}, - :active_for_tag => 'CustomAnnouncement', - :available_for => 'managers' - context_link 'custom_announcement.feed_list', - :link_path=>"admin_custom_announcement_feed_path" , - :priority=>5, - :active_for_action=>{'admin/custom_announcements'=>'feed'}, - :available_for => 'managers' - context_link 'custom_announcement.import', - :link_path=>"admin_custom_announcement_import_path" , - :priority=>6, - :active_for_action=>{'admin/custom_announcements'=>'import'}, - :available_for => 'managers' - context_link 'custom_announcement.settings', - :link_path=>"admin_custom_announcement_settings_path" , - :priority=>6, - :active_for_action=>{'admin/custom_announcements'=>'settings'}, - :available_for => 'managers' end - + # temp = YAML.load_file(File.join(Rails.root,"config","mongoid.yml")) + # dbsettings = temp["production"]["sessions"]["default"] + # s = Moped::Session.new(dbsettings["hosts"]) + # s.use dbsettings["database"] + # s[:custom_bulletins].indexes.create({expirable_created_at: 1},{ expireAfterSeconds: 180 }) end - # temp = YAML.load_file(File.join(Rails.root,"config","mongoid.yml")) - # dbsettings = temp["production"]["sessions"]["default"] - # s = Moped::Session.new(dbsettings["hosts"]) - # s.use dbsettings["database"] - # s[:custom_bulletins].indexes.create({expirable_created_at: 1},{ expireAfterSeconds: 180 }) end end end \ No newline at end of file