Class: ApacheCrunch::ReqFirstlineDerivationRule

Inherits:
Object
  • Object
show all
Defined in:
lib/derivation.rb

Instance Method Summary collapse

Constructor Details

#initializeReqFirstlineDerivationRule

Returns a new instance of ReqFirstlineDerivationRule.



62
63
64
# File 'lib/derivation.rb', line 62

def initialize
    @_derivation_regex = nil
end

Instance Method Details

#derive(name, source_value) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/derivation.rb', line 74

def derive(name, source_value)
    if @_derivation_regex.nil?
        @_derivation_regex = Regexp.compile("^(#{ReqMethodTokenDefinition.regex})\s+(#{UrlPathTokenDefinition.regex})(#{QueryStringTokenDefinition.regex})\s+(#{ProtocolTokenDefinition.regex})$")
    end

    hsh = {}
    if source_value =~ @_derivation_regex
        hsh[ReqMethodTokenDefinition.name] = $1
        hsh[UrlPathTokenDefinition.name] = $2
        hsh[QueryStringTokenDefinition.name] = $3
        hsh[ProtocolTokenDefinition.name] = $4
    end

    hsh[name]
end

#source_nameObject



66
67
68
# File 'lib/derivation.rb', line 66

def source_name
    :req_firstline
end

#target_namesObject



70
71
72
# File 'lib/derivation.rb', line 70

def target_names
    [ReqMethodTokenDefinition.name, UrlPathTokenDefinition.name, QueryStringTokenDefinition.name, ProtocolTokenDefinition.name]
end