From 30ac973f9610e685dc58790ee2dbfa9b1a15f351 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Tue, 5 Jun 2018 17:26:14 +0300 Subject: [PATCH 1/4] Remove `lib` folder from autoload path - Load extensions explicitly --- app/controllers/epp_controller.rb | 17 ++++++++++++++++- {lib => app/models}/sorted_country.rb | 3 --- config/application.rb | 2 +- config/initializers/devise.rb | 2 ++ config/initializers/ext.rb | 4 ++++ config/initializers/load_class_extensions.rb | 1 - config/routes.rb | 2 +- {config/initializers => lib/core_ext}/array.rb | 0 lib/{ext/xml_builder.rb => gem_ext/builder.rb} | 0 .../relaxed_i18n.rb => lib/gem_ext/i18n.rb | 2 +- .../gem_ext/paper_trail.rb | 0 lib/iptable.rb | 17 ----------------- 12 files changed, 25 insertions(+), 25 deletions(-) rename {lib => app/models}/sorted_country.rb (96%) create mode 100644 config/initializers/ext.rb delete mode 100644 config/initializers/load_class_extensions.rb rename {config/initializers => lib/core_ext}/array.rb (100%) rename lib/{ext/xml_builder.rb => gem_ext/builder.rb} (100%) rename config/initializers/relaxed_i18n.rb => lib/gem_ext/i18n.rb (86%) rename config/initializers/001_paper_trail.rb => lib/gem_ext/paper_trail.rb (100%) delete mode 100644 lib/iptable.rb diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 3eba05777..5cc006eda 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -1,5 +1,4 @@ class EppController < ApplicationController - include Iptable layout false protect_from_forgery with: :null_session skip_before_action :verify_authenticity_token @@ -407,4 +406,20 @@ class EppController < ApplicationController timeout = 5.minutes epp_session.updated_at < (Time.zone.now - timeout) end + + def counter_update(registrar_code, ip) + counter_proc = "/proc/net/xt_recent/#{registrar_code}" + + begin + File.open(counter_proc, 'a') do |f| + f.puts "+#{ip}" + end + rescue Errno::ENOENT => e + logger.error "IPTABLES COUNTER UPDATE: cannot open #{counter_proc}: #{e}" + rescue Errno::EACCES => e + logger.error "IPTABLES COUNTER UPDATE: no permission #{counter_proc}: #{e}" + rescue IOError => e + logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}" + end + end end diff --git a/lib/sorted_country.rb b/app/models/sorted_country.rb similarity index 96% rename from lib/sorted_country.rb rename to app/models/sorted_country.rb index 8b69d951a..4eb5750f5 100644 --- a/lib/sorted_country.rb +++ b/app/models/sorted_country.rb @@ -1,6 +1,3 @@ -require 'countries' -require 'action_view' - class SortedCountry class << self include ActionView::Helpers diff --git a/config/application.rb b/config/application.rb index 0d043fa5e..400e72124 100644 --- a/config/application.rb +++ b/config/application.rb @@ -40,8 +40,8 @@ module DomainNameRegistry # Autoload all model subdirs config.autoload_paths += Dir[Rails.root.join('app', 'models', '**/')] - config.autoload_paths << Rails.root.join('lib') config.eager_load_paths << config.root.join('lib', 'validators') + config.watchable_dirs['lib'] = %i[rb] # Add the fonts path config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 3fe74cba6..eceb6d5f2 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -1,3 +1,5 @@ +require 'devise_custom_failure' + # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. Devise.setup do |config| diff --git a/config/initializers/ext.rb b/config/initializers/ext.rb new file mode 100644 index 000000000..50b8b2791 --- /dev/null +++ b/config/initializers/ext.rb @@ -0,0 +1,4 @@ +require 'core_ext/array' +require 'gem_ext/builder' +require 'gem_ext/i18n' +require 'gem_ext/paper_trail' \ No newline at end of file diff --git a/config/initializers/load_class_extensions.rb b/config/initializers/load_class_extensions.rb deleted file mode 100644 index f9fb4625c..000000000 --- a/config/initializers/load_class_extensions.rb +++ /dev/null @@ -1 +0,0 @@ -Dir[File.join(Rails.root, 'lib', 'ext', '*.rb')].each { |x| require x } diff --git a/config/routes.rb b/config/routes.rb index 5ef26a195..ab6369775 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,4 @@ -require 'epp_constraint' +require_dependency 'epp_constraint' Rails.application.routes.draw do namespace(:epp, defaults: { format: :xml }) do diff --git a/config/initializers/array.rb b/lib/core_ext/array.rb similarity index 100% rename from config/initializers/array.rb rename to lib/core_ext/array.rb diff --git a/lib/ext/xml_builder.rb b/lib/gem_ext/builder.rb similarity index 100% rename from lib/ext/xml_builder.rb rename to lib/gem_ext/builder.rb diff --git a/config/initializers/relaxed_i18n.rb b/lib/gem_ext/i18n.rb similarity index 86% rename from config/initializers/relaxed_i18n.rb rename to lib/gem_ext/i18n.rb index fc9b94983..2f7fceff7 100644 --- a/config/initializers/relaxed_i18n.rb +++ b/lib/gem_ext/i18n.rb @@ -1,5 +1,5 @@ # Don't raise error when nil -# http://stackoverflow.com/questions/9467034/rails-i18n-how-to-handle-case-of-a-nil-date-being-passed-ie-lnil +# http://stackoverflow.com/questions/9467034/rails-i18n-how-to-handle-case-of-a-nil-date-being-passed-ie-lnil module I18n class << self alias_method :original_localize, :localize diff --git a/config/initializers/001_paper_trail.rb b/lib/gem_ext/paper_trail.rb similarity index 100% rename from config/initializers/001_paper_trail.rb rename to lib/gem_ext/paper_trail.rb diff --git a/lib/iptable.rb b/lib/iptable.rb deleted file mode 100644 index c41bc37f4..000000000 --- a/lib/iptable.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Iptable - def counter_update(registrar_code, ip) - counter_proc = "/proc/net/xt_recent/#{registrar_code}" - - begin - File.open(counter_proc, 'a') do |f| - f.puts "+#{ip}" - end - rescue Errno::ENOENT => e - logger.error "IPTABLES COUNTER UPDATE: cannot open #{counter_proc}: #{e}" - rescue Errno::EACCES => e - logger.error "IPTABLES COUNTER UPDATE: no permission #{counter_proc}: #{e}" - rescue IOError => e - logger.error "IPTABLES COUNTER UPDATE: cannot write #{ip} to #{counter_proc}: #{e}" - end - end -end From 132ba8c6e2d1f7638c67ba910c26605ba9bd3f62 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:11:28 +0300 Subject: [PATCH 2/4] Hide method --- app/controllers/epp_controller.rb | 12 ++++++------ doc/controllers_complete.svg | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb index 5cc006eda..4250e0e84 100644 --- a/app/controllers/epp_controller.rb +++ b/app/controllers/epp_controller.rb @@ -358,12 +358,6 @@ class EppController < ApplicationController # rubocop: enable Metrics/CyclomaticComplexity # rubocop: enable Metrics/PerceivedComplexity - def iptables_counter_update - return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true' - return if current_user.blank? - counter_update(current_user.registrar_code, ENV['iptables_server_ip']) - end - def resource name = self.class.to_s.sub("Epp::","").sub("Controller","").underscore.singularize instance_variable_get("@#{name}") @@ -407,6 +401,12 @@ class EppController < ApplicationController epp_session.updated_at < (Time.zone.now - timeout) end + def iptables_counter_update + return if ENV['iptables_counter_enabled'].blank? && ENV['iptables_counter_enabled'] != 'true' + return if current_user.blank? + counter_update(current_user.registrar_code, ENV['iptables_server_ip']) + end + def counter_update(registrar_code, ip) counter_proc = "/proc/net/xt_recent/#{registrar_code}" diff --git a/doc/controllers_complete.svg b/doc/controllers_complete.svg index dcf736019..7f3644dd3 100644 --- a/doc/controllers_complete.svg +++ b/doc/controllers_complete.svg @@ -668,7 +668,6 @@ generate_svtrid handle_errors has_attribute -iptables_counter_update latin_only mutually_exclusive optional From d87f4992948bc3962978821ba53a0ae710e529b6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:15:58 +0300 Subject: [PATCH 3/4] Remove unneeded require --- lib/gem_ext/builder.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb index 2c933c480..e5038592a 100644 --- a/lib/gem_ext/builder.rb +++ b/lib/gem_ext/builder.rb @@ -1,5 +1,3 @@ -require 'builder' - class Builder::XmlMarkup def epp_head self.instruct! From 3400a1bd3edecf657344cace670c371414c78bb7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 6 Jun 2018 03:20:25 +0300 Subject: [PATCH 4/4] Fix code style issues from CodeClimate --- app/models/sorted_country.rb | 10 +++++----- lib/core_ext/array.rb | 2 +- lib/gem_ext/builder.rb | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/sorted_country.rb b/app/models/sorted_country.rb index 4eb5750f5..e4f2ad330 100644 --- a/app/models/sorted_country.rb +++ b/app/models/sorted_country.rb @@ -18,12 +18,12 @@ class SortedCountry def quick_list @quick_list ||= [ - ['Estonia', 'EE'], - ['Finland', 'FI'], - ['Latvia', 'LV'], - ['Lithuania', 'LT'], + %w[Estonia' EE], + %w[Finland FI], + %w[Latvia LV], + %w[Lithuania LT], ['Russian Federation', 'RU'], - ['Sweden', 'SE'], + %w[Sweden SE], ['United States', 'US'] ] end diff --git a/lib/core_ext/array.rb b/lib/core_ext/array.rb index b48249d27..ec280ab81 100644 --- a/lib/core_ext/array.rb +++ b/lib/core_ext/array.rb @@ -1,5 +1,5 @@ class Array - def include_any? *args + def include_any?(*args) (self & args).any? end end \ No newline at end of file diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb index e5038592a..8f2945040 100644 --- a/lib/gem_ext/builder.rb +++ b/lib/gem_ext/builder.rb @@ -1,6 +1,6 @@ class Builder::XmlMarkup def epp_head - self.instruct! + instruct! epp( 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd', 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',