Class: VcrWs::ClientRecorderMiddleware
- Inherits:
-
Object
- Object
- VcrWs::ClientRecorderMiddleware
- Defined in:
- lib/vcr_ws/client_recorder_middleware.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(client, recorder) ⇒ ClientRecorderMiddleware
constructor
A new instance of ClientRecorderMiddleware.
- #on(event, block) ⇒ Object
- #send_message(message) ⇒ Object
Constructor Details
#initialize(client, recorder) ⇒ ClientRecorderMiddleware
Returns a new instance of ClientRecorderMiddleware.
29 30 31 32 |
# File 'lib/vcr_ws/client_recorder_middleware.rb', line 29 def initialize(client, recorder) @client = client @recorder = recorder end |
Class Method Details
.enable_recorder!(recorder_file) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/vcr_ws/client_recorder_middleware.rb', line 5 def self.enable_recorder!(recorder_file) VcrWs::Config.instance.current_file_path = recorder_file Faye::WebSocket::Client.prepend( Module.new do def initialize(url, protocols = nil, = {}) @recorder = VcrWs::Recorder.new(VcrWs::Config.instance.current_file_path) super @middleware = VcrWs::ClientRecorderMiddleware.new(self, @recorder) end def on(event, &block) # Call the original method using `super` and pass through the middleware @middleware.on(event, block) end def send() # Call the original method using `super` and pass through the middleware @middleware.() end end ) end |
Instance Method Details
#on(event, block) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/vcr_ws/client_recorder_middleware.rb', line 34 def on(event, block) @client.method(:on).super_method.call(event) do |data| value = nil value = data.data if data.respond_to?(:data) @recorder.record(event, value) block&.call(data) end end |
#send_message(message) ⇒ Object
43 44 45 46 |
# File 'lib/vcr_ws/client_recorder_middleware.rb', line 43 def () @recorder.record("client_send", ) @client.method(:send).super_method.call() end |