Class: OneApm::Support::RenameRulesEngine::ExternalRenameRule
- Inherits:
-
Object
- Object
- OneApm::Support::RenameRulesEngine::ExternalRenameRule
- Defined in:
- lib/one_apm/support/rename_rules_engine/external_rename_rule.rb
Constant Summary collapse
- OA_RENAME_SEPARATOR =
'/'.freeze
Instance Attribute Summary collapse
-
#hash_value ⇒ Object
Returns the value of attribute hash_value.
-
#rules ⇒ Object
Returns the value of attribute rules.
Instance Method Summary collapse
- #default_rename(request) ⇒ Object
-
#initialize(hash = {}) ⇒ ExternalRenameRule
constructor
A new instance of ExternalRenameRule.
- #rename(request) ⇒ Object
- #select_rule(request) ⇒ Object
Constructor Details
#initialize(hash = {}) ⇒ ExternalRenameRule
Returns a new instance of ExternalRenameRule.
13 14 15 16 17 18 19 20 21 |
# 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 |
Instance Attribute Details
#hash_value ⇒ Object
Returns the value of attribute hash_value.
11 12 13 |
# File 'lib/one_apm/support/rename_rules_engine/external_rename_rule.rb', line 11 def hash_value @hash_value end |
#rules ⇒ Object
Returns the value of attribute rules.
11 12 13 |
# File 'lib/one_apm/support/rename_rules_engine/external_rename_rule.rb', line 11 def rules @rules end |
Instance Method Details
#default_rename(request) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# 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) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# 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) ⇒ Object
45 46 47 48 |
# 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 |