Class: SlowBlink::Message::INTEGER Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/slow_blink/message/integer.rb

Overview

This class is abstract.

Direct Known Subclasses

I16, I32, I64, I8, U16, U32, U64, U8

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ INTEGER

Note:

calls #set(value)

Returns a new instance of INTEGER.



59
60
61
# File 'lib/slow_blink/message/integer.rb', line 59

def initialize(value)        
    set(value)
end

Class Method Details

.in_range?(value) ⇒ true, false

Returns integer value is within permitted range.

Parameters:

  • value (Integer)

Returns:

  • (true, false)

    integer value is within permitted range



33
34
35
# File 'lib/slow_blink/message/integer.rb', line 33

def self.in_range?(value)
    @type.class::RANGE.cover? value
end

.typeObject



27
28
29
# File 'lib/slow_blink/message/integer.rb', line 27

def self.type
    @type
end

Instance Method Details

#getInteger

Returns:

  • (Integer)


38
39
40
# File 'lib/slow_blink/message/integer.rb', line 38

def get
    @value
end

#set(value) ⇒ Object

Set an Integer value

Parameters:

  • value (Integer)

Raises:

  • (RangeError)

    value is outside of range according to in_range?

  • (TypeError)


46
47
48
49
50
51
52
53
54
55
56
# File 'lib/slow_blink/message/integer.rb', line 46

def set(value)
    if value.kind_of? Integer
        if self.class.in_range?(value)
            @value = value.to_i
        else
            raise RangeError.new
        end
    else
        raise TypeError.new "value must be an integer"
    end            
end

#to_tagObject



63
64
65
# File 'lib/slow_blink/message/integer.rb', line 63

def to_tag
    @value.to_s
end