mytradewizard 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bda60c3971b1fac76917fa041ebce3ef25352e4d
4
- data.tar.gz: 0a3c2516bba8f5da6763c39295e81e5617cd22da
3
+ metadata.gz: 2dcd51324e1616bebf87c3b14b17ebc1e0ff08b6
4
+ data.tar.gz: 94ba368a322db05aa2e79658eddf871d58177e48
5
5
  SHA512:
6
- metadata.gz: ba2cac2aa896b91dca8411d8d1d92a6eedd4bba966e8d775fc2a84727332e0436762d17c0f53eb2895f075c6799c8ab72aa1d60175f8fab1acca9b88f1ed6b3e
7
- data.tar.gz: 77aa4ca9967d183d18ac67a21b5fb289f99a48b101a7cf3eed6ff83708ad15d15d4cfce25a705aae44ee1657b93664f0499dceafdaf3cb2d41e4c7e7846e0eb3
6
+ metadata.gz: cbc285b0c09c21ed076bd7fa417f324266d1e847a936fdd4fe4bc633691b28e716c0db277d61f329d29a8668f559209b912cbbd744b46e7de8b990efffe27c92
7
+ data.tar.gz: f51c9f338452e48304227e6e50379c0dbc61ac9b8a7ad63f08d0193de035e4d15a3d0ec686079b8b1a7dbaca9deaa5ad8beb32bfb1cf9b3a8e8e47c2f423687b
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/.rvmrc ADDED
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
+ # Only full ruby name is supported here, for short names use:
8
+ # echo "rvm use 1.9.2" > .rvmrc
9
+ environment_id="ruby-2.0.0-p247"
10
+
11
+ # Uncomment the following lines if you want to verify rvm version per project
12
+ # rvmrc_rvm_version="1.21.14 (stable)" # 1.10.1 seems like a safe start
13
+ # eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
+ # echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
+ # return 1
16
+ # }
17
+
18
+ # First we attempt to load the desired environment directly from the environment
19
+ # file. This is very fast and efficient compared to running through the entire
20
+ # CLI and selector. If you want feedback on which environment was used then
21
+ # insert the word 'use' after --create as this triggers verbose mode.
22
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
+ then
25
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
+ for __hook in "${rvm_path:-$HOME/.rvm}/hooks/after_use"*
27
+ do
28
+ if [[ -f "${__hook}" && -x "${__hook}" && -s "${__hook}" ]]
29
+ then \. "${__hook}" || true
30
+ fi
31
+ done
32
+ unset __hook
33
+ if (( ${rvm_use_flag:=1} >= 2 )) # display only when forced
34
+ then
35
+ if [[ $- == *i* ]] # check for interactive shells
36
+ then printf "%b" "Using: \E[32m$GEM_HOME\E[0m
37
+ " # show the user the ruby and gemset they are using in green
38
+ else printf "%b" "Using: $GEM_HOME
39
+ " # don't use colors in non-interactive shells
40
+ fi
41
+ fi
42
+ else
43
+ # If the environment file has not yet been created, use the RVM CLI to select.
44
+ rvm --create "$environment_id" || {
45
+ echo "Failed to create RVM environment '${environment_id}'."
46
+ return 1
47
+ }
48
+ fi
49
+
50
+ # If you use bundler, this might be useful to you:
51
+ if [[ -s Gemfile ]] && {
52
+ ! builtin command -v bundle >/dev/null ||
53
+ builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
54
+ }
55
+ then
56
+ printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
57
+ gem install bundler
58
+ fi
59
+ if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
60
+ then
61
+ bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
62
+ fi
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in mytradewizard.gemspec
3
+ # Specify gem dependencies in mytradewizard.gemspec
4
4
  gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 mytradewizard
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Mytradewizard
1
+ # MyTradeWizard
2
2
 
3
3
  TODO: Write a gem description
4
4
 
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
data/bin/mtw ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'mytradewizard/cli'
3
+
4
+ MyTradeWizard::CLI.start
@@ -0,0 +1,12 @@
1
+ module MyTradeWizard
2
+ class InteractiveBrokers
3
+ class << self
4
+ def host
5
+ "localhost"
6
+ end
7
+ def port
8
+ 7496
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ Feature: CME
@@ -0,0 +1,16 @@
1
+ Feature: Interactive Brokers configuration
2
+ In order to generate and display Interactive Brokers configuration
3
+ As a CLI
4
+ I want My Trade Wizard to create and use a config file
5
+
6
+ Scenario: Generate Interactive Brokers configuration
7
+ When I run `mtw configure localhost 7496`
8
+ Then the following files should exist:
9
+ | ../../config/interactive_brokers.rb |
10
+ Then the file "../../config/interactive_brokers.rb" should contain "localhost"
11
+ Then the file "../../config/interactive_brokers.rb" should contain "7496"
12
+
13
+ Scenario: Display Interactive Brokers configuration
14
+ When I run `mtw config`
15
+ Then the output should contain "Host:"
16
+ Then the output should contain "Port:"
@@ -0,0 +1,12 @@
1
+ Feature: Interactive Brokers
2
+ In order to determine the front month Crude future contract
3
+ As a CLI
4
+ I want to use the CME Group product calendar and verify with Interactive Brokers
5
+
6
+ Scenario: CL
7
+ When I run `mtw CL`
8
+ Then the output should contain "Front month:"
9
+
10
+ Scenario: QM
11
+ When I run `mtw QM`
12
+ Then the output should contain "Front month:"
@@ -0,0 +1,5 @@
1
+ require 'aruba/cucumber'
2
+
3
+ Before do
4
+ @aruba_timeout_seconds = 10
5
+ end
@@ -1,7 +1,6 @@
1
- require "mytradewizard/version"
2
- require "mytradewizard/interactive_brokers"
3
- require "mytradewizard/cme"
1
+ require 'mytradewizard/version'
2
+ require 'mytradewizard/interactive_brokers'
3
+ require 'mytradewizard/cme'
4
4
 
5
5
  module MyTradeWizard
6
- # Your code goes here...
7
6
  end
@@ -0,0 +1,48 @@
1
+ require 'thor'
2
+ require 'mytradewizard'
3
+ require 'mytradewizard/generators/interactive_brokers'
4
+
5
+ module MyTradeWizard
6
+ class CLI < Thor
7
+
8
+ desc "configure [-- host HOST] [-- port PORT]", "Generate Interactive Brokers configuration"
9
+ method_options :host => :string, :port => :numeric
10
+ def configure
11
+ MyTradeWizard::Generators::InteractiveBrokers.start([options[:host] || "localhost", options[:port] || 7496])
12
+ end
13
+
14
+ desc "config", "Display Interactive Brokers configuration"
15
+ def config
16
+ puts "Host: " + MyTradeWizard::InteractiveBrokers.host
17
+ puts "Port: " + MyTradeWizard::InteractiveBrokers.port.to_s
18
+ end
19
+
20
+ desc "connect", "Connects to Interactive Brokers"
21
+ def connect
22
+ ib = MyTradeWizard::InteractiveBrokers.new
23
+ ib.connect
24
+ end
25
+
26
+ desc "accounts", "Lists Interactive Brokers accounts"
27
+ def accounts
28
+ ib = MyTradeWizard::InteractiveBrokers.new
29
+ ib.connect
30
+ puts "Accounts: " + ib.accounts.join(", ")
31
+ end
32
+
33
+ desc "CL", "Determines the front month Crude future contract"
34
+ def CL
35
+ ib = MyTradeWizard::InteractiveBrokers.new
36
+ ib.connect
37
+ puts "Front month: " + ib.front_month(:CL)
38
+ end
39
+
40
+ desc "QM", "Determines the front month Mini-Crude future contract"
41
+ def QM
42
+ ib = MyTradeWizard::InteractiveBrokers.new
43
+ ib.connect
44
+ puts "Front month: " + ib.front_month(:QM)
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,65 @@
1
+ require 'nokogiri'
2
+ require 'open-uri'
3
+
4
+ module MyTradeWizard
5
+ class CME
6
+ class << self
7
+
8
+ def first_month(symbol)
9
+ product_calendar(symbol, 3)
10
+ end
11
+
12
+ def second_month(symbol)
13
+ product_calendar(symbol, 4)
14
+ end
15
+
16
+ private
17
+
18
+ def product_calendar(symbol, row)
19
+ if symbol == :CL
20
+ url = 'http://www.cmegroup.com/trading/energy/crude-oil/light-sweet-crude_product_calendar_futures.html'
21
+ elsif symbol == :QM
22
+ url = 'http://www.cmegroup.com/trading/energy/crude-oil/emini-crude-oil_product_calendar_futures.html'
23
+ end
24
+
25
+ doc = Nokogiri::HTML(open(url))
26
+
27
+ mmm_yyyy = doc.xpath("//table[@class='ProductTable']/tr[#{row}]/td[1]/text()").to_s
28
+ yyyy = mmm_yyyy[-4,4]
29
+ mmm = mmm_yyyy[0,3]
30
+
31
+ case mmm
32
+ when 'JAN'
33
+ mm = '01'
34
+ when 'FEB'
35
+ mm = '02'
36
+ when 'MAR'
37
+ mm = '03'
38
+ when 'APR'
39
+ mm = '04'
40
+ when 'MAY'
41
+ mm = '05'
42
+ when 'JUN'
43
+ mm = '06'
44
+ when 'JUL'
45
+ mm = '07'
46
+ when 'AUG'
47
+ mm = '08'
48
+ when 'SEP'
49
+ mm = '09'
50
+ when 'OCT'
51
+ mm = '10'
52
+ when 'NOV'
53
+ mm = '11'
54
+ when 'DEC'
55
+ mm = '12'
56
+ else
57
+ raise "Invalid month"
58
+ end
59
+
60
+ yyyy + mm
61
+ end
62
+
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,12 @@
1
+ module MyTradeWizard
2
+ class InteractiveBrokers
3
+ class << self
4
+ def host
5
+ "<%= host %>"
6
+ end
7
+ def port
8
+ <%= port %>
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,26 @@
1
+ require 'thor/group'
2
+
3
+ module MyTradeWizard
4
+ module Generators
5
+ class InteractiveBrokers < Thor::Group
6
+
7
+ include Thor::Actions
8
+
9
+ argument :host, :type => :string
10
+ argument :port, :type => :numeric
11
+
12
+ def create_config
13
+ empty_directory("config")
14
+ end
15
+
16
+ def copy_config
17
+ template("interactive_brokers.rb", "config/interactive_brokers.rb", {force: true})
18
+ end
19
+
20
+ def self.source_root
21
+ File.dirname(__FILE__) + "/config"
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,81 @@
1
+ require 'ib'
2
+ require_relative '../../config/interactive_brokers'
3
+
4
+ module MyTradeWizard
5
+ class InteractiveBrokers
6
+
7
+ def connect(timeout = nil)
8
+ start_time = Time.now
9
+ exception = nil
10
+ while (timeout.nil? || Time.now - start_time <= timeout)
11
+ begin
12
+ @ib = IB::Connection.new :host => self.class.host, :port => self.class.port
13
+ subscribe_to_alerts
14
+ return @ib
15
+ rescue Exception => exception
16
+ puts exception
17
+ sleep 10
18
+ end
19
+ end
20
+ raise exception
21
+ end
22
+
23
+ def accounts
24
+ a = nil
25
+ @ib.subscribe(:ManagedAccounts) { |msg| a = msg.accounts_list.split(',') }
26
+ while a.nil?
27
+ sleep 1
28
+ end
29
+ a
30
+ end
31
+
32
+ def front_month(symbol)
33
+ expiry = MyTradeWizard::CME.first_month(symbol)
34
+ if invalid contract(symbol, expiry)
35
+ expiry = MyTradeWizard::CME.second_month(symbol)
36
+ if invalid contract(symbol, expiry)
37
+ raise ErrorDeterminingFrontMonth
38
+ end
39
+ end
40
+ expiry
41
+ end
42
+
43
+ private
44
+
45
+ def subscribe_to_alerts
46
+ @ib.subscribe(:Alert, :ReceiveFA, :OpenOrder, :OrderStatus, :ExecutionData, :CommissionReport, :ManagedAccounts) do |msg|
47
+ #puts msg.to_human unless msg.to_human.include?("No security definition has been found for the request")
48
+ end
49
+ end
50
+
51
+ def CL(expiry)
52
+ IB::Contract.new(:symbol => "CL", :expiry => expiry, :exchange => "NYMEX", :currency => "USD", :sec_type => :future, :description => "Crude future")
53
+ end
54
+
55
+ def QM(expiry)
56
+ IB::Contract.new(:symbol => "QM", :expiry => expiry, :exchange => "NYMEX", :currency => "USD", :sec_type => :future, :description => "Mini-Crude future")
57
+ end
58
+
59
+ def contract(symbol, expiry)
60
+ if symbol == :CL
61
+ CL(expiry)
62
+ elsif symbol == :QM
63
+ QM(expiry)
64
+ end
65
+ end
66
+
67
+ def valid(contract)
68
+ valid = false
69
+ @ib.subscribe(:ContractData, :ContractDataEnd) { |msg| valid = true }
70
+ @ib.send_message :RequestContractData, :id => 1, :contract => contract
71
+ @ib.wait_for :ContractDataEnd, 5
72
+ @ib.clear_received :ContractDataEnd
73
+ valid
74
+ end
75
+
76
+ def invalid(contract)
77
+ !valid(contract)
78
+ end
79
+
80
+ end
81
+ end
@@ -1,3 +1,3 @@
1
1
  module MyTradeWizard
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -17,7 +17,11 @@ Gem::Specification.new do |gem|
17
17
  gem.add_development_dependency "aruba"
18
18
 
19
19
  gem.add_dependency "ib-ruby", "~> 0.9"
20
- gem.add_dependency "activesupport", "~> 3.2"
20
+ gem.add_dependency "activesupport", "3.2.14"
21
+ gem.add_dependency "activemodel", "3.2.14"
22
+ gem.add_dependency "builder", "~> 3.0.0"
23
+ gem.add_dependency "arel", "~> 3.0.2"
24
+ gem.add_dependency "tzinfo", "~> 0.3.29"
21
25
  gem.add_dependency "nokogiri"
22
26
  gem.add_dependency "thor"
23
27
 
@@ -0,0 +1,22 @@
1
+ require 'mytradewizard'
2
+ require 'spec_helper'
3
+
4
+ describe MyTradeWizard::CME do
5
+
6
+ it "returns the first tradable month for Crude according to the CME Group product calendar" do
7
+ [month(0), month(1), month(2)].should include MyTradeWizard::CME.first_month(:CL)
8
+ end
9
+
10
+ it "returns the second tradable month for Crude according to the CME Group product calendar" do
11
+ [month(1), month(2), month(3)].should include MyTradeWizard::CME.second_month(:CL)
12
+ end
13
+
14
+ it "returns the first tradable month for Mini-Crude according to the CME Group product calendar" do
15
+ [month(0), month(1), month(2)].should include MyTradeWizard::CME.first_month(:QM)
16
+ end
17
+
18
+ it "returns the second tradable month for Mini-Crude according to the CME Group product calendar" do
19
+ [month(1), month(2), month(3)].should include MyTradeWizard::CME.second_month(:QM)
20
+ end
21
+
22
+ end
@@ -0,0 +1,10 @@
1
+ require 'mytradewizard'
2
+
3
+ describe MyTradeWizard::InteractiveBrokers do
4
+
5
+ it "connects to Interactive Brokers" do
6
+ ib = MyTradeWizard::InteractiveBrokers.new
7
+ expect { ib.connect(60) }.to_not raise_error
8
+ end
9
+
10
+ end
@@ -0,0 +1,3 @@
1
+ def month(from_now)
2
+ (Date.today >> from_now).strftime('%Y%m')
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mytradewizard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - mytradewizard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-30 00:00:00.000000000 Z
11
+ date: 2013-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -68,18 +68,74 @@ dependencies:
68
68
  version: '0.9'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 3.2.14
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.14
83
+ - !ruby/object:Gem::Dependency
84
+ name: activemodel
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 3.2.14
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 3.2.14
97
+ - !ruby/object:Gem::Dependency
98
+ name: builder
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 3.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 3.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: arel
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 3.0.2
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 3.0.2
125
+ - !ruby/object:Gem::Dependency
126
+ name: tzinfo
71
127
  requirement: !ruby/object:Gem::Requirement
72
128
  requirements:
73
129
  - - ~>
74
130
  - !ruby/object:Gem::Version
75
- version: '3.2'
131
+ version: 0.3.29
76
132
  type: :runtime
77
133
  prerelease: false
78
134
  version_requirements: !ruby/object:Gem::Requirement
79
135
  requirements:
80
136
  - - ~>
81
137
  - !ruby/object:Gem::Version
82
- version: '3.2'
138
+ version: 0.3.29
83
139
  - !ruby/object:Gem::Dependency
84
140
  name: nokogiri
85
141
  requirement: !ruby/object:Gem::Requirement
@@ -111,18 +167,35 @@ dependencies:
111
167
  description: Helpers for CME Group and Interactive Brokers
112
168
  email:
113
169
  - zack@mytradewizard.com
114
- executables: []
170
+ executables:
171
+ - mtw
115
172
  extensions: []
116
173
  extra_rdoc_files: []
117
174
  files:
118
175
  - .gitignore
176
+ - .rspec
177
+ - .rvmrc
119
178
  - Gemfile
120
- - LICENSE.txt
179
+ - LICENSE
121
180
  - README.md
122
181
  - Rakefile
182
+ - bin/mtw
183
+ - config/interactive_brokers.rb
184
+ - features/cme.feature
185
+ - features/generator.feature
186
+ - features/interactive_brokers.feature
187
+ - features/support/setup.rb
123
188
  - lib/mytradewizard.rb
189
+ - lib/mytradewizard/cli.rb
190
+ - lib/mytradewizard/cme.rb
191
+ - lib/mytradewizard/generators/config/interactive_brokers.rb
192
+ - lib/mytradewizard/generators/interactive_brokers.rb
193
+ - lib/mytradewizard/interactive_brokers.rb
124
194
  - lib/mytradewizard/version.rb
125
195
  - mytradewizard.gemspec
196
+ - spec/cme_spec.rb
197
+ - spec/interactive_brokers_spec.rb
198
+ - spec/spec_helper.rb
126
199
  homepage: ''
127
200
  licenses: []
128
201
  metadata: {}
@@ -146,4 +219,11 @@ rubygems_version: 2.0.6
146
219
  signing_key:
147
220
  specification_version: 4
148
221
  summary: My Trade Wizard
149
- test_files: []
222
+ test_files:
223
+ - features/cme.feature
224
+ - features/generator.feature
225
+ - features/interactive_brokers.feature
226
+ - features/support/setup.rb
227
+ - spec/cme_spec.rb
228
+ - spec/interactive_brokers_spec.rb
229
+ - spec/spec_helper.rb
@@ -1,22 +0,0 @@
1
- Copyright (c) 2013 gatherandgift
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.