Sha256: 4ca17a17c264ab76c76bc3aa4152700ebb13b2d4beb72bd3fe33c7ea00eae158

Contents?: true

Size: 657 Bytes

Versions: 3

Compression:

Stored size: 657 Bytes

Contents

module OneWire
  class Device
    include Retry
  
    def initialize(address, options = {})
      @options = options
      @path = options[:uncached] ? "/uncached/#{address}" : "/#{address}"
      @path.squeeze!("/")
    end
    
    def present?
      Transaction.presence(@path, @options)
      true
    rescue Errno::ENOENT
      false
    end
    
    def read(attribute)
      with_retry { Transaction.read("#{@path}/#{attribute}").response.data || raise(BadRead) }
    end
    
    def write(attribute, value)
      with_retry { Transaction.write("#{@path}/#{attribute}", value) }
    end
    
    def dir
      Directory.new(@path)
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
mholling-one_wire-0.1.0 lib/one_wire/device.rb
one_wire-0.1.1 lib/one_wire/device.rb
one_wire-0.1.0 lib/one_wire/device.rb