Class: IStats::Printer
- Inherits:
-
Object
- Object
- IStats::Printer
- Extended by:
- Color
- Defined in:
- lib/iStats/printer.rb
Constant Summary collapse
- LABEL_WIDTH =
24
- VALUE_WIDTH =
8
- SCALE_WIDTH =
4
Constants included from Color
Class Method Summary collapse
- .disable_graphs ⇒ Object
- .disable_labels ⇒ Object
- .disable_scale ⇒ Object
- .format_label(label) ⇒ Object
- .format_scale(scale) ⇒ Object
-
.format_temperature(temperature) ⇒ Object
Pretty print temperature values.
-
.gen_sparkline(value, thresholds) ⇒ Object
Create colored sparkline value - The stat value thresholds - must be an array of size 4 containing the threshold values for the sparkline colors.
- .get_temperature_scale ⇒ Object
-
.parse_temperature(temperature) ⇒ Object
Converts the value to the class temperature_scale with accompanying scale string.
-
.print_item_line(label, value, scale = "", thresholds = [], suffix = "") ⇒ Object
Prints a standard item line with label, value, scale, and sparkline as determined by the runtime command-line arguments supplied by the user.
- .set_temperature_scale(scale) ⇒ Object
Methods included from Color
Class Method Details
.disable_graphs ⇒ Object
15 16 17 |
# File 'lib/iStats/printer.rb', line 15 def disable_graphs @display_graphs = false end |
.disable_labels ⇒ Object
19 20 21 |
# File 'lib/iStats/printer.rb', line 19 def disable_labels @display_labels = false end |
.disable_scale ⇒ Object
23 24 25 |
# File 'lib/iStats/printer.rb', line 23 def disable_scale @display_scale = false end |
.format_label(label) ⇒ Object
105 106 107 108 109 |
# File 'lib/iStats/printer.rb', line 105 def format_label(label) if @display_labels == true "#{label}\t" end end |
.format_scale(scale) ⇒ Object
111 112 113 114 115 |
# File 'lib/iStats/printer.rb', line 111 def format_scale(scale) if @display_scale == true "#{scale}" end end |
.format_temperature(temperature) ⇒ Object
Pretty print temperature values. Returns the formatted temperature string.
135 136 137 138 |
# File 'lib/iStats/printer.rb', line 135 def format_temperature(temperature) value, scale = Printer.format_temperature(temperature) "#{value}#{scale}" end |
.gen_sparkline(value, thresholds) ⇒ Object
Create colored sparkline value - The stat value thresholds - must be an array of size 4 containing the threshold values
for the sparkline colors
If the values in the thresholds array are descending, treat 100% as good (green) instead of bad (red)
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/iStats/printer.rb', line 43 def gen_sparkline(value, thresholds) # Graphs can be disabled globally return '' unless @display_graphs return if thresholds.count < 4 value = value.to_f list = [0, 30, 55, 80, 100, 130] sparkline = Sparkr.sparkline(list) do |tick, count, index| if thresholds[3] > thresholds[0] # # Normal sparkline where 100% is bad # if index.between?(0, 5) and value > thresholds[3] flash_red(tick) elsif index.between?(0, 1) green(tick) elsif index.between?(2, 3) and value > thresholds[0] light_yellow(tick) elsif index == 4 and value > thresholds[1] yellow(tick) elsif index == 5 and value > thresholds[2] red(tick) else tick end else # # Reversed sparkline where 100% is good # if value < thresholds[3] if index == 1 red(tick) else tick end elsif value < thresholds[2] if index.between?(0, 2) yellow(tick) else tick end elsif value < thresholds[1] if index.between?(0, 3) light_yellow(tick) else tick end elsif value < thresholds[0] if index.between?(0, 4) green(tick) else tick end else green(tick) end end end end |
.get_temperature_scale ⇒ Object
27 28 29 |
# File 'lib/iStats/printer.rb', line 27 def get_temperature_scale @temperature_scale end |
.parse_temperature(temperature) ⇒ Object
Converts the value to the class temperature_scale with accompanying scale string.
120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/iStats/printer.rb', line 120 def parse_temperature(temperature) if @temperature_scale == 'celcius' value = temperature symbol = "C" else value = Utils.to_fahrenheit(temperature) symbol = "F" end return value.round(2), "#{Symbols.degree}#{symbol}" end |
.print_item_line(label, value, scale = "", thresholds = [], suffix = "") ⇒ Object
Prints a standard item line with label, value, scale, and sparkline as determined by the runtime command-line arguments supplied by the user.
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/iStats/printer.rb', line 144 def print_item_line(label, value, scale="", thresholds=[], suffix="") if @display_scale full_value_width = VALUE_WIDTH + SCALE_WIDTH full_value = value.to_s + scale.to_s else full_value_width = VALUE_WIDTH full_value = value end if @display_labels format = "%-"+LABEL_WIDTH.to_s + "s" printf("%-" + LABEL_WIDTH.to_s + "s", label + ": ") end printf("%-" + full_value_width.to_s + "s", full_value) if @display_graphs print "#{Printer.gen_sparkline(value, thresholds)}" end if @display_labels && suffix != "" print " #{suffix}" end printf "\n" end |
.set_temperature_scale(scale) ⇒ Object
31 32 33 |
# File 'lib/iStats/printer.rb', line 31 def set_temperature_scale(scale) @temperature_scale = scale end |