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.
- checksums.yaml +4 -4
- data/README.md +57 -9
- data/lib/fix/protocol/version.rb +1 -1
- metadata +49 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d6247425bc7da4d8378782c21658c682783f0ec
|
4
|
+
data.tar.gz: ddb6bf6c12e49f601c2cb048239d2463f5ed1457
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
4
|
+
This FIX protocol wrapper enables one to easily parse and create messages complying with the FIX 4.4 specification.
|
5
5
|
|
6
|
-
|
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
|
-
##
|
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
|
-
|
15
|
-
msg.
|
16
|
-
msg.
|
17
|
-
msg.
|
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
|
+
|
data/lib/fix/protocol/version.rb
CHANGED
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
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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:
|
56
|
+
name: redcarpet
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
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: '
|
68
|
+
version: '3.1'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
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:
|
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: '
|
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: '
|
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
|
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.
|
183
|
+
rubygems_version: 2.4.2
|
179
184
|
signing_key:
|
180
185
|
specification_version: 4
|
181
186
|
summary: FIX message classes, parsing and generation
|