yahoo_finanza 0.0.2 → 0.1.0

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: 53662eaa13d17b29465f7e14d35753f488b7c0cf
4
- data.tar.gz: 38068520259b9a02024ebbbd849d5dd64cdd36b0
3
+ metadata.gz: d67caf5c36584b3c658875b6bb856f9f7d1c4490
4
+ data.tar.gz: 10d3a88e837e36ccf45d01692a676a3e81b49e98
5
5
  SHA512:
6
- metadata.gz: 9495443ee8c096b76b00191762d24a9b0338941207473b36d8613e230e2323ac9dd950a2462a19897e4b4be6cef0bea507d54e53d2b78d7582cad12b5501d764
7
- data.tar.gz: 840aa7165bcb0484017d52240624720afde836abc5f42398179dd6a1f26e4e306f3c8d2639790bd8983dafadfbb69c94feff56021298ae62a8497286b1e414c9
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
@@ -1,4 +1,4 @@
1
1
  # Yahoo Finanza Version
2
2
  module YahooFinanza
3
- VERSION = '0.0.2'
3
+ VERSION = '0.1.0'
4
4
  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.2
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-07 00:00:00.000000000 Z
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