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 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