Class: Indicators::Helper
- Inherits:
-
Object
- Object
- Indicators::Helper
- Defined in:
- lib/indicators/calculations/helper.rb
Overview
Main helper methods
Defined Under Namespace
Classes: HelperException
Class Method Summary collapse
-
.get_parameters(parameters, i = 0, default = 0) ⇒ Object
Indicators::Helper.get_parameters([12, 1, 1], 0, 15).
- .validate_data(data, column, parameters) ⇒ Object
Class Method Details
.get_parameters(parameters, i = 0, default = 0) ⇒ Object
Indicators::Helper.get_parameters([12, 1, 1], 0, 15)
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/indicators/calculations/helper.rb', line 23 def self.get_parameters parameters, i=0, default=0 # Single parameter is to choose from. if parameters.is_a?(Integer) || parameters.is_a?(NilClass) # Set all other to default if only one integer is given instead of an array. return default if i != 0 # Check if no parameters are specified at all, if so => set to default. # Parameters 15, 0, 0 are equal to 15 or 15, nil, nil. if parameters == nil || parameters == 0 if default != 0 return default else raise HelperException, 'There were no parameters specified and there is no default for it.' end else return parameters end # Multiple parameters to choose from. elsif parameters.is_a?(Array) # In case array is given not like [1, 2] but like this ["1", "2"]. This usually happens when getting data from input forms. parameters = parameters.map(&:to_i) if parameters[i] == nil || parameters[i] == 0 if default != 0 return default else raise HelperException, 'There were no parameters specified and there is no default for it.' end else return parameters[i] end else raise HelperException, 'Parameters have to be a integer, an array or nil.' end end |
.validate_data(data, column, parameters) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/indicators/calculations/helper.rb', line 8 def self.validate_data data, column, parameters # If this is a hash, choose which column of values to use for calculations. if data.is_a?(Hash) valid_data = data[column] else valid_data = data end if valid_data.length < parameters raise HelperException, "Data point length (#{valid_data.length}) must be greater than or equal to the required indicator periods (#{parameters})." end return valid_data end |