class OneApm::Support::RenameRulesEngine::ExternalRenameRule
Constants
- OA_RENAME_SEPARATOR
Attributes
hash_value[RW]
rules[RW]
Public Class Methods
new(hash={})
click to toggle source
# File lib/one_apm/support/rename_rules_engine/external_rename_rule.rb, line 13 def initialize(hash={}) @hash_value = hash['hash_value'] rules = hash['rules'] || [] rules = rules.select { |r| r['type'] == "remote" } rules = rules.sort_by { |r| r['priority'] } rules = rules.map { |r| Rule.new(r) } rules = rules.reverse @rules = rules end
Public Instance Methods
default_rename(request)
click to toggle source
# File lib/one_apm/support/rename_rules_engine/external_rename_rule.rb, line 35 def default_rename(request) path = request.uri.path.split(OA_RENAME_SEPARATOR) path.delete('') if path.size <= 1 "#{path.first}/" else "#{path[0..1].join(OA_RENAME_SEPARATOR)}" end end
rename(request)
click to toggle source
# File lib/one_apm/support/rename_rules_engine/external_rename_rule.rb, line 23 def rename(request) selected_rule = select_rule(request) OneApm::Manager.logger.debug "request", request.inspect OneApm::Manager.logger.debug "selected_rule", selected_rule.inspect res = if selected_rule.nil? default_rename(request) else selected_rule.apply(request) end "External/HTTP/#{request.host}:#{request.port}/#{res}" end
select_rule(request)
click to toggle source
# File lib/one_apm/support/rename_rules_engine/external_rename_rule.rb, line 45 def select_rule(request) OneApm::Manager.logger.debug "@rules", @rules.inspect @rules.select { |r| r.enable?&&r.should_rename?(request) }.first end