ib-ruby 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. data/.gitignore +3 -0
  2. data/HISTORY +8 -0
  3. data/README.md +2 -2
  4. data/Rakefile +15 -0
  5. data/TODO +7 -2
  6. data/VERSION +1 -1
  7. data/bin/account_info +1 -1
  8. data/bin/cancel_orders +1 -1
  9. data/bin/contract_details +1 -1
  10. data/bin/depth_of_market +1 -1
  11. data/bin/fa_accounts +1 -1
  12. data/bin/fundamental_data +42 -0
  13. data/bin/historic_data +1 -1
  14. data/bin/historic_data_cli +1 -1
  15. data/bin/list_orders +1 -2
  16. data/bin/market_data +1 -1
  17. data/bin/option_data +1 -1
  18. data/bin/place_combo_order +1 -1
  19. data/bin/place_order +1 -1
  20. data/bin/template +1 -4
  21. data/bin/tick_data +2 -2
  22. data/bin/time_and_sales +1 -1
  23. data/lib/ib-ruby.rb +4 -0
  24. data/lib/ib-ruby/connection.rb +50 -34
  25. data/lib/ib-ruby/constants.rb +232 -37
  26. data/lib/ib-ruby/db.rb +25 -0
  27. data/lib/ib-ruby/extensions.rb +51 -1
  28. data/lib/ib-ruby/messages/abstract_message.rb +0 -8
  29. data/lib/ib-ruby/messages/incoming.rb +18 -493
  30. data/lib/ib-ruby/messages/incoming/abstract_message.rb +100 -0
  31. data/lib/ib-ruby/messages/incoming/alert.rb +34 -0
  32. data/lib/ib-ruby/messages/incoming/contract_data.rb +82 -0
  33. data/lib/ib-ruby/messages/incoming/delta_neutral_validation.rb +20 -0
  34. data/lib/ib-ruby/messages/incoming/execution_data.rb +59 -0
  35. data/lib/ib-ruby/messages/incoming/historical_data.rb +55 -0
  36. data/lib/ib-ruby/messages/incoming/market_depths.rb +44 -0
  37. data/lib/ib-ruby/messages/incoming/open_order.rb +32 -16
  38. data/lib/ib-ruby/messages/incoming/order_status.rb +67 -0
  39. data/lib/ib-ruby/messages/incoming/portfolio_value.rb +39 -0
  40. data/lib/ib-ruby/messages/incoming/real_time_bar.rb +32 -0
  41. data/lib/ib-ruby/messages/incoming/scanner_data.rb +49 -0
  42. data/lib/ib-ruby/messages/outgoing.rb +25 -223
  43. data/lib/ib-ruby/messages/outgoing/abstract_message.rb +61 -0
  44. data/lib/ib-ruby/messages/outgoing/bar_requests.rb +149 -0
  45. data/lib/ib-ruby/messages/outgoing/place_order.rb +24 -0
  46. data/lib/ib-ruby/models.rb +4 -0
  47. data/lib/ib-ruby/models/bar.rb +31 -14
  48. data/lib/ib-ruby/models/combo_leg.rb +48 -23
  49. data/lib/ib-ruby/models/contracts.rb +2 -2
  50. data/lib/ib-ruby/models/contracts/bag.rb +11 -7
  51. data/lib/ib-ruby/models/contracts/contract.rb +90 -66
  52. data/lib/ib-ruby/models/contracts/option.rb +16 -7
  53. data/lib/ib-ruby/models/execution.rb +34 -18
  54. data/lib/ib-ruby/models/model.rb +15 -7
  55. data/lib/ib-ruby/models/model_properties.rb +101 -44
  56. data/lib/ib-ruby/models/order.rb +176 -187
  57. data/lib/ib-ruby/models/order_state.rb +99 -0
  58. data/lib/ib-ruby/symbols/forex.rb +10 -10
  59. data/lib/ib-ruby/symbols/futures.rb +6 -6
  60. data/lib/ib-ruby/symbols/stocks.rb +3 -3
  61. data/spec/account_helper.rb +4 -5
  62. data/spec/combo_helper.rb +4 -4
  63. data/spec/db.rb +18 -0
  64. data/spec/ib-ruby/messages/{incoming_spec.rb → incoming/alert_spec.rb} +1 -0
  65. data/spec/ib-ruby/messages/incoming/open_order_spec.rb +100 -0
  66. data/spec/ib-ruby/messages/incoming/order_status_spec.rb +74 -0
  67. data/spec/ib-ruby/messages/{outgoing_spec.rb → outgoing/account_data_spec.rb} +0 -0
  68. data/spec/ib-ruby/messages/outgoing/market_data_type_spec.rb +44 -0
  69. data/spec/ib-ruby/models/bag_spec.rb +97 -0
  70. data/spec/ib-ruby/models/bar_spec.rb +45 -0
  71. data/spec/ib-ruby/models/combo_leg_spec.rb +56 -40
  72. data/spec/ib-ruby/models/contract_spec.rb +134 -170
  73. data/spec/ib-ruby/models/execution_spec.rb +35 -50
  74. data/spec/ib-ruby/models/option_spec.rb +127 -0
  75. data/spec/ib-ruby/models/order_spec.rb +89 -68
  76. data/spec/ib-ruby/models/order_state_spec.rb +55 -0
  77. data/spec/integration/contract_info_spec.rb +4 -6
  78. data/spec/integration/fundamental_data_spec.rb +41 -0
  79. data/spec/integration/historic_data_spec.rb +4 -4
  80. data/spec/integration/market_data_spec.rb +1 -3
  81. data/spec/integration/orders/attached_spec.rb +8 -10
  82. data/spec/integration/orders/combo_spec.rb +2 -2
  83. data/spec/integration/orders/execution_spec.rb +0 -1
  84. data/spec/integration/orders/placement_spec.rb +1 -3
  85. data/spec/integration/orders/valid_ids_spec.rb +1 -2
  86. data/spec/message_helper.rb +1 -1
  87. data/spec/model_helper.rb +211 -0
  88. data/spec/order_helper.rb +44 -37
  89. data/spec/spec_helper.rb +36 -23
  90. data/spec/v.rb +7 -0
  91. data/tasks/doc.rake +1 -1
  92. metadata +116 -12
  93. data/spec/integration/orders/open_order +0 -98
data/spec/order_helper.rb CHANGED
@@ -17,6 +17,14 @@ shared_examples_for 'Placed Order' do
17
17
  it 'receives confirmation of Order submission' do
18
18
  order_should_be /Submit/ # ()Pre)Submitted
19
19
  status_should_be /Submit/
20
+
21
+ if @attached_order
22
+ if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
23
+ pending 'API Bug: Attached GTC orders not working for butterflies!'
24
+ else
25
+ order_should_be /Submit/, @attached_order
26
+ end
27
+ end
20
28
  end
21
29
  end # Placing
22
30
 
@@ -43,8 +51,8 @@ shared_examples_for 'Placed Order' do
43
51
  status_should_be /Submitted/
44
52
 
45
53
  if @attached_order
46
- if contract_type == :butterfly && @attached_order.tif == 'GTC'
47
- pending 'API Bug: Attached DAY orders not working for butterflies!'
54
+ if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
55
+ pending 'API Bug: Attached GTC orders not working for butterflies!'
48
56
  else
49
57
  order_should_be /Submit/, @attached_order
50
58
  end
@@ -54,21 +62,19 @@ shared_examples_for 'Placed Order' do
54
62
 
55
63
  context "Modifying Order" do
56
64
  before(:all) do
57
- if defined?(contract_type) && contract_type == :butterfly
58
- pending 'API Bug: Order modification not working for butterflies!'
59
- else
60
- # Modification only works for non-attached, non-combo orders
61
- @order.total_quantity = 200
62
- @order.limit_price += 0.05
63
- @order.transmit = true
64
- @ib.modify_order @order, @contract
65
-
66
- if @attached_order
67
- # Modify attached order, if any
68
- @attached_order.limit_price *= 1.5
69
- @attached_order.tif = 'GTC'
70
- @ib.modify_order @attached_order, @contract
71
- end
65
+ # Modification only works for non-attached orders
66
+ @order.total_quantity *= 2
67
+ @order.limit_price += 0.05
68
+ @order.transmit = true
69
+ @order.tif = 'GTC'
70
+ @ib.modify_order @order, @contract
71
+
72
+ if @attached_order
73
+ # Modify attached order, if any
74
+ @attached_order.limit_price += 0.05
75
+ @attached_order.total_quantity *= 2
76
+ @attached_order.tif = 'GTC'
77
+ @ib.modify_order @attached_order, @contract
72
78
  end
73
79
  @ib.send_message :RequestOpenOrders
74
80
  @ib.wait_for :OpenOrderEnd, 6 #sec
@@ -92,8 +98,8 @@ shared_examples_for 'Placed Order' do
92
98
  status_should_be /Submit/
93
99
 
94
100
  if @attached_order
95
- if contract_type == :butterfly && @attached_order.tif == 'GTC'
96
- pending 'API Bug: Attached DAY orders not working for butterflies!'
101
+ if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
102
+ pending 'API Bug: Attached GTC orders not working for butterflies!'
97
103
  else
98
104
  order_should_be /Submit/, @attached_order
99
105
  end
@@ -127,8 +133,8 @@ shared_examples_for 'Placed Order' do
127
133
  it 'receives cancellation Order Status' do
128
134
  status_should_be /Cancel/ # Cancelled / PendingCancel
129
135
  if @attached_order
130
- if contract_type == :butterfly && @attached_order.tif == 'GTC'
131
- pending 'API Bug: Attached DAY orders not working for butterflies!'
136
+ if contract_type == :butterfly && @attached_order.tif == :good_till_cancelled
137
+ pending 'API Bug: Attached GTC orders not working for butterflies!'
132
138
  else
133
139
  status_should_be /Cancel/, @attached_order
134
140
  end
@@ -145,7 +151,7 @@ end
145
151
 
146
152
  ### Helpers for placing and verifying orders
147
153
 
148
- def place_order contract, opts
154
+ def place_order contract, opts = {}
149
155
  @contract = contract
150
156
  @order = IB::Order.new({:total_quantity => 100,
151
157
  :limit_price => 9.13,
@@ -163,24 +169,25 @@ def status_should_be status, order=@order
163
169
  end
164
170
  msg.should_not be_nil
165
171
  msg.should be_an IB::Messages::Incoming::OrderStatus
166
- msg.order_id.should == order.order_id
167
- msg.perm_id.should be_an Integer
168
- msg.client_id.should == OPTS[:connection][:client_id]
169
- msg.parent_id.should == 0 unless @attached_order
170
- msg.why_held.should == ''
172
+ order_state = msg.order_state
173
+ order_state.order_id.should == order.order_id
174
+ order_state.perm_id.should be_an Integer
175
+ order_state.client_id.should == OPTS[:connection][:client_id]
176
+ order_state.parent_id.should == 0 unless @attached_order
177
+ order_state.why_held.should == ''
171
178
 
172
179
  if @contract == IB::Symbols::Forex[:eurusd]
173
180
  # We know that this order filled for sure
174
- msg.filled.should == 20000
175
- msg.remaining.should == 0
176
- msg.average_fill_price.should be > 1
177
- msg.average_fill_price.should be < 2
178
- msg.last_fill_price.should == msg.average_fill_price
181
+ order_state.filled.should == 20000
182
+ order_state.remaining.should == 0
183
+ order_state.average_fill_price.should be > 1
184
+ order_state.average_fill_price.should be < 2
185
+ order_state.last_fill_price.should == order_state.average_fill_price
179
186
  else
180
- msg.filled.should == 0
181
- msg.remaining.should == @order.total_quantity
182
- msg.average_fill_price.should == 0
183
- msg.last_fill_price.should == 0
187
+ order_state.filled.should == 0
188
+ order_state.remaining.should == order.total_quantity
189
+ order_state.average_fill_price.should == 0
190
+ order_state.last_fill_price.should == 0
184
191
  end
185
192
  end
186
193
 
@@ -216,5 +223,5 @@ def execution_should_be side, opts={}
216
223
  exec.price.should be > 1
217
224
  exec.price.should be < 2
218
225
  exec.price.should == exec.average_price
219
- exec.liquidation.should == 0
226
+ exec.liquidation.should == false
220
227
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,30 @@
1
1
  require 'rspec'
2
2
  require 'ib-ruby'
3
3
 
4
+ # Top level metadata for test suite level hacking
5
+ OPTS ||= {
6
+ :verbose => false, #true, # Verbosity of test outputs
7
+ :brokertron => false, # Use mock (Brokertron) instead of paper account
8
+ }
9
+
10
+ if OPTS[:brokertron]
11
+ # Connection to mock (Brokertron) account
12
+ OPTS[:connection] =
13
+ {:client_id => 1111, # Just an arbitrary id
14
+ :host => 'free.brokertron.com',
15
+ :port=> 10501
16
+ }
17
+ else
18
+ # Connection to IB PAPER ACCOUNT
19
+ OPTS[:connection] =
20
+ {:account_name => 'DU118180', # Your IB PAPER ACCOUNT, tests will only run against it
21
+ :client_id => 1111, # Just an arbitrary id
22
+ :host => '10.211.55.2', # Where your TWS/gateway is located, likely '127.0.0.1'
23
+ :port => 4001, # 4001 for Gateway, 7496 for TWS GUI
24
+ :reuters => true # Subscription to Reuters data enabled ?
25
+ }
26
+ end
27
+
4
28
  RSpec.configure do |config|
5
29
  config.exclusion_filter = {
6
30
  :if => proc do |condition|
@@ -13,34 +37,23 @@ RSpec.configure do |config|
13
37
  # 17:15 - 17:00 (ET) Sunday-Friday Forex 22:15 - 22:00 (UTC)
14
38
  !(t.wday > 0 && t.wday < 5 || t.wday == 5 && t.hour < 22)
15
39
  end
16
- end
40
+ end,
41
+
42
+ :db => proc { |condition| !IB::DB == condition }, # true/false
43
+
44
+ :reuters => proc { |condition| !OPTS[:connection][:reuters] == condition } # true/false
17
45
  }
18
46
  # config.filter = { :focus => true }
19
47
  # config.include(UserExampleHelpers)
20
48
  # config.mock_with :mocha
21
49
  # config.mock_with :flexmock
22
50
  # config.mock_with :rr
23
- end
24
-
25
- # Top level metadata for test suite level hacking
26
- OPTS = {
27
- :silent => true, #false, #true, # Verbosity of test outputs
28
- :brokertron => false, # Use mock (Brokertron) instead of paper account
29
- }
30
51
 
31
- if OPTS[:brokertron]
32
- # Connection to mock (Brokertron) account
33
- OPTS[:connection] =
34
- {:client_id => 1111, # Just an arbitrary id
35
- :host => 'free.brokertron.com',
36
- :port=> 10501
37
- }
38
- else
39
- # Connection to IB PAPER ACCOUNT
40
- OPTS[:connection] =
41
- {:account_name => 'DU118180', # Your IB PAPER ACCOUNT, tests will only run against it
42
- :client_id => 1111, # Just an arbitrary id
43
- :host => '10.211.55.2', # Where your TWS/gateway is located, likely '127.0.0.1'
44
- :port => 4001 # 4001 for Gateway, 7496 for TWS GUI
45
- }
52
+ if IB::DB
53
+ config.before(:suite) do
54
+ DatabaseCleaner.strategy = :truncation
55
+ DatabaseCleaner.clean
56
+ end
57
+ end
46
58
  end
59
+
data/spec/v.rb ADDED
@@ -0,0 +1,7 @@
1
+ puts 'To run specs with (extremely) verbose output, use:'
2
+ puts '$ rspec -rv spec'
3
+
4
+ OPTS ||= {
5
+ :verbose => true, #false, #true, # Verbosity of test outputs
6
+ :brokertron => false, # Do not use mock service (Brokertron)
7
+ }
data/tasks/doc.rake CHANGED
@@ -2,7 +2,7 @@ desc 'Alias to doc:rdoc'
2
2
  task :doc => 'doc:rdoc'
3
3
 
4
4
  namespace :doc do
5
- require 'rake/rdoctask'
5
+ require 'rdoc/task'
6
6
  Rake::RDocTask.new do |rdoc|
7
7
  # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "clobber", :rerdoc => "rerdoc") do |rdoc|
8
8
  rdoc.rdoc_dir = DOC_PATH.basename.to_s
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ib-ruby
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.4
5
+ version: 0.7.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Paul Legato
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2012-04-04 00:00:00 Z
14
+ date: 2012-04-18 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -25,27 +25,93 @@ dependencies:
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: activerecord
29
29
  prerelease: false
30
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 0.0.1
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: activerecord-jdbcsqlite3-adapter
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.2.2
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: jdbc-sqlite3
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 3.7.2
58
+ type: :runtime
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: xml-simple
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.1
69
+ type: :runtime
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: standalone_migrations
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ type: :development
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: database_cleaner
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
31
86
  none: false
32
87
  requirements:
33
88
  - - ">="
34
89
  - !ruby/object:Gem::Version
35
90
  version: 2.8.0
36
91
  type: :development
37
- version_requirements: *id002
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ prerelease: false
96
+ requirement: &id008 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: 2.8.0
102
+ type: :development
103
+ version_requirements: *id008
38
104
  - !ruby/object:Gem::Dependency
39
105
  name: my_scripts
40
106
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
107
+ requirement: &id009 !ruby/object:Gem::Requirement
42
108
  none: false
43
109
  requirements:
44
110
  - - ">="
45
111
  - !ruby/object:Gem::Version
46
112
  version: "0"
47
113
  type: :development
48
- version_requirements: *id003
114
+ version_requirements: *id009
49
115
  description: Ruby Implementation of the Interactive Brokers TWS API
50
116
  email:
51
117
  - pjlegato@gmail.com
@@ -56,6 +122,7 @@ executables:
56
122
  - contract_details
57
123
  - depth_of_market
58
124
  - fa_accounts
125
+ - fundamental_data
59
126
  - historic_data
60
127
  - historic_data_cli
61
128
  - list_orders
@@ -76,6 +143,7 @@ files:
76
143
  - bin/contract_details
77
144
  - bin/depth_of_market
78
145
  - bin/fa_accounts
146
+ - bin/fundamental_data
79
147
  - bin/historic_data
80
148
  - bin/historic_data_cli
81
149
  - bin/list_orders
@@ -89,6 +157,7 @@ files:
89
157
  - lib/ib-ruby.rb
90
158
  - lib/ib-ruby/connection.rb
91
159
  - lib/ib-ruby/constants.rb
160
+ - lib/ib-ruby/db.rb
92
161
  - lib/ib-ruby/errors.rb
93
162
  - lib/ib-ruby/extensions.rb
94
163
  - lib/ib-ruby/logger.rb
@@ -100,8 +169,22 @@ files:
100
169
  - lib/ib-ruby/messages/abstract_message.rb
101
170
  - lib/ib-ruby/messages/incoming.rb
102
171
  - lib/ib-ruby/messages/outgoing.rb
172
+ - lib/ib-ruby/messages/incoming/abstract_message.rb
173
+ - lib/ib-ruby/messages/incoming/alert.rb
174
+ - lib/ib-ruby/messages/incoming/contract_data.rb
175
+ - lib/ib-ruby/messages/incoming/delta_neutral_validation.rb
176
+ - lib/ib-ruby/messages/incoming/execution_data.rb
177
+ - lib/ib-ruby/messages/incoming/historical_data.rb
178
+ - lib/ib-ruby/messages/incoming/market_depths.rb
103
179
  - lib/ib-ruby/messages/incoming/open_order.rb
180
+ - lib/ib-ruby/messages/incoming/order_status.rb
181
+ - lib/ib-ruby/messages/incoming/portfolio_value.rb
182
+ - lib/ib-ruby/messages/incoming/real_time_bar.rb
183
+ - lib/ib-ruby/messages/incoming/scanner_data.rb
104
184
  - lib/ib-ruby/messages/incoming/ticks.rb
185
+ - lib/ib-ruby/messages/outgoing/abstract_message.rb
186
+ - lib/ib-ruby/messages/outgoing/bar_requests.rb
187
+ - lib/ib-ruby/messages/outgoing/place_order.rb
105
188
  - lib/ib-ruby/models/bar.rb
106
189
  - lib/ib-ruby/models/combo_leg.rb
107
190
  - lib/ib-ruby/models/contracts.rb
@@ -109,6 +192,7 @@ files:
109
192
  - lib/ib-ruby/models/model.rb
110
193
  - lib/ib-ruby/models/model_properties.rb
111
194
  - lib/ib-ruby/models/order.rb
195
+ - lib/ib-ruby/models/order_state.rb
112
196
  - lib/ib-ruby/models/contracts/bag.rb
113
197
  - lib/ib-ruby/models/contracts/contract.rb
114
198
  - lib/ib-ruby/models/contracts/option.rb
@@ -118,29 +202,39 @@ files:
118
202
  - lib/ib-ruby/symbols/stocks.rb
119
203
  - spec/account_helper.rb
120
204
  - spec/combo_helper.rb
205
+ - spec/db.rb
121
206
  - spec/integration_helper.rb
122
207
  - spec/message_helper.rb
208
+ - spec/model_helper.rb
123
209
  - spec/order_helper.rb
124
210
  - spec/README.md
125
211
  - spec/spec_helper.rb
126
212
  - spec/TODO
213
+ - spec/v.rb
127
214
  - spec/ib-ruby/connection_spec.rb
128
- - spec/ib-ruby/messages/incoming_spec.rb
129
- - spec/ib-ruby/messages/outgoing_spec.rb
215
+ - spec/ib-ruby/messages/incoming/alert_spec.rb
216
+ - spec/ib-ruby/messages/incoming/open_order_spec.rb
217
+ - spec/ib-ruby/messages/incoming/order_status_spec.rb
218
+ - spec/ib-ruby/messages/outgoing/account_data_spec.rb
219
+ - spec/ib-ruby/messages/outgoing/market_data_type_spec.rb
220
+ - spec/ib-ruby/models/bag_spec.rb
221
+ - spec/ib-ruby/models/bar_spec.rb
130
222
  - spec/ib-ruby/models/combo_leg_spec.rb
131
223
  - spec/ib-ruby/models/contract_spec.rb
132
224
  - spec/ib-ruby/models/execution_spec.rb
225
+ - spec/ib-ruby/models/option_spec.rb
133
226
  - spec/ib-ruby/models/order_spec.rb
227
+ - spec/ib-ruby/models/order_state_spec.rb
134
228
  - spec/integration/account_info_spec.rb
135
229
  - spec/integration/contract_info_spec.rb
136
230
  - spec/integration/depth_data_spec.rb
231
+ - spec/integration/fundamental_data_spec.rb
137
232
  - spec/integration/historic_data_spec.rb
138
233
  - spec/integration/market_data_spec.rb
139
234
  - spec/integration/option_data_spec.rb
140
235
  - spec/integration/orders/attached_spec.rb
141
236
  - spec/integration/orders/combo_spec.rb
142
237
  - spec/integration/orders/execution_spec.rb
143
- - spec/integration/orders/open_order
144
238
  - spec/integration/orders/placement_spec.rb
145
239
  - spec/integration/orders/valid_ids_spec.rb
146
240
  - tasks/common.rake
@@ -186,29 +280,39 @@ summary: Ruby Implementation of the Interactive Brokers TWS API
186
280
  test_files:
187
281
  - spec/account_helper.rb
188
282
  - spec/combo_helper.rb
283
+ - spec/db.rb
189
284
  - spec/integration_helper.rb
190
285
  - spec/message_helper.rb
286
+ - spec/model_helper.rb
191
287
  - spec/order_helper.rb
192
288
  - spec/README.md
193
289
  - spec/spec_helper.rb
194
290
  - spec/TODO
291
+ - spec/v.rb
195
292
  - spec/ib-ruby/connection_spec.rb
196
- - spec/ib-ruby/messages/incoming_spec.rb
197
- - spec/ib-ruby/messages/outgoing_spec.rb
293
+ - spec/ib-ruby/messages/incoming/alert_spec.rb
294
+ - spec/ib-ruby/messages/incoming/open_order_spec.rb
295
+ - spec/ib-ruby/messages/incoming/order_status_spec.rb
296
+ - spec/ib-ruby/messages/outgoing/account_data_spec.rb
297
+ - spec/ib-ruby/messages/outgoing/market_data_type_spec.rb
298
+ - spec/ib-ruby/models/bag_spec.rb
299
+ - spec/ib-ruby/models/bar_spec.rb
198
300
  - spec/ib-ruby/models/combo_leg_spec.rb
199
301
  - spec/ib-ruby/models/contract_spec.rb
200
302
  - spec/ib-ruby/models/execution_spec.rb
303
+ - spec/ib-ruby/models/option_spec.rb
201
304
  - spec/ib-ruby/models/order_spec.rb
305
+ - spec/ib-ruby/models/order_state_spec.rb
202
306
  - spec/integration/account_info_spec.rb
203
307
  - spec/integration/contract_info_spec.rb
204
308
  - spec/integration/depth_data_spec.rb
309
+ - spec/integration/fundamental_data_spec.rb
205
310
  - spec/integration/historic_data_spec.rb
206
311
  - spec/integration/market_data_spec.rb
207
312
  - spec/integration/option_data_spec.rb
208
313
  - spec/integration/orders/attached_spec.rb
209
314
  - spec/integration/orders/combo_spec.rb
210
315
  - spec/integration/orders/execution_spec.rb
211
- - spec/integration/orders/open_order
212
316
  - spec/integration/orders/placement_spec.rb
213
317
  - spec/integration/orders/valid_ids_spec.rb
214
318
  has_rdoc: