fix-protocol 0.0.64 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +57 -9
  3. data/lib/fix/protocol/version.rb +1 -1
  4. metadata +49 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 444655c70c2c0184fd14ccd5a9964024e5cdc40d
4
- data.tar.gz: 84fa0babcfc637bddb6bde19dda4440c28e550ce
3
+ metadata.gz: 5d6247425bc7da4d8378782c21658c682783f0ec
4
+ data.tar.gz: ddb6bf6c12e49f601c2cb048239d2463f5ed1457
5
5
  SHA512:
6
- metadata.gz: 6cb0b2a65b0955992c87d46aa4954dd8decceb97a620da7b7d98c71e10aa89c7bb9bc00f2e2bac6041c412ac586893d4863d0b46123cb14eab90b553b52cb580
7
- data.tar.gz: 4403f13296f1dcba4e6b5bfd6709bab252b465fe58523c7113475eb96f3e8f462c00b595ade9655467bf6c59b743e061a4615c439423dd42a461cc4621fd4d7f
6
+ metadata.gz: 4b633565a3d6497b6f66a4d99941e7f4d7a58e90ab429aa37a5d24d3cd9cbab2f908520f5ad537f788b3970fddc93ffb408491494382cb7d7eb08e2554d319a9
7
+ data.tar.gz: d22a50577182de8cd1b23cec1d4fae28dec2326fd0532a971697a642d4d4ab1c60adcf1b1323e9ad3c6a3aa51d3f905801df84bb6acee6f2b89268776fd21e01
data/README.md CHANGED
@@ -1,23 +1,26 @@
1
- FIX Protocol [![Build Status](https://secure.travis-ci.org/Paymium/fix-protocol.png?branch=master)](http://travis-ci.org/Paymium/fix-protocol) [![Gem Version](https://badge.fury.io/rb/fix-protocol.svg)](http://badge.fury.io/rb/fix-protocol)
1
+ FIX Protocol [![Build Status](https://secure.travis-ci.org/Paymium/fix-protocol.png?branch=master)](http://travis-ci.org/Paymium/fix-protocol) [![Coverage Status](https://img.shields.io/coveralls/Paymium/fix-protocol.svg)](https://coveralls.io/r/Paymium/fix-protocol?branch=master) [![Gem Version](https://badge.fury.io/rb/fix-protocol.svg)](http://badge.fury.io/rb/fix-protocol)
2
2
  =
3
3
 
4
- This library aims to provide a set of useful tools to generate, parse and process messages FIX standard.
4
+ This FIX protocol wrapper enables one to easily parse and create messages complying with the FIX 4.4 specification.
5
5
 
6
- Currently it only supports the FIX messages needed for our own use. Additional messages support should however be quite easy to add.
6
+ It includes definitions for admin messages (logon, heartbeat, resend request, test request), for some market data messages (market data request, market data snapshot, and market data incremental refresh) as well as the ability to easily define other ones.
7
7
 
8
- ## Example usage
8
+ ## Message creation example
9
+
10
+ Messages are created by instantiating the relevant message class and serialized using the `#dump` method.
9
11
 
10
12
  ````ruby
11
13
  require 'fix/protocol'
12
14
 
13
15
  msg = FP::Messages::Logon.new
14
- msg.sender_comp_id = 'MY_ID'
15
- msg.target_comp_id = 'MY_COUNTERPARTY'
16
- msg.msg_seq_num = 0
17
- msg.username = 'MY_USERNAME'
16
+
17
+ msg.sender_comp_id = 'MY_ID'
18
+ msg.target_comp_id = 'MY_COUNTERPARTY'
19
+ msg.msg_seq_num = 0
20
+ msg.username = 'MY_USERNAME'
18
21
 
19
22
  if msg.valid?
20
- msg.dump
23
+ puts msg.dump
21
24
  else
22
25
  puts msg.errors.join(", ")
23
26
  end
@@ -25,3 +28,48 @@ end
25
28
 
26
29
  Which would output the sample message : `8=FIX.4.4\x019=105\x0135=A\x0149=MY_ID\x0156=MY_COUNTERPARTY\x0134=0\x0152=20141021-10:33:15\x0198=0\x01108=30\x01553=MY_USERNAME\x01141=\x0110=176\x01`
27
30
 
31
+
32
+ ## Message definition example
33
+
34
+ Complex message definition is possible using a simple DSL as shown below.
35
+
36
+ ````ruby
37
+ module Fix
38
+ module Protocol
39
+ module Messages
40
+
41
+ class MarketDataRequest < Message
42
+
43
+ SUBSCRIPTION_TYPES = {
44
+ snapshot: 0,
45
+ updates: 1,
46
+ unsubscribe: 2
47
+ }
48
+
49
+ MKT_DPTH_TYPES = {
50
+ full: 0,
51
+ top: 1
52
+ }
53
+
54
+ UPDATE_TYPES = {
55
+ full: 0,
56
+ incremental: 1
57
+ }
58
+
59
+ unordered :body do
60
+ field :md_req_id, tag: 262, required: true
61
+ field :subscription_request_type, tag: 263, required: true, type: :integer, mapping: SUBSCRIPTION_TYPES
62
+ field :market_depth, tag: 264, required: true, type: :integer, mapping: MKT_DPTH_TYPES
63
+ field :md_update_type, tag: 265, required: true, type: :integer, mapping: UPDATE_TYPES
64
+
65
+ collection :md_entry_types, counter_tag: 267, klass: FP::Messages::MdEntryType
66
+ collection :instruments, counter_tag: 146, klass: FP::Messages::Instrument
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
73
+ ````
74
+
75
+
@@ -4,7 +4,7 @@ module Fix
4
4
  #
5
5
  # The fix-protocol gem version string
6
6
  #
7
- VERSION = '0.0.64'
7
+ VERSION = '1.0.0'
8
8
 
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,140 +1,148 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fix-protocol
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.64
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David François
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-06 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '3.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: yard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.8'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.8'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pry
56
+ name: redcarpet
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '3.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3.1'
69
69
  - !ruby/object:Gem::Dependency
70
- name: redcarpet
70
+ name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '0.9'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '0.9'
83
83
  - !ruby/object:Gem::Dependency
84
- name: simplecov
84
+ name: coveralls
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '0.7'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '0.7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: treetop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '1.5'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '1.5'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: polyglot
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '0.3'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
125
- description: FIX message classes, parsing and generation
124
+ version: '0.3'
125
+ description: " This FIX protocol wrapper enables one to easily parse and create\n
126
+ \ messages complying with the FIX 4.4 specification. It includes definitions\n for
127
+ admin messages (logon, heartbeat, resend request, test request), for\n some market
128
+ data messages (market data request, market data snapshot, and \n market data incremental
129
+ refresh) as well as the ability to easily define other ones.\n"
126
130
  email:
127
131
  - david.francois@paymium.com
128
132
  executables: []
129
133
  extensions: []
130
134
  extra_rdoc_files: []
131
135
  files:
136
+ - LICENSE
137
+ - README.md
138
+ - lib/fix/protocol.rb
132
139
  - lib/fix/protocol/field.rb
133
140
  - lib/fix/protocol/grammar.treetop
134
141
  - lib/fix/protocol/grammar_extensions/message.rb
135
142
  - lib/fix/protocol/message.rb
136
143
  - lib/fix/protocol/message_class_mapping.rb
137
144
  - lib/fix/protocol/message_part.rb
145
+ - lib/fix/protocol/messages.rb
138
146
  - lib/fix/protocol/messages/heartbeat.rb
139
147
  - lib/fix/protocol/messages/instrument.rb
140
148
  - lib/fix/protocol/messages/logon.rb
@@ -147,17 +155,14 @@ files:
147
155
  - lib/fix/protocol/messages/reject.rb
148
156
  - lib/fix/protocol/messages/resend_request.rb
149
157
  - lib/fix/protocol/messages/test_request.rb
150
- - lib/fix/protocol/messages.rb
151
158
  - lib/fix/protocol/parse_failure.rb
152
159
  - lib/fix/protocol/repeating_message_part.rb
153
160
  - lib/fix/protocol/type_conversions.rb
154
161
  - lib/fix/protocol/unordered_part.rb
155
162
  - lib/fix/protocol/version.rb
156
- - lib/fix/protocol.rb
157
- - LICENSE
158
- - README.md
159
163
  homepage: https://github.com/paymium/fix-protocol
160
- licenses: []
164
+ licenses:
165
+ - MIT
161
166
  metadata: {}
162
167
  post_install_message:
163
168
  rdoc_options: []
@@ -175,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
180
  version: 1.3.6
176
181
  requirements: []
177
182
  rubyforge_project:
178
- rubygems_version: 2.0.3
183
+ rubygems_version: 2.4.2
179
184
  signing_key:
180
185
  specification_version: 4
181
186
  summary: FIX message classes, parsing and generation