Class: Sass::Transport::MessageObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/sass/transport.rb

Instance Method Summary collapse

Constructor Details

#initialize(obs, id, &block) ⇒ MessageObserver

Returns a new instance of MessageObserver.



115
116
117
118
119
120
# File 'lib/sass/transport.rb', line 115

def initialize(obs, id, &block)
  @obs = obs
  @id = id
  @block = block
  @obs.add_observer self
end

Instance Method Details

#update(error, message) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/sass/transport.rb', line 122

def update(error, message)
  if error
    @obs.delete_observer self
    @block.call error, nil
  elsif message.error&.id == Sass::Transport::PROTOCOL_ERROR_ID
    @obs.delete_observer self
    @block.call Sass::ProtocolError.new(message.error.message), nil
  else
    res = message[message.message.to_s]
    if (res['compilation_id'] || res['id']) == @id
      @obs.delete_observer self
      @block.call error, res
    end
  end
end