Class: Stf::DeviceList

Inherits:
Object
  • Object
show all
Defined in:
lib/stf/model/device_list.rb

Overview

Instance Method Summary collapse

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_listObject



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

#asArrayObject



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

Returns:

  • (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

#rejectObject



63
64
65
# File 'lib/stf/model/device_list.rb', line 63

def reject
  DeviceList.new(@devices.select {|d| !yield(d)})
end

#selectObject



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_connectObject



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

#sizeObject



71
72
73
# File 'lib/stf/model/device_list.rb', line 71

def size
  @devices.size
end