Module: Fix::Protocol::TypeConversions

Included in:
Field
Defined in:
lib/fix/protocol/type_conversions.rb

Overview

Defines helper methods to convert to and from FIX data types

Instance Method Summary collapse

Instance Method Details

#dump_integer(i) ⇒ String

Dumps an integer to a string

Parameters:

  • i (Fixnum)

    An integer

Returns:

  • (String)

    It’s string representation



48
49
50
# File 'lib/fix/protocol/type_conversions.rb', line 48

def dump_integer(i)
  i.to_s
end

#dump_timestamp(dt) ⇒ String

Outputs a DateTime object as a FIX-formatted timestamp

Parameters:

  • dt (DateTime)

    An UTC date and time

Returns:

  • (String)

    A FIX-formatted timestamp



28
29
30
# File 'lib/fix/protocol/type_conversions.rb', line 28

def dump_timestamp(dt)
  dt.utc.strftime('%Y%m%d-%H:%M:%S')
end

#parse_integer(str) ⇒ Fixnum

Parses an integer

Parameters:

  • str (String)

    An integer as a string

Returns:

  • (Fixnum)

    The parsed integer



38
39
40
# File 'lib/fix/protocol/type_conversions.rb', line 38

def parse_integer(str)
  str && str.to_i
end

#parse_timestamp(str) ⇒ Time

Parses a FIX-formatted timestamp into a Time instance, milliseconds are discarded

Parameters:

  • str (String)

    A FIX-formatted timestamp

Returns:

  • (Time)

    An UTC date and time



15
16
17
18
19
20
# File 'lib/fix/protocol/type_conversions.rb', line 15

def parse_timestamp(str)
  if m = str.match(/\A([0-9]{4})([0-9]{2})([0-9]{2})-([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]{3})?\Z/)
    elts = m.to_a.map(&:to_i)
    Time.new(elts[1], elts[2], elts[3], elts[4], elts[5], elts[6], 0)
  end
end