Class: Stf::DeviceList
- Inherits:
-
Object
- Object
- Stf::DeviceList
- Defined in:
- lib/stf/model/device_list.rb
Overview
can not inherite from Array because words.steveklabnik.com/beware-subclassing-ruby-core-classes
Instance Method Summary collapse
- #as_connect_url_list ⇒ Object
- #asArray ⇒ Object
- #by_filter(filter) ⇒ Object
- #empty? ⇒ Boolean
- #except_filter(filter) ⇒ Object
-
#initialize(devices) ⇒ DeviceList
constructor
A new instance of DeviceList.
- #reject ⇒ Object
- #select ⇒ Object
- #select_healthy(pattern) ⇒ Object
-
#select_healthy_for_connect(pattern) ⇒ Object
more pessimistic than healthy().
- #select_not_healthy(pattern) ⇒ Object
- #select_ready_to_connect ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(devices) ⇒ DeviceList
Returns a new instance of DeviceList.
6 7 8 9 10 11 12 |
# File 'lib/stf/model/device_list.rb', line 6 def initialize(devices) if devices.nil? @devices = Array.new else @devices = devices.map {|d| (d.kind_of? Device) ? d : Device.new(d)} end end |
Instance Method Details
#as_connect_url_list ⇒ Object
55 56 57 |
# File 'lib/stf/model/device_list.rb', line 55 def as_connect_url_list @devices.map {|d| d.remoteConnectUrl}.reject { |c| c.nil? || c.empty? } end |
#asArray ⇒ Object
75 76 77 |
# File 'lib/stf/model/device_list.rb', line 75 def asArray @devices end |
#by_filter(filter) ⇒ Object
14 15 16 |
# File 'lib/stf/model/device_list.rb', line 14 def by_filter(filter) filter ? select {|d| d.checkFilter?(filter)} : [] end |
#empty? ⇒ Boolean
67 68 69 |
# File 'lib/stf/model/device_list.rb', line 67 def empty? @devices.empty? end |
#except_filter(filter) ⇒ Object
18 19 20 |
# File 'lib/stf/model/device_list.rb', line 18 def except_filter(filter) filter ? reject {|d| d.checkFilter?(filter)} : this end |
#reject ⇒ Object
63 64 65 |
# File 'lib/stf/model/device_list.rb', line 63 def reject DeviceList.new(@devices.select {|d| !yield(d)}) end |
#select ⇒ Object
59 60 61 |
# File 'lib/stf/model/device_list.rb', line 59 def select DeviceList.new(@devices.select {|d| yield(d)}) end |
#select_healthy(pattern) ⇒ Object
22 23 24 |
# File 'lib/stf/model/device_list.rb', line 22 def select_healthy(pattern) pattern ? select { |d| d.healthy?(pattern) } : this end |
#select_healthy_for_connect(pattern) ⇒ Object
more pessimistic than healthy()
27 28 29 |
# File 'lib/stf/model/device_list.rb', line 27 def select_healthy_for_connect(pattern) pattern ? select { |d| d.healthy_for_connect?(pattern) } : this end |
#select_not_healthy(pattern) ⇒ Object
31 32 33 |
# File 'lib/stf/model/device_list.rb', line 31 def select_not_healthy(pattern) pattern ? reject { |d| d.healthy?(pattern) } : [] end |
#select_ready_to_connect ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/stf/model/device_list.rb', line 35 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 |
#size ⇒ Object
71 72 73 |
# File 'lib/stf/model/device_list.rb', line 71 def size @devices.size end |