Module: KNX::Address::ClassMethods

Defined in:
lib/knx/address.rb

Instance Method Summary collapse

Instance Method Details

#parse(input) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/knx/address.rb', line 41

def parse(input)
    address = @address_class.new
    klass = input.class

    if klass == Array
        address.read(input.pack('n'))
    elsif [Integer, Fixnum].include? klass
        address.read([input].pack('n'))
    elsif klass == String
        tmp = parse_friendly(input)
        if tmp.nil?
            address.read(input)
        else
            address = tmp
        end
    else
        raise 'address parsing failed'
    end

    address
end