diff --git a/app/controllers/epp_controller.rb b/app/controllers/epp_controller.rb
index 3eba05777..4250e0e84 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
@@ -359,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,4 +400,26 @@ class EppController < ApplicationController
timeout = 5.minutes
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}"
+
+ 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 64%
rename from lib/sorted_country.rb
rename to app/models/sorted_country.rb
index 8b69d951a..19ad5f4f3 100644
--- a/lib/sorted_country.rb
+++ b/app/models/sorted_country.rb
@@ -1,18 +1,15 @@
-require 'countries'
-require 'action_view'
-
class SortedCountry
class << self
include ActionView::Helpers
def all_options(selected = nil)
- quick_options = options_for_select(quick_list, { selected: selected })
+ quick_options = options_for_select(quick_list, selected: selected)
# no double select
- selected = quick_list.map(&:second).include?(selected) ? '' : selected
+ selected = quick_list.map(&:second).include?(selected) ? '' : selected
- all_options = options_for_select([['---', '---']] + all_sorted_truncated,
- { selected: selected, disabled: ['---'] })
+ all_options = options_for_select([['---', '---']] + all_sorted_truncated,
+ selected: selected, disabled: ['---'])
quick_options + all_options
end
@@ -21,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/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 b06598cdc..ecb054409 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/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
diff --git a/config/initializers/array.rb b/lib/core_ext/array.rb
similarity index 57%
rename from config/initializers/array.rb
rename to lib/core_ext/array.rb
index b48249d27..2dee1d56a 100644
--- a/config/initializers/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
+end
diff --git a/lib/ext/xml_builder.rb b/lib/ext/xml_builder.rb
deleted file mode 100644
index 2c933c480..000000000
--- a/lib/ext/xml_builder.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-require 'builder'
-
-class Builder::XmlMarkup
- def epp_head
- self.instruct!
- epp(
- 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd',
- 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
- 'xsi:schemaLocation' => 'lib/schemas/epp-ee-1.0.xsd'
- ) do
- yield
- end
- end
-end
diff --git a/lib/gem_ext/builder.rb b/lib/gem_ext/builder.rb
new file mode 100644
index 000000000..d4ebe2efd
--- /dev/null
+++ b/lib/gem_ext/builder.rb
@@ -0,0 +1,14 @@
+module Builder
+ class XmlMarkup
+ def epp_head
+ instruct!
+ epp(
+ 'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd',
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
+ 'xsi:schemaLocation' => 'lib/schemas/epp-ee-1.0.xsd'
+ ) do
+ yield
+ end
+ end
+ end
+end
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 93%
rename from config/initializers/001_paper_trail.rb
rename to lib/gem_ext/paper_trail.rb
index 9dec5fb12..200e71d48 100644
--- a/config/initializers/001_paper_trail.rb
+++ b/lib/gem_ext/paper_trail.rb
@@ -8,7 +8,7 @@ end
# Store console and rake changes in versions
if defined?(::Rails::Console) || File.basename($PROGRAM_NAME).split(' ').first == 'spring'
PaperTrail.whodunnit = "console-#{`whoami`.strip}"
-elsif File.basename($PROGRAM_NAME) == "rake"
+elsif File.basename($PROGRAM_NAME) == 'rake'
# rake username does not work when spring enabled
PaperTrail.whodunnit = "rake-#{`whoami`.strip} #{ARGV.join ' '}"
end
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