Module: Fix::Protocol::MessageClassMapping
- Defined in:
- lib/fix/protocol/message_class_mapping.rb
Overview
Maps the FIX message type codes to message classes
Constant Summary collapse
- MAPPING =
The actual code <-> class mapping
{ '0' => :heartbeat, 'A' => :logon, '1' => :test_request, '2' => :resend_request, '3' => :reject, '5' => :logout, 'V' => :market_data_request, 'W' => :market_data_snapshot, 'X' => :market_data_incremental_refresh }
Class Method Summary collapse
-
.camelcase(s) ⇒ Symbol
Formats a symbol as a proper class name.
-
.get(msg_type) ⇒ Class
Returns the message class associated to a message code.
-
.reverse_get(klass) ⇒ Integer
Returns the message code associated to a message class.
Class Method Details
.camelcase(s) ⇒ Symbol
Formats a symbol as a proper class name
51 52 53 |
# File 'lib/fix/protocol/message_class_mapping.rb', line 51 def self.camelcase(s) s.to_s.split(' ').map { |str| str.split('_') }.flatten.map(&:capitalize).join.to_sym end |
.get(msg_type) ⇒ Class
Returns the message class associated to a message code
30 31 32 |
# File 'lib/fix/protocol/message_class_mapping.rb', line 30 def self.get(msg_type) Messages.const_get(camelcase(MAPPING[msg_type])) if MAPPING.has_key?(msg_type) end |
.reverse_get(klass) ⇒ Integer
Returns the message code associated to a message class
40 41 42 43 |
# File 'lib/fix/protocol/message_class_mapping.rb', line 40 def self.reverse_get(klass) key = klass.name.split('::').last.gsub(/([a-z\d])([A-Z])/,'\1_\2').downcase.to_sym MAPPING.find { |p| p[1] == key }[0] end |