class Drnbench::RequestResponse::RequestPattern::Abstract
Public Class Methods
new(source, config)
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 20 def initialize(source, config) @source = source @config = config end
Public Instance Methods
default_group_frequency()
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 29 def default_group_frequency 1.0 / groups.size end
groups()
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 25 def groups @groups ||= prepare_groups end
requests()
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 33 def requests @requests ||= populate_requests end
Private Instance Methods
populate_requests()
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 64 def populate_requests requests = [] groups.each do |group| n_requests = @config.n_requests * @config.end_n_clients * group.frequency base_patterns = group.patterns.shuffle n_requests.ceil.times do |count| pattern = base_patterns[count % base_patterns.size] if @config.default_hosts.size > 1 @config.default_hosts.each do |host| request = pattern.to_request request["host"] ||= host requests << request end else requests << pattern.to_request end end end requests end
prepare_groups()
click to toggle source
# File lib/drnbench/request-response/request-pattern.rb, line 38 def prepare_groups if @source.is_a?(Array) if PatternsGroup.valid_source?(@source.first) return @source.collect do |group| PatternsGroup.new(group, self) end end if PatternsGroup.valid_source?(@source) return [ PatternsGroup.new(@source, self), ] end elsif @source.is_a?(Hash) if PatternsGroup.valid_source?(@source) return [ PatternsGroup.new(@source, self), ] end return @source.values.collect do |group| PatternsGroup.new(group, self) end end [] end