Module: Yummi::Colorizers
- Defined in:
- lib/yummi/colorizers.rb
Overview
A module with useful colorizers
Defined Under Namespace
Classes: PatternColorizer, PercentageColorizer, StripeColorizer
Class Method Summary collapse
-
.boolean(params = {}) ⇒ Object
A colorizer for boolean values.
-
.join(*colorizers) ⇒ Object
Joins the given colorizers to work as one.
-
.numeric(params) ⇒ Object
A colorizer for numeric values.
-
.pattern(mappings, level = nil) ⇒ Object
Returns a new instance of #PatternColorizer.
- .percentage(params) ⇒ Object
-
.stripe(*colors) ⇒ Object
Returns a new instance of #StripeColorizer.
-
.threshold(params) ⇒ Object
A colorizer that uses a set of minimun values to use a color.
- .when(params) ⇒ Object
-
.with(color) ⇒ Object
A colorizer that uses the given color.
Class Method Details
.boolean(params = {}) ⇒ Object
A colorizer for boolean values.
Parameters:
- if_true: color used if the value is true (defaults to green)
- if_false: color used if the value is false (defaults to yellow)
127 128 129 130 131 132 133 134 135 136 |
# File 'lib/yummi/colorizers.rb', line 127 def self.boolean params = {} Yummi::to_colorize do |ctx| value = ctx.value if value.to_s.downcase == "true" (params[:if_true] or :green) else (params[:if_false] or :yellow) end end end |
.join(*colorizers) ⇒ Object
Joins the given colorizers to work as one
76 77 78 79 80 |
# File 'lib/yummi/colorizers.rb', line 76 def self.join *colorizers join = Yummi::GroupedComponent::new colorizers.each { |c| join << c } join.extend Colorizer end |
.numeric(params) ⇒ Object
A colorizer for numeric values
Hash Args
:negative => color to use when value is negative :zero => color to use when value is zero :positive => color to use when value is positive :any => color to use for any value (overridable by the options above)
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/yummi/colorizers.rb', line 178 def self.numeric params Yummi::to_format do |ctx| value = ctx.value negative = (params[:negative] or params[:any]) positive = (params[:positive] or params[:any]) zero = (params[:zero] or params[:any]) if negative and value < 0 negative elsif positive and value > 0 positive elsif zero and value == 0 zero end end end |
.pattern(mappings, level = nil) ⇒ Object
Returns a new instance of #PatternColorizer
88 89 90 91 92 |
# File 'lib/yummi/colorizers.rb', line 88 def self.pattern mappings, level = nil colorizer = PatternColorizer::new(mappings) colorizer.level = level if level colorizer end |
.percentage(params) ⇒ Object
164 165 166 |
# File 'lib/yummi/colorizers.rb', line 164 def self.percentage params PercentageColorizer::new params end |
.stripe(*colors) ⇒ Object
Returns a new instance of #StripeColorizer
83 84 85 |
# File 'lib/yummi/colorizers.rb', line 83 def self.stripe *colors StripeColorizer::new(*colors) end |
.threshold(params) ⇒ Object
A colorizer that uses a set of minimun values to use a color.
Parameters:
- MINIMUN_VALUE: COLOR_TO_USE
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/yummi/colorizers.rb', line 144 def self.threshold params params = params.dup mode = (params.delete(:mode) or :min) colorizer = lambda do |ctx| value = ctx.value case mode.to_sym when :min params.sort.reverse_each do |limit, color| return color if value >= limit end when :max params.sort.each do |limit, color| return color if value <= limit end end nil end Yummi::to_colorize(&colorizer) end |
.when(params) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/yummi/colorizers.rb', line 103 def self.when params Yummi::to_colorize do |ctx| value = ctx.value color = params[value] return color if color if value.respond_to? :to_sym color = params[value.to_sym] end unless color params.each do |k, v| return v if k.to_s == value.to_s end end color end end |
.with(color) ⇒ Object
A colorizer that uses the given color.
97 98 99 100 101 |
# File 'lib/yummi/colorizers.rb', line 97 def self.with color Yummi::to_colorize do |ctx| color end end |