Class: Vayacondios::Client::ItemSetListener
- Inherits:
-
Object
- Object
- Vayacondios::Client::ItemSetListener
- Defined in:
- lib/vayacondios/client/itemset.rb
Overview
Subclasses should implement the remove_items(arr) and add_items(arr) methods, both of which will be called with arrays when the items in an itemset change. The run method polls the provided itemset at a specified interval and calls these methods appropriately.
Constant Summary collapse
- POLL_WAIT_SEC =
2
Instance Method Summary collapse
-
#initialize(itemset, poll_wait_sec = POLL_WAIT_SEC) ⇒ ItemSetListener
constructor
A new instance of ItemSetListener.
- #run ⇒ Object
Constructor Details
#initialize(itemset, poll_wait_sec = POLL_WAIT_SEC) ⇒ ItemSetListener
Returns a new instance of ItemSetListener.
91 92 93 94 95 |
# File 'lib/vayacondios/client/itemset.rb', line 91 def initialize itemset, poll_wait_sec = POLL_WAIT_SEC @itemset = itemset @items = [] @poll_wait_sec = poll_wait_sec end |
Instance Method Details
#run ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/vayacondios/client/itemset.rb', line 97 def run setup loop do new_items = @itemset.fetch || [] Log.debug "currently configured: #{@items.inspect}" Log.debug "new items: #{new_items.inspect}" add_items(new_items - @items) remove_items(@items - new_items) @items = new_items sleep @poll_wait_sec end teardown end |