tradier 0.1.0 → 0.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 346ff807647b7ce6473a532a3b07b2f8cd9a93aa
4
+ data.tar.gz: 9d7965d264e47a271fcc535ae3ab21637a9b2f4d
5
+ SHA512:
6
+ metadata.gz: 97793ad958939977c55af6a86bccd9c4de3234d80c0cfc3d190ca942d43489e9fec0d68a69bcb046406fbe0ac6d3c337bab583bff3cabb39c68f4092ca8e18e9
7
+ data.tar.gz: 70d3317eb678a39ecac677a129a34398969e75789691b9f160f17c33a71df9a2a7f1e48c65a05a861ae452b4e7a84ac5c31ecbc05313a06a5f6e07a1ad488c1b
@@ -2,7 +2,7 @@ require 'tradier/base'
2
2
 
3
3
  module Tradier
4
4
  class Account < Tradier::Base
5
- attr_reader :account_number, :type
5
+ attr_reader :account_number, :type, :classification
6
6
 
7
7
  def margin?
8
8
  type.downcase == 'margin'
@@ -26,5 +26,29 @@ module Tradier
26
26
  def history
27
27
  end
28
28
 
29
+ def individual_account?
30
+ classification.downcase == 'individual'
31
+ end
32
+
33
+ def joint_account?
34
+ classification.downcase == 'joint'
35
+ end
36
+
37
+ def traditional_ira?
38
+ classification.downcase == 'traditional_ira'
39
+ end
40
+
41
+ def roth_ira?
42
+ classification.downcase == 'roth_ira'
43
+ end
44
+
45
+ def rollover_ira?
46
+ classification.downcase == 'rollover_ira'
47
+ end
48
+
49
+ def ira?
50
+ traditional_ira? || roth_ira? || rollover_ira?
51
+ end
52
+
29
53
  end
30
54
  end
@@ -98,6 +98,16 @@ module Tradier
98
98
  object_from_response(Tradier::API::Utils::History, :get, '/markets/history', options).body
99
99
  end
100
100
 
101
+ # @see http://developer.tradier.com.dev/documentation/markets/create-events-session
102
+ # @rate_limited Yes
103
+ # @authentication Requires user context
104
+ # Create a streaming session
105
+ # @return [Tradier::EventSession] An event session.
106
+ # @raise [Tradier::Error::Unauthorized] Error raised when supplied user credentials are not valid.
107
+ def markets_session(options={})
108
+ object_from_response(Tradier::EventSession, :post, '/markets/events/session', options)
109
+ end
110
+
101
111
  private
102
112
 
103
113
  def normalized_symbols(symbols)
@@ -11,6 +11,7 @@ require 'tradier/quote'
11
11
  require 'tradier/timesales'
12
12
  require 'tradier/watchlist'
13
13
  require 'tradier/event'
14
+ require 'tradier/event_session'
14
15
 
15
16
  require 'tradier/api/utils/account'
16
17
  require 'tradier/api/utils/balance'
@@ -0,0 +1,12 @@
1
+ require 'tradier/base'
2
+
3
+ module Tradier
4
+ class EventSession < Tradier::Base
5
+
6
+ attr_reader :sessionid, :url
7
+
8
+ def self.from_response(body={})
9
+ new(body[:stream] || body)
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Tradier
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -6,7 +6,7 @@ module Tradier
6
6
  attr_reader :id, :name
7
7
 
8
8
  def self.from_response(body={})
9
- new(body[:watchlist])
9
+ new(body[:watchlist] || body)
10
10
  end
11
11
 
12
12
  def items
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "stream": {
3
3
  "sessionid": "316908ae-c98d-4cc4-bb3b-32a3dc58aca0",
4
- "url": "https://stream.tradier.com/users/events/316908ae-c98d-4cc4-bb3b-32a3dc58aca0"
4
+ "url": "https://stream.tradier.com/v1/markets/events/316908ae-c98d-4cc4-bb3b-32a3dc58aca0"
5
5
  }
6
6
  }
@@ -73,4 +73,49 @@ describe Tradier::Account do
73
73
  pending
74
74
  end
75
75
  end
76
+
77
+ describe '#individual_account?' do
78
+ subject { described_class.new(:classification => 'individual') }
79
+ it 'returns true when an individual account' do
80
+ expect(subject.individual_account?).to be_true
81
+ end
82
+ end
83
+
84
+ describe '#joint_account?' do
85
+ subject { described_class.new(:classification => 'joint') }
86
+ it 'returns true when an joint account' do
87
+ expect(subject.joint_account?).to be_true
88
+ end
89
+ end
90
+
91
+ describe '#traditional_ira?' do
92
+ subject { described_class.new(:classification => 'traditional_ira') }
93
+ it 'returns true when a traditional_ira account' do
94
+ expect(subject.traditional_ira?).to be_true
95
+ end
96
+ end
97
+
98
+ describe '#rollover_ira?' do
99
+ subject { described_class.new(:classification => 'rollover_ira') }
100
+ it 'returns true when a rollover_ira account' do
101
+ expect(subject.rollover_ira?).to be_true
102
+ end
103
+ end
104
+
105
+ describe '#roth_ira?' do
106
+ subject { described_class.new(:classification => 'roth_ira') }
107
+ it 'returns true when a roth_ira account' do
108
+ expect(subject.roth_ira?).to be_true
109
+ end
110
+ end
111
+
112
+ describe '#ira?' do
113
+ %w(traditional_ira roth_ira rollover_ira).each do |ira_type|
114
+ subject { described_class.new(:classification => ira_type) }
115
+ it "returns true when a #{ira_type} account" do
116
+ expect(subject.ira?).to be_true
117
+ end
118
+ end
119
+ end
120
+
76
121
  end
@@ -216,4 +216,21 @@ describe Tradier::API::Markets do
216
216
  expect(history.first).to be_a Tradier::History
217
217
  end
218
218
  end
219
+
220
+ describe '#markets_session' do
221
+ before do
222
+ stub_post("/v1/markets/events/session").
223
+ to_return(:body => fixture("session.json"), :headers => {:content_type => "application/json; charset=utf-8"})
224
+ end
225
+
226
+ it "requests the correct resource" do
227
+ @client.markets_session
228
+ expect(a_post("/v1/markets/events/session")).to have_been_made
229
+ end
230
+
231
+ it "returns an array of Tradier::EventSession objects" do
232
+ session = @client.markets_session
233
+ expect(session).to be_a Tradier::EventSession
234
+ end
235
+ end
219
236
  end
data/tradier.gemspec CHANGED
@@ -15,8 +15,8 @@ Gem::Specification.new do |gem|
15
15
 
16
16
  gem.license = 'MIT'
17
17
 
18
- gem.add_dependency 'faraday', ['~> 0.8', '< 0.10']
19
- gem.add_dependency 'faraday_middleware', ['~> 0.8', '< 0.10']
18
+ gem.add_dependency 'faraday', '~> 0.8'
19
+ gem.add_dependency 'faraday_middleware'
20
20
  gem.add_dependency 'celluloid'
21
21
  gem.add_development_dependency 'bundler', '~> 1'
22
22
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tradier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Steve Agalloco
@@ -10,72 +9,53 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-11-08 00:00:00.000000000 Z
12
+ date: 2014-01-17 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: faraday
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0.8'
23
- - - <
24
- - !ruby/object:Gem::Version
25
- version: '0.10'
26
21
  type: :runtime
27
22
  prerelease: false
28
23
  version_requirements: !ruby/object:Gem::Requirement
29
- none: false
30
24
  requirements:
31
25
  - - ~>
32
26
  - !ruby/object:Gem::Version
33
27
  version: '0.8'
34
- - - <
35
- - !ruby/object:Gem::Version
36
- version: '0.10'
37
28
  - !ruby/object:Gem::Dependency
38
29
  name: faraday_middleware
39
30
  requirement: !ruby/object:Gem::Requirement
40
- none: false
41
31
  requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- version: '0.8'
45
- - - <
32
+ - - '>='
46
33
  - !ruby/object:Gem::Version
47
- version: '0.10'
34
+ version: '0'
48
35
  type: :runtime
49
36
  prerelease: false
50
37
  version_requirements: !ruby/object:Gem::Requirement
51
- none: false
52
38
  requirements:
53
- - - ~>
39
+ - - '>='
54
40
  - !ruby/object:Gem::Version
55
- version: '0.8'
56
- - - <
57
- - !ruby/object:Gem::Version
58
- version: '0.10'
41
+ version: '0'
59
42
  - !ruby/object:Gem::Dependency
60
43
  name: celluloid
61
44
  requirement: !ruby/object:Gem::Requirement
62
- none: false
63
45
  requirements:
64
- - - ! '>='
46
+ - - '>='
65
47
  - !ruby/object:Gem::Version
66
48
  version: '0'
67
49
  type: :runtime
68
50
  prerelease: false
69
51
  version_requirements: !ruby/object:Gem::Requirement
70
- none: false
71
52
  requirements:
72
- - - ! '>='
53
+ - - '>='
73
54
  - !ruby/object:Gem::Version
74
55
  version: '0'
75
56
  - !ruby/object:Gem::Dependency
76
57
  name: bundler
77
58
  requirement: !ruby/object:Gem::Requirement
78
- none: false
79
59
  requirements:
80
60
  - - ~>
81
61
  - !ruby/object:Gem::Version
@@ -83,7 +63,6 @@ dependencies:
83
63
  type: :development
84
64
  prerelease: false
85
65
  version_requirements: !ruby/object:Gem::Requirement
86
- none: false
87
66
  requirements:
88
67
  - - ~>
89
68
  - !ruby/object:Gem::Version
@@ -147,6 +126,7 @@ files:
147
126
  - lib/tradier/error/unprocessable_entity.rb
148
127
  - lib/tradier/error.rb
149
128
  - lib/tradier/event.rb
129
+ - lib/tradier/event_session.rb
150
130
  - lib/tradier/history.rb
151
131
  - lib/tradier/option_quote.rb
152
132
  - lib/tradier/order.rb
@@ -217,33 +197,26 @@ files:
217
197
  homepage: https://github.com/tradier/tradier.rb
218
198
  licenses:
219
199
  - MIT
200
+ metadata: {}
220
201
  post_install_message:
221
202
  rdoc_options: []
222
203
  require_paths:
223
204
  - lib
224
205
  required_ruby_version: !ruby/object:Gem::Requirement
225
- none: false
226
206
  requirements:
227
- - - ! '>='
207
+ - - '>='
228
208
  - !ruby/object:Gem::Version
229
209
  version: '0'
230
- segments:
231
- - 0
232
- hash: 1473021614660637289
233
210
  required_rubygems_version: !ruby/object:Gem::Requirement
234
- none: false
235
211
  requirements:
236
- - - ! '>='
212
+ - - '>='
237
213
  - !ruby/object:Gem::Version
238
214
  version: '0'
239
- segments:
240
- - 0
241
- hash: 1473021614660637289
242
215
  requirements: []
243
216
  rubyforge_project:
244
- rubygems_version: 1.8.23
217
+ rubygems_version: 2.0.14
245
218
  signing_key:
246
- specification_version: 3
219
+ specification_version: 4
247
220
  summary: Rubygem for interacting with the Tradier API.
248
221
  test_files:
249
222
  - spec/fixtures/account_balances.json