Sha256: 6ca2caa3c3afe9c93ed38503d91645647011c9b9e3e6158ffe756183697fc49b

Contents?: true

Size: 491 Bytes

Versions: 39

Compression:

Stored size: 491 Bytes

Contents

require 'English'
require 'pio/parse_error'

module Pio
  # Macros for defining message types.
  module MessageTypeSelector
    def message_type(options)
      const_set(:MESSAGE_TYPE, options)
    end

    def read(raw_data)
      format = const_get(:Format).read(raw_data)
      message = const_get(:MESSAGE_TYPE)[format.message_type].allocate
      message.instance_variable_set :@format, format
      message
    rescue
      raise Pio::ParseError, $ERROR_INFO.message
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
pio-0.30.1 lib/pio/message_type_selector.rb
pio-0.30.0 lib/pio/message_type_selector.rb
pio-0.29.0 lib/pio/message_type_selector.rb
pio-0.28.1 lib/pio/message_type_selector.rb
pio-0.28.0 lib/pio/message_type_selector.rb
pio-0.27.2 lib/pio/message_type_selector.rb
pio-0.27.1 lib/pio/message_type_selector.rb
pio-0.27.0 lib/pio/message_type_selector.rb
pio-0.26.0 lib/pio/message_type_selector.rb
pio-0.25.0 lib/pio/message_type_selector.rb
pio-0.24.2 lib/pio/message_type_selector.rb
pio-0.24.1 lib/pio/message_type_selector.rb
pio-0.24.0 lib/pio/message_type_selector.rb
pio-0.23.1 lib/pio/message_type_selector.rb
pio-0.23.0 lib/pio/message_type_selector.rb
pio-0.22.0 lib/pio/message_type_selector.rb
pio-0.21.1 lib/pio/message_type_selector.rb
pio-0.21.0 lib/pio/message_type_selector.rb
pio-0.20.1 lib/pio/message_type_selector.rb
pio-0.20.0 lib/pio/message_type_selector.rb