yahoo_finanza 0.0.2 → 0.1.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 +4 -4
- data/lib/yahoo_finanza.rb +10 -1
- data/lib/yahoo_finanza/finance_utils.rb +40 -22
- data/lib/yahoo_finanza/version.rb +1 -1
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d67caf5c36584b3c658875b6bb856f9f7d1c4490
|
4
|
+
data.tar.gz: 10d3a88e837e36ccf45d01692a676a3e81b49e98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 282d517bf9817efa74b1789e0daa10e8e0689517c1f46bab31cade3e348c7331f3765139c84d9049d5e60d2afe994f0460d7303dfc19a5e376a32594ab9805ad
|
7
|
+
data.tar.gz: 36317f838b7d16913d6beff6069dc5ffdfc3690223a16055490d9038a7cc6a6bfc5e96a1b55a6b4a10bb823bdb651c25749788d8121ad87e0ee78ffda504f538
|
data/lib/yahoo_finanza.rb
CHANGED
@@ -4,6 +4,7 @@ require 'yahoo_finanza/yahoo_helpers'
|
|
4
4
|
require 'yql'
|
5
5
|
require 'json'
|
6
6
|
require 'ostruct'
|
7
|
+
require 'mechanize'
|
7
8
|
|
8
9
|
module YahooFinanza
|
9
10
|
# Yahoo Finanza Client
|
@@ -11,7 +12,7 @@ module YahooFinanza
|
|
11
12
|
include YahooFinanza::FinanceUtils
|
12
13
|
include YahooFinanza::YahooHelpers
|
13
14
|
|
14
|
-
attr_reader :yql
|
15
|
+
attr_reader :yql, :mecha_yahoo
|
15
16
|
|
16
17
|
def initialize
|
17
18
|
@yql = Yql::Client.new
|
@@ -46,5 +47,13 @@ module YahooFinanza
|
|
46
47
|
response = @yql.get
|
47
48
|
historical_yahoofy(response.show)
|
48
49
|
end
|
50
|
+
|
51
|
+
def sp_quotes_top(limit)
|
52
|
+
quotes(sp_symbols(limit))
|
53
|
+
end
|
54
|
+
|
55
|
+
def popular_quotes
|
56
|
+
quotes(active_symbols)
|
57
|
+
end
|
49
58
|
end
|
50
59
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
require 'csv'
|
3
3
|
require 'open-uri'
|
4
|
+
require 'rest-client'
|
4
5
|
|
5
6
|
module YahooFinanza
|
6
7
|
# Finance Utils For Yahoo Finanza
|
@@ -21,6 +22,12 @@ module YahooFinanza
|
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
25
|
+
%w(nnm nyse).each do |market_symbol|
|
26
|
+
define_method "active_#{market_symbol}_url".to_sym do
|
27
|
+
"http://online.wsj.com/mdc/public/page/2_3021-activ#{market_symbol}-actives.html"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
24
31
|
def symbols_by_market(market)
|
25
32
|
symbols = []
|
26
33
|
return symbols if market.nil?
|
@@ -35,27 +42,38 @@ module YahooFinanza
|
|
35
42
|
end
|
36
43
|
symbols
|
37
44
|
end
|
45
|
+
|
46
|
+
def sp_symbols(limit)
|
47
|
+
response = JSON.parse(RestClient.get("http://46.101.6.197/standard_poor/#{limit}"))
|
48
|
+
if response['error']
|
49
|
+
Array.new
|
50
|
+
else
|
51
|
+
response['result']
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def all_symbols
|
56
|
+
symbols_by_market('nyse').concat(symbols_by_market('nasdaq'))
|
57
|
+
end
|
58
|
+
|
59
|
+
def active_symbols
|
60
|
+
mecha_yahoo = Mechanize.new
|
61
|
+
symbols = Array.new
|
62
|
+
page1 = mecha_yahoo.get(active_nnm_url)
|
63
|
+
page1.links.each do |link|
|
64
|
+
if link.text.split(" (").count > 1
|
65
|
+
symbols.push(link.text.split(" (")[1].gsub(')', '').strip)
|
66
|
+
end
|
67
|
+
break unless symbols.count < 8
|
68
|
+
end
|
69
|
+
page2 = mecha_yahoo.get(active_nyse_url)
|
70
|
+
page2.links.each do |link|
|
71
|
+
if link.text.split(" (").count > 1
|
72
|
+
symbols.push(link.text.split(" (")[1].gsub(')', '').strip)
|
73
|
+
end
|
74
|
+
break unless symbols.count < 16
|
75
|
+
end
|
76
|
+
symbols
|
77
|
+
end
|
38
78
|
end
|
39
79
|
end
|
40
|
-
|
41
|
-
# Old Code
|
42
|
-
# MARKETS = OpenStruct.new(
|
43
|
-
# us: OpenStruct.new(
|
44
|
-
# nasdaq: OpenStruct.new(
|
45
|
-
# url: 'http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download'),
|
46
|
-
# nyse: OpenStruct.new(
|
47
|
-
# url: 'http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download'),
|
48
|
-
# amex: OpenStruct.new(
|
49
|
-
# url: 'http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download')))
|
50
|
-
|
51
|
-
# def symbols_by_market_old(country, market)
|
52
|
-
# symbols = []
|
53
|
-
# return symbols unless MARKETS[country][market]
|
54
|
-
# market_file = open(MARKETS[country][market].url)
|
55
|
-
|
56
|
-
# CSV.foreach(market_file) do |row|
|
57
|
-
# next if row.first == 'Symbol'
|
58
|
-
# symbols.push(row.first.gsub(' ', ''))
|
59
|
-
# end
|
60
|
-
# symbols
|
61
|
-
# end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yahoo_finanza
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric D. Santos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yql
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mechanize
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rest-client
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: bundler
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|