0
0
Fork 0

Add documentation for Rubella:Weighting::PerValue

This commit is contained in:
Stormwind 2015-02-22 23:06:42 +01:00
parent 3bfb03c29c
commit 7c7c554d83
1 changed files with 28 additions and 4 deletions

View File

@ -1,17 +1,37 @@
module Rubella
module Weighting
# Gets an input object and prepares the data for the output.
# The Rubella::Weighting object processes the given input data to an valid
# output processable Array.
# These arrays contain a subarray for every unit of time. And these Array
# contain the buckets within the values for the output objects.
# The Weighting of the print intensitiy is done here, so that the output
# objects job is simply to print the stuff.
#
# The Rubella::Weighting::PerValue object weights every bucket set to 1 in
# ammount. So if you have have for example four cores, every core is
# weighted to 0.25 no matter how much the load of a single core is. It's
# just a "as is" weighting.
class PerValue
attr_reader :buckets
# : steps
# :steps
# buckets must be one of 1, 2, 5, 10, 20, 50 default is 10
# Constructor
# Creates a new Rubella::Weighting::PerValue object.
#
# @param buckets int must be one of 1, 2, 5, 10, 20, 50 default is 10
# @return Rubella::Weighting::PerValue
# @raise ArgumentError
def initialize(buckets = 10)
self.buckets = buckets
end
# Creates a output readable list.
# This list is Array within a subarrays, which contain the buckets for
# every time value unit.
#
# @param input Rubella::Input An input object
# @return Array
def parse input
data = input.data
# no data, no work
@ -37,6 +57,10 @@ module Rubella
data_list
end
# Sets the buckets, if the value is valid
#
# @param buckets int The amount of buckets
# @raise ArgumentError
def buckets= buckets
# Must be divideable by 100
if([1, 2, 5, 10, 20, 50].index(buckets) == nil)