Class: LabeledRange::Value::Default

Inherits:
Object
  • Object
show all
Defined in:
lib/labeled_range/value/default.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ Default



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/labeled_range/value/default.rb', line 6

def initialize(value)
  @value = value

  definitions = { good: 0, warning: 0.7, danger: 0.9 }
  max = 1

  (definitions.values.sort + [max]).each_cons(2).each_with_object({}) do |(lower, upper), ranges|
    range = lower..upper
    key = definitions.key(lower)

    self.class.class_eval do
      define_method("#{key}?".to_sym) do
        range === value
      end
    end

    @level = key if range === value
  end

  @level ||= :undefined
end

Instance Attribute Details

#levelObject (readonly)

Returns the value of attribute level.



4
5
6
# File 'lib/labeled_range/value/default.rb', line 4

def level
  @level
end

#valueObject (readonly)

Returns the value of attribute value.



4
5
6
# File 'lib/labeled_range/value/default.rb', line 4

def value
  @value
end