Sha256: e3302546a12403c80ebe96c5ac1e68de1f9d5604ddd5e36405a56fe4f140d1c6

Contents?: true

Size: 850 Bytes

Versions: 10

Compression:

Stored size: 850 Bytes

Contents

module Cucumber
  module WireSupport
    # Represents the packet of data sent over the wire as JSON data, containing
    # a message and a hash of arguments
    class WirePacket
      class << self
        def parse(raw)
          attributes = JSON.parse(raw.strip)
          message = attributes[0]
          params  = attributes[1]
          new(message, params)
        end
      end
      
      attr_reader :message, :params
      
      def initialize(message, params)
        @message, @params = message, params
      end
      
      def to_json
        [@message, @params].to_json
      end
      
      def raise_if_bad
        raise WireException.new(@params) if @message == 'fail' || @message == 'step_failed'
      end
      
      def handle_with(handler)
        handler.send("handle_#{@message}", @params)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 4 rubygems

Version Path
cucumber-0.4.5.rc2 lib/cucumber/wire_support/wire_packet.rb
kbaum-cucumber-0.4.5.pre lib/cucumber/wire_support/wire_packet.rb
cucumber-0.4.5.rc1 lib/cucumber/wire_support/wire_packet.rb
middleman-0.10.17 vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb
middleman-0.10.16 vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb
middleman-0.10.15 vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb
rackjour-0.1.8 vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb
middleman-0.10.14 vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb
cucumber-0.4.4 lib/cucumber/wire_support/wire_packet.rb
cucumber-0.4.3 lib/cucumber/wire_support/wire_packet.rb