Class: OpenSearch::Transport::Transport::Connections::Collection
- Inherits:
-
Object
- Object
- OpenSearch::Transport::Transport::Connections::Collection
- Includes:
- Enumerable
- Defined in:
- lib/opensearch/transport/transport/connections/collection.rb
Overview
Wraps the collection of connections for the transport object as an Enumerable object.
Constant Summary collapse
- DEFAULT_SELECTOR =
Selector::RoundRobin
Instance Attribute Summary collapse
-
#selector ⇒ Object
readonly
Returns the value of attribute selector.
Instance Method Summary collapse
-
#add(connections) ⇒ self
Add connection(s) to the collection.
-
#all ⇒ Array
Returns an Array of all connections, both dead and alive.
-
#connections ⇒ Array
(also: #alive)
Returns an Array of alive connections.
-
#dead ⇒ Array
Returns an Array of dead connections.
- #each(&block) ⇒ Object
-
#get_connection(options = {}) ⇒ Connection
Returns a connection.
-
#hosts ⇒ Array
Returns an Array of hosts information in this collection as Hashes.
-
#initialize(arguments = {}) ⇒ Collection
constructor
A new instance of Collection.
-
#remove(connections) ⇒ self
Remove connection(s) from the collection.
- #size ⇒ Object
- #slice(*args) ⇒ Object (also: #[])
Constructor Details
#initialize(arguments = {}) ⇒ Collection
Returns a new instance of Collection.
49 50 51 52 53 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 49 def initialize(arguments={}) selector_class = arguments[:selector_class] || DEFAULT_SELECTOR @connections = arguments[:connections] || [] @selector = arguments[:selector] || selector_class.new(arguments.merge(:connections => self)) end |
Instance Attribute Details
#selector ⇒ Object (readonly)
Returns the value of attribute selector.
43 44 45 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 43 def selector @selector end |
Instance Method Details
#add(connections) ⇒ self
Add connection(s) to the collection
117 118 119 120 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 117 def add(connections) @connections += Array(connections).to_a self end |
#all ⇒ Array
Returns an Array of all connections, both dead and alive
84 85 86 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 84 def all @connections end |
#connections ⇒ Array Also known as: alive
Returns an Array of alive connections.
67 68 69 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 67 def connections @connections.reject { |c| c.dead? } end |
#dead ⇒ Array
Returns an Array of dead connections.
76 77 78 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 76 def dead @connections.select { |c| c.dead? } end |
#each(&block) ⇒ Object
99 100 101 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 99 def each(&block) connections.each(&block) end |
#get_connection(options = {}) ⇒ Connection
Returns a connection.
If there are no alive connections, returns a connection with least failures. Delegates to selector’s ‘#select` method to get the connection.
95 96 97 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 95 def get_connection(={}) selector.select() || @connections.min_by(&:failures) end |
#hosts ⇒ Array
Returns an Array of hosts information in this collection as Hashes.
59 60 61 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 59 def hosts @connections.to_a.map { |c| c.host } end |
#remove(connections) ⇒ self
Remove connection(s) from the collection
127 128 129 130 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 127 def remove(connections) @connections -= Array(connections).to_a self end |
#size ⇒ Object
108 109 110 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 108 def size connections.size end |
#slice(*args) ⇒ Object Also known as: []
103 104 105 |
# File 'lib/opensearch/transport/transport/connections/collection.rb', line 103 def slice(*args) connections.slice(*args) end |