Sha256: e6cb5f2c8f824b4728385349531436aa0eb9fa16feccf9c9d0abda03fb77eb0f
Contents?: true
Size: 1.99 KB
Versions: 2
Compression:
Stored size: 1.99 KB
Contents
require 'stf/model/device' module Stf # can not inherite from Array because http://words.steveklabnik.com/beware-subclassing-ruby-core-classes class DeviceList def initialize(devices) if devices.nil? @devices = Array.new else @devices = devices.map {|d| (d.kind_of? Device) ? d : Device.new(d)} end end def by_filter(filter) filter ? select {|d| d.checkFilter?(filter)} : [] end def except_filter(filter) filter ? reject {|d| d.checkFilter?(filter)} : this end def select_healthy(pattern) pattern ? select { |d| d.healthy?(pattern) } : this end # more pessimistic than healthy() def select_healthy_for_connect(pattern) pattern ? select { |d| d.healthy_for_connect?(pattern) } : this end def select_not_healthy(pattern) pattern ? reject { |d| d.healthy?(pattern) } : [] end def select_ready_to_connect # https://github.com/openstf/stf/blob/93d9d7fe859bb7ca71669f375d841d94fa47d751/lib/wire/wire.proto#L170 # enum DeviceStatus { # OFFLINE = 1; # UNAUTHORIZED = 2; # ONLINE = 3; # CONNECTING = 4; # AUTHORIZING = 5; # } # # https://github.com/openstf/stf/blob/93d9d7fe859bb7ca71669f375d841d94fa47d751/res/app/components/stf/device/enhance-device/enhance-device-service.js select {|d| d.present == true && d.status == 3 && d.ready == true && d.using == false && d.owner.nil? } end def as_connect_url_list @devices.reject { |d| d.remoteConnectUrl.nil? || d.remoteConnectUrl.empty? } .map{|d| DI[:device_enhancer].get_tunneled_remote_connect_url(d)} end def select DeviceList.new(@devices.select {|d| yield(d)}) end def reject DeviceList.new(@devices.select {|d| !yield(d)}) end def empty? @devices.empty? end def size @devices.size end def asArray @devices end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
smartdust-client-1.2.0 | lib/stf/model/device_list.rb |
smartdust-client-1.1.0 | lib/stf/model/device_list.rb |