Skip to content

Commit 889a32f

Browse files
authored
Merge pull request #7 from ib-ruby/specs
Specs
2 parents 7dd899c + d80dd17 commit 889a32f

File tree

15 files changed

+441
-654
lines changed

15 files changed

+441
-654
lines changed

lib/ib/connection.rb

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,26 @@ def send_message what, *args
339339
# Place Order (convenience wrapper for send_message :PlaceOrder).
340340
# Assigns client_id and order_id fields to placed order. Returns assigned order_id.
341341
def place_order order, contract
342-
order.place contract, self
342+
# order.place contract, self ## old
343+
error "Unable to place order, next_local_id not known" unless next_local_id
344+
error "local_id present. Order is already placed. Do might use modify insteed" unless order.local_id.nil?
345+
order.client_id = client_id
346+
order.local_id = next_local_id
347+
self.next_local_id += 1
348+
order.placed_at = Time.now
349+
modify_order order, contract
343350
end
344351

345352
# Modify Order (convenience wrapper for send_message :PlaceOrder). Returns order_id.
346353
def modify_order order, contract
347-
order.modify contract, self
354+
# order.modify contract, self ## old
355+
error "Unable to modify order; local_id not specified" if order.local_id.nil?
356+
order.modified_at = Time.now
357+
send_message :PlaceOrder,
358+
:order => order,
359+
:contract => contract,
360+
:local_id => order.local_id
361+
order.local_id # return value
348362
end
349363

350364
# Cancel Orders by their local ids (convenience wrapper for send_message :CancelOrder).

lib/ib/model.rb

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
## Connection to Orientdb is established if the oriendb-client is
2-
# present upon require if ib-ruby
3-
# If ActiveOrient is not connected (ActiveOrient::Init.connect has not been called)
41
# lightweigth tables are used
52
require 'ib/base_properties'
6-
#require 'active-orient'
7-
#if ActiveOrient::Model.orientdb.nil?
83
require 'ib/base'
94
IB::Model = IB::Base
10-
#else
11-
# require 'ib/orientdb'
12-
# IB::Model = V #ActiveOrient::Base
13-
# IB::DB.connect
14-
# puts " IB-Ruby is run in OrientDB-Mode"
15-
#end
16-
#module IB
17-
# IB Models can be either lightweight (tableless) or database-backed.
18-
# require 'ib/db' - to make all IB models database-backed
19-
# Model = IB.db_backed? ? ActiveRecord::Base : IB::Base
20-
#end

lib/models/ib/butterfly.rb

Lines changed: 0 additions & 93 deletions
This file was deleted.

lib/models/ib/calendar.rb

Lines changed: 0 additions & 107 deletions
This file was deleted.

lib/models/ib/contract.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ def essential
215215
end
216216

217217

218+
# creates a new Contract substituting attributes by the provied key-value pairs
219+
def merge **new_attributes
220+
self.class.new attributes.merge new_attributes
221+
end
222+
218223
# Contract comparison
219224

220225
def == other # :nodoc:

0 commit comments

Comments
 (0)