yfinance 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 294f93f5c2ae968d20d4ec3c046c01908f694f03
4
- data.tar.gz: ecce478844f2054878932c43903c9c2fcaf10c87
3
+ metadata.gz: 98f8be13814463fc01eae9f18f585ab71febae8e
4
+ data.tar.gz: 95aa6ed0c2d29dc538cd4addb4a4b428e70c4301
5
5
  SHA512:
6
- metadata.gz: ef0648021e2db7bf7e69d8f95059d3f067939fb9dd4953547e5e33a62119c50872ddd808f1d77582a268952483f6f49e5ba9bb59c7990f5488bff20d3e4453dc
7
- data.tar.gz: fc54e3ac847740c658496e13b17e0bde18fad223c39fd2c394f66a432077934dd33d25982e2015d39510f7e5ab70d78043ec9726bfffbeea09ea936be4f3f1cb
6
+ metadata.gz: c8388c6431bebbb5192d4cecfe0f279d7129d14027678ed61b6cfd25ca622f28f900ebdc591c53ae644d433fc3dfd493ecbe5df2976680d573ae0d58a9f44fdf
7
+ data.tar.gz: e42b7224a6e838df45632c841f7eb628ceab86c3ad425749ff1f03c47ed88b66438211d1b3f93552a936a0d59daef29ae13582960931576858514c23ac5126de
data/Rakefile CHANGED
@@ -1,11 +1,18 @@
1
1
  require "bundler/gem_tasks"
2
- require 'rspec/core/rake_task'
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
- task.rspec_opts = ['--color', '--format', 'nested']
8
- end
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
- # :float_shares => "f6",
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 = {
@@ -0,0 +1,4 @@
1
+ require 'yfinance'
2
+ require 'minitest/autorun'
3
+ require 'minitest/unit'
4
+ require 'minitest/pride'
@@ -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.2"
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.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
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 "rspec"
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.2
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-24 00:00:00.000000000 Z
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: rspec
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: '0'
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: '0'
54
+ version: '5.4'
125
55
  - !ruby/object:Gem::Dependency
126
- name: pry-nav
56
+ name: typhoeus
127
57
  requirement: !ruby/object:Gem::Requirement
128
58
  requirements:
129
- - - ">="
59
+ - - "~>"
130
60
  - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
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: '0'
68
+ version: 0.6.9
139
69
  - !ruby/object:Gem::Dependency
140
- name: typhoeus
70
+ name: ffi
141
71
  requirement: !ruby/object:Gem::Requirement
142
72
  requirements:
143
73
  - - "~>"
144
74
  - !ruby/object:Gem::Version
145
- version: 0.6.9
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: 0.6.9
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
- - spec/spec_helper.rb
168
- - spec/yfinance_spec.rb
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
@@ -1,11 +0,0 @@
1
- guard 'rspec', cmd: "bundle exec rspec" do
2
- # watch /lib/ files
3
- watch(%r{^lib/(.+).rb$}) do |m|
4
- "spec/#{m[1]}_spec.rb"
5
- end
6
-
7
- # watch /spec/ files
8
- watch(%r{^spec/(.+).rb$}) do |m|
9
- "spec/#{m[1]}.rb"
10
- end
11
- end
data/spec/spec_helper.rb DELETED
@@ -1,2 +0,0 @@
1
- require 'pry'
2
- require 'Yfinance'
@@ -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