class Sidekiq::WebCustom::Configuration
Constants
- ALLOWED_BASED
- DEFAULT_DRAIN_RATE
- DEFAULT_EXEC_TIME
- DEFAULT_WARN_TIME
- INTEGERS
Public Class Methods
new()
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 15 def initialize ALLOWED_BASED.each do |var| instance_variable_set(:"@#{var}", {}) end @drain_rate = DEFAULT_DRAIN_RATE @max_execution_time = DEFAULT_EXEC_TIME @warn_execution_time = DEFAULT_WARN_TIME end
Public Instance Methods
merge(base:, params:, action_type: nil)
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 39 def merge(base:, params:, action_type: nil) unless _allow_write_block? raise Sidekiq::WebCustom::ConfigurationEstablished, "Unable to assign base [#{base}]. Assignment must happen on boot" end raise Sidekiq::WebCustom::ArgumentError, "Unexpected base: #{base}" unless ALLOWED_BASED.include?(base) raise Sidekiq::WebCustom::ArgumentError, "Expected object for #{base} to be a Hash" unless params.is_a?(Hash) value = instance_variable_get(:"@#{base}") value = if action_type && base == ACTIONS value[action_type.to_sym] ||= {} value[action_type.to_sym].merge!(params) value else value.merge(params) end instance_variable_set(:"@#{base}", value) end
validate!()
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 58 def validate! ALLOWED_BASED.each do |key| value = instance_variable_get(:"@#{key}") _validate!(value, key) end unless @warn_execution_time <= @max_execution_time raise Sidekiq::WebCustom::ArgumentError, "Expected warn_execution_time to be less than max_execution_time" end unless actions.keys.all? { |k| local_erbs.keys.include?(k) } raise Sidekiq::WebCustom::ArgumentError, "Unexpected actions keys#{actions.keys} -- Expected to be part of #{local_erbs.keys}" end define_convenienve_methods! _unset_allow_write! end
Private Instance Methods
_allow_write_block?()
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 79 def _allow_write_block? true end
_unset_allow_write!()
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 83 def _unset_allow_write! define_singleton_method('_allow_write_block?') do false end end
_validate!(params, key, add: [])
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 97 def _validate!(params, key, add: []) params.each do |k, file| return _validate!(file, k, add: add << key) if file.is_a? Hash passed = [add, k].flatten.compact.join(':') next if File.exist?(file) raise Sidekiq::WebCustom::FileNotFound, "#{key}.merge passed #{passed}: #{file}.\n" \ "The absolute file path does not exist." end end
define_convenienve_methods!()
click to toggle source
# File lib/sidekiq/web_custom/configuration.rb, line 89 def define_convenienve_methods! actions.keys.each do |key| define_singleton_method("actions_for_#{key.to_s}") do actions[key] end end end