yfinance 1.0.2 → 1.0.3
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 +4 -4
- data/Rakefile +13 -6
- data/lib/yfinance.rb +3 -3
- data/test/test_helper.rb +4 -0
- data/test/yfinance_test.rb +22 -0
- data/yfinance.gemspec +4 -12
- metadata +20 -94
- data/Guardfile +0 -11
- data/spec/spec_helper.rb +0 -2
- data/spec/yfinance_spec.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98f8be13814463fc01eae9f18f585ab71febae8e
|
4
|
+
data.tar.gz: 95aa6ed0c2d29dc538cd4addb4a4b428e70c4301
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8388c6431bebbb5192d4cecfe0f279d7129d14027678ed61b6cfd25ca622f28f900ebdc591c53ae644d433fc3dfd493ecbe5df2976680d573ae0d58a9f44fdf
|
7
|
+
data.tar.gz: e42b7224a6e838df45632c841f7eb628ceab86c3ad425749ff1f03c47ed88b66438211d1b3f93552a936a0d59daef29ae13582960931576858514c23ac5126de
|
data/Rakefile
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
require
|
2
|
+
require "rake/testtask"
|
3
|
+
|
4
|
+
Rake::TestTask.new do |t|
|
5
|
+
t.libs << 'test'
|
6
|
+
t.pattern = FileList["test/**/*_test.rb"]
|
7
|
+
end
|
8
|
+
|
9
|
+
task :default => :test
|
3
10
|
|
4
11
|
# Default directory to look in is `/specs`
|
5
12
|
# Run with `rake spec`
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
task :default => :spec
|
13
|
+
# RSpec::Core::RakeTask.new(:spec) do |task|
|
14
|
+
# task.rspec_opts = ['--color', '--format', 'nested']
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# task :default => :spec
|
11
18
|
|
data/lib/yfinance.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'csv'
|
2
|
+
require 'URI'
|
2
3
|
require 'typhoeus'
|
3
4
|
require 'JSON'
|
4
5
|
require 'ostruct'
|
@@ -33,7 +34,7 @@ class Yfinance
|
|
33
34
|
:eps_estimate_current_year => "e7",
|
34
35
|
:eps_estimate_next_year => "e8",
|
35
36
|
:eps_estimate_next_quarter => "e9",
|
36
|
-
|
37
|
+
#:float_shares => "f6", # return value isnt' parsed correctly by CSV.parse
|
37
38
|
:low => "g",
|
38
39
|
:high => "h",
|
39
40
|
:low_52_weeks => "j",
|
@@ -87,7 +88,7 @@ class Yfinance
|
|
87
88
|
:shares_owned => "s1",
|
88
89
|
:short_ratio => "s7",
|
89
90
|
:last_trade_time => "t1",
|
90
|
-
#:trade_links => "t6", # doesn't work anymore
|
91
|
+
#:trade_links => "t6", # doesn't work anymore - asks for brokerage and is not parse correctly
|
91
92
|
:ticker_trend => "t7",
|
92
93
|
:one_year_target_price => "t8",
|
93
94
|
:volume => "v",
|
@@ -98,7 +99,6 @@ class Yfinance
|
|
98
99
|
:day_value_change_realtime => "w4",
|
99
100
|
:stock_exchange => "x",
|
100
101
|
:dividend_yield => "y"
|
101
|
-
#:adjusted_close => nil
|
102
102
|
}
|
103
103
|
|
104
104
|
HISTORICAL_MODES = {
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper.rb'
|
2
|
+
|
3
|
+
class YfinanceTest < Minitest::Test
|
4
|
+
def test_it_receives_quotes_for_valid_symbols
|
5
|
+
yf = Yfinance.new
|
6
|
+
res = yf.quotes(["AAPL", "TWTR"])
|
7
|
+
refute_empty res
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_it_work_for_an_invalid_symbol
|
11
|
+
yf = Yfinance.new
|
12
|
+
res = yf.quotes(["TWTR", "MADASDFASD", "AAPL"])
|
13
|
+
assert_equal res.length, 3
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_it_works_requesting_all_data_for_valid_symbols
|
17
|
+
yf = Yfinance.new
|
18
|
+
res = yf.quotes_all_info(["AAPL", "TWTR", "TEP.L"])
|
19
|
+
assert_equal res.length, 2
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/yfinance.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'yfinance'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "yfinance"
|
8
|
-
spec.version = "1.0.
|
8
|
+
spec.version = "1.0.3"
|
9
9
|
spec.authors = ["Alexander Potrykus"]
|
10
10
|
spec.email = ["alexander@risklog.io"]
|
11
11
|
spec.summary = %q{Fetches Yahoo! Finance data using parallel HTTP requests.}
|
@@ -14,19 +14,11 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
|
-
spec.
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = ["lib"]
|
17
|
+
spec.require_paths = "lib"
|
20
18
|
|
21
19
|
spec.add_development_dependency "bundler", "~> 1.7"
|
22
20
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "rspec-nc"
|
25
|
-
spec.add_development_dependency "guard"
|
26
|
-
spec.add_development_dependency "guard-rspec"
|
27
|
-
spec.add_development_dependency "pry"
|
28
|
-
spec.add_development_dependency "pry-remote"
|
29
|
-
spec.add_development_dependency "pry-nav"
|
30
|
-
|
21
|
+
spec.add_development_dependency "minitest", "~> 5.4"
|
31
22
|
spec.add_dependency "typhoeus", '~> 0.6.9'
|
23
|
+
spec.add_dependency "ffi", '~> 1.9'
|
32
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yfinance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Potrykus
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,117 +39,47 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec-nc
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: guard
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: guard-rspec
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: pry
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: pry-remote
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
45
|
+
- - "~>"
|
116
46
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
47
|
+
version: '5.4'
|
118
48
|
type: :development
|
119
49
|
prerelease: false
|
120
50
|
version_requirements: !ruby/object:Gem::Requirement
|
121
51
|
requirements:
|
122
|
-
- - "
|
52
|
+
- - "~>"
|
123
53
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
54
|
+
version: '5.4'
|
125
55
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
56
|
+
name: typhoeus
|
127
57
|
requirement: !ruby/object:Gem::Requirement
|
128
58
|
requirements:
|
129
|
-
- - "
|
59
|
+
- - "~>"
|
130
60
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
132
|
-
type: :
|
61
|
+
version: 0.6.9
|
62
|
+
type: :runtime
|
133
63
|
prerelease: false
|
134
64
|
version_requirements: !ruby/object:Gem::Requirement
|
135
65
|
requirements:
|
136
|
-
- - "
|
66
|
+
- - "~>"
|
137
67
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
68
|
+
version: 0.6.9
|
139
69
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
70
|
+
name: ffi
|
141
71
|
requirement: !ruby/object:Gem::Requirement
|
142
72
|
requirements:
|
143
73
|
- - "~>"
|
144
74
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
75
|
+
version: '1.9'
|
146
76
|
type: :runtime
|
147
77
|
prerelease: false
|
148
78
|
version_requirements: !ruby/object:Gem::Requirement
|
149
79
|
requirements:
|
150
80
|
- - "~>"
|
151
81
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
82
|
+
version: '1.9'
|
153
83
|
description: 'Uses Typhoeus to make HTTP requests to the Yahoo! Finance API in parallel. '
|
154
84
|
email:
|
155
85
|
- alexander@risklog.io
|
@@ -159,13 +89,12 @@ extra_rdoc_files: []
|
|
159
89
|
files:
|
160
90
|
- ".gitignore"
|
161
91
|
- Gemfile
|
162
|
-
- Guardfile
|
163
92
|
- LICENSE.txt
|
164
93
|
- README.md
|
165
94
|
- Rakefile
|
166
95
|
- lib/yfinance.rb
|
167
|
-
-
|
168
|
-
-
|
96
|
+
- test/test_helper.rb
|
97
|
+
- test/yfinance_test.rb
|
169
98
|
- yfinance.gemspec
|
170
99
|
homepage: ''
|
171
100
|
licenses:
|
@@ -173,8 +102,7 @@ licenses:
|
|
173
102
|
metadata: {}
|
174
103
|
post_install_message:
|
175
104
|
rdoc_options: []
|
176
|
-
require_paths:
|
177
|
-
- lib
|
105
|
+
require_paths: lib
|
178
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
179
107
|
requirements:
|
180
108
|
- - ">="
|
@@ -191,6 +119,4 @@ rubygems_version: 2.2.2
|
|
191
119
|
signing_key:
|
192
120
|
specification_version: 4
|
193
121
|
summary: Fetches Yahoo! Finance data using parallel HTTP requests.
|
194
|
-
test_files:
|
195
|
-
- spec/spec_helper.rb
|
196
|
-
- spec/yfinance_spec.rb
|
122
|
+
test_files: []
|
data/Guardfile
DELETED
data/spec/spec_helper.rb
DELETED
data/spec/yfinance_spec.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Yfinance do
|
4
|
-
|
5
|
-
it 'downloads historical data' do
|
6
|
-
symbols = CSV.read('NASDAQ.csv').flatten[0,2]
|
7
|
-
result = Proc.new { |response| expect(response).not_to be nil}
|
8
|
-
yf = Yfinance.new
|
9
|
-
yf.add_historical_data_query(symbols, '1971-12-30', '2014-09-17', {period: :weekly}, &result)
|
10
|
-
yf.run
|
11
|
-
end
|
12
|
-
|
13
|
-
it "fetches matching symbols" do
|
14
|
-
query = "yahoo"
|
15
|
-
yf = Yfinance.new
|
16
|
-
yf.read_symbols(query) do |res|
|
17
|
-
expect(res).not_to be nil
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
it "retrieves quote data" do
|
22
|
-
yf = Yfinance.new
|
23
|
-
res = yf.quotes(["MSFT", "GOOG"])
|
24
|
-
expect(res[0].symbol).to eql('MSFT')
|
25
|
-
expect(res[1].symbol).to eql('GOOG')
|
26
|
-
end
|
27
|
-
|
28
|
-
it "retrieves quote data containing all available columns" do
|
29
|
-
yf = Yfinance.new
|
30
|
-
res = yf.quotes_all_info(["MSFT", "GOOG"])
|
31
|
-
expect(res[0].dividend_yield).not_to be_nil
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|