module Salt::Api::Events
Public Instance Methods
events() { |parse(split("data: ", 2).last)| ... }
click to toggle source
# File lib/salt/api/events.rb, line 6 def events(&block) buffer = "" raw_events do |data| buffer += data while buffer.match("\n") event, buffer = buffer.split("\n", 2) if event.start_with? "data: " yield(JSON.parse(event.split("data: ", 2).last)) end end end end
Private Instance Methods
raw_events() { |chunk| ... }
click to toggle source
# File lib/salt/api/events.rb, line 22 def raw_events(&block) req = Net::HTTP::Get.new("/events") req['X-Auth-Token'] = token req['Accept'] = "application/x-yaml" client.request(req) do |response| raise "Get request to /events failed (#{response})" unless response.kind_of? Net::HTTPSuccess response.read_body do |chunk| yield(chunk) end end rescue Errno::ETIMEDOUT, Net::OpenTimeout => e e end