ticker_fetcher 0.1.1 → 0.2.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.
- data/.rvmrc +1 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +39 -0
- data/Rakefile +2 -45
- data/lib/ticker_fetcher.rb +12 -7
- data/test/nyse_test_data.csv +4 -4
- data/test/test_ticker_fetcher.rb +3 -2
- data/ticker_fetcher.gemspec +7 -51
- metadata +38 -71
- data/VERSION +0 -1
- data/ticker_fetcher-0.1.0.gem +0 -0
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.2@ticker_fetcher
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
ticker_fetcher (0.1.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
ZenTest (4.6.0)
|
10
|
+
archive-tar-minitar (0.5.2)
|
11
|
+
autotest (4.4.6)
|
12
|
+
ZenTest (>= 4.4.1)
|
13
|
+
columnize (0.3.4)
|
14
|
+
flexmock (0.9.0)
|
15
|
+
linecache19 (0.5.12)
|
16
|
+
ruby_core_source (>= 0.1.4)
|
17
|
+
notifier (0.1.3)
|
18
|
+
ruby-debug-base19 (0.11.25)
|
19
|
+
columnize (>= 0.3.1)
|
20
|
+
linecache19 (>= 0.5.11)
|
21
|
+
ruby_core_source (>= 0.1.4)
|
22
|
+
ruby-debug19 (0.11.6)
|
23
|
+
columnize (>= 0.3.1)
|
24
|
+
linecache19 (>= 0.5.11)
|
25
|
+
ruby-debug-base19 (>= 0.11.19)
|
26
|
+
ruby_core_source (0.1.5)
|
27
|
+
archive-tar-minitar (>= 0.5.2)
|
28
|
+
test_notifier (0.3.6)
|
29
|
+
notifier
|
30
|
+
|
31
|
+
PLATFORMS
|
32
|
+
ruby
|
33
|
+
|
34
|
+
DEPENDENCIES
|
35
|
+
autotest
|
36
|
+
flexmock (>= 0.8.2)
|
37
|
+
ruby-debug19
|
38
|
+
test_notifier
|
39
|
+
ticker_fetcher!
|
data/Rakefile
CHANGED
@@ -1,54 +1,11 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "ticker_fetcher"
|
8
|
-
gem.summary = %Q{Fetches all tickers for NYSE, NASDAQ, and AMEX exchanges.}
|
9
|
-
gem.description = %Q{Retrieves tickers, and names for all securities listed on the 3 major US exchanges (NYSE, NASDAQ, AMEX).}
|
10
|
-
gem.email = "mattw922@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/whitethunder/ticker_fetcher"
|
12
|
-
gem.authors = ["Matt White"]
|
13
|
-
gem.add_development_dependency "fastercsv", ">= 1.5.0"
|
14
|
-
gem.add_development_dependency "flexmock", ">= 0.8.2"
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
20
|
-
end
|
21
|
-
|
22
2
|
require 'rake/testtask'
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
|
23
5
|
Rake::TestTask.new(:test) do |test|
|
24
6
|
test.libs << 'lib' << 'test'
|
25
7
|
test.pattern = 'test/**/test_*.rb'
|
26
8
|
test.verbose = true
|
27
9
|
end
|
28
10
|
|
29
|
-
begin
|
30
|
-
require 'rcov/rcovtask'
|
31
|
-
Rcov::RcovTask.new do |test|
|
32
|
-
test.libs << 'test'
|
33
|
-
test.pattern = 'test/**/test_*.rb'
|
34
|
-
test.verbose = true
|
35
|
-
end
|
36
|
-
rescue LoadError
|
37
|
-
task :rcov do
|
38
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
task :test => :check_dependencies
|
43
|
-
|
44
11
|
task :default => :test
|
45
|
-
|
46
|
-
require 'rake/rdoctask'
|
47
|
-
Rake::RDocTask.new do |rdoc|
|
48
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
49
|
-
|
50
|
-
rdoc.rdoc_dir = 'rdoc'
|
51
|
-
rdoc.title = "ticker_fetcher #{version}"
|
52
|
-
rdoc.rdoc_files.include('README*')
|
53
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
-
end
|
data/lib/ticker_fetcher.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'open-uri'
|
3
|
-
require '
|
3
|
+
require 'csv'
|
4
4
|
|
5
5
|
class TickerFetcher
|
6
6
|
Symbol = 0
|
@@ -9,7 +9,7 @@ class TickerFetcher
|
|
9
9
|
MarketCap = 3
|
10
10
|
Sector = 5
|
11
11
|
Industry = 6
|
12
|
-
|
12
|
+
attr_reader :exchanges
|
13
13
|
|
14
14
|
# Passing 1 or more exchange names will retrieve only those exchanges. Default
|
15
15
|
# is to retrieve all.
|
@@ -22,11 +22,12 @@ class TickerFetcher
|
|
22
22
|
}
|
23
23
|
end
|
24
24
|
|
25
|
-
def retrieve(exchange)
|
26
|
-
|
27
|
-
@exchange_urls.
|
25
|
+
def retrieve(exchange=:all)
|
26
|
+
if exchange == :all
|
27
|
+
@exchange_urls.each { |exchange, url| @exchanges[exchange] = parse_exchange(exchange, url) }
|
28
|
+
else
|
29
|
+
@exchanges[exchange] = parse_exchange(exchange, @exchange_urls[exchange])
|
28
30
|
end
|
29
|
-
@exchange_urls.each { |exchange, url| @exchanges[exchange] = parse_exchange(exchange, url) }
|
30
31
|
end
|
31
32
|
|
32
33
|
def parse_exchange(exchange, url)
|
@@ -34,11 +35,15 @@ class TickerFetcher
|
|
34
35
|
parse_csv(data)
|
35
36
|
end
|
36
37
|
|
38
|
+
def [](exchange)
|
39
|
+
exchanges[exchange]
|
40
|
+
end
|
41
|
+
|
37
42
|
private
|
38
43
|
|
39
44
|
def parse_csv(data)
|
40
45
|
tickers = []
|
41
|
-
|
46
|
+
CSV.parse(data) { |row|
|
42
47
|
name = row[Name]
|
43
48
|
ticker = row[Symbol].strip.gsub('"', '')
|
44
49
|
unless(ticker.nil? || ticker.empty? || ticker == 'Symbol')
|
data/test/nyse_test_data.csv
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"Symbol","Name","LastSale","MarketCap","IPOyear","Sector","Industry","Summary Quote"
|
2
|
-
"SC","StupidCompany, Inc.",2.71,72858350,
|
2
|
+
"SC","StupidCompany, Inc.",2.71,72858350,1999,"Consumer Services","Other Specialty Stores","http://quotes.nasdaq.com/asp/SummaryQuote.asp?symbol=SC&selected=SC"
|
3
3
|
"AC^B","AwesomeCompany, Inc.",100,26656000,"n/a","n/a","n/a","n/a"
|
4
|
-
"C
|
5
|
-
"ZIGO","Zygo Corporation",5,17411000,
|
6
|
-
"ZGEN","ZymoGenetics, Inc.",25,85473000,
|
4
|
+
"C.A","Company, Inc.",0.15,26656000,2001,"Health Care","Major Banks","http://quotes.nasdaq.com/asp/SummaryQuote.asp?symbol=C-A&selected=C-A"
|
5
|
+
"ZIGO","Zygo Corporation",5,17411000,2010,"Consumer Durables","Specialty Chemicals","http://quotes.nasdaq.com/asp/SummaryQuote.asp?symbol=ZIGO&selected=ZIGO"
|
6
|
+
"ZGEN","ZymoGenetics, Inc.",25,85473000,2015,"Technology","Semiconductors","http://quotes.nasdaq.com/asp/SummaryQuote.asp?symbol=ZGEN&selected=ZGEN"
|
data/test/test_ticker_fetcher.rb
CHANGED
@@ -19,11 +19,12 @@ class TestTickerFetcher < Test::Unit::TestCase
|
|
19
19
|
assert_nil(@t_mock.exchanges['AMEX'])
|
20
20
|
assert_equal('SC', @t_mock.exchanges['NYSE'][0][0])
|
21
21
|
assert_equal('AC-B', @t_mock.exchanges['NYSE'][1][0])
|
22
|
-
assert_equal('C
|
22
|
+
assert_equal('C.A', @t_mock.exchanges['NYSE'][2][0])
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_retrieve_with_two_exchanges_returns_a_ticker_fetcher_with_the_correct_data
|
26
|
-
@t_mock.retrieve('NYSE'
|
26
|
+
@t_mock.retrieve('NYSE')
|
27
|
+
@t_mock.retrieve('NASD')
|
27
28
|
assert_not_nil(@t_mock.exchanges['NYSE'])
|
28
29
|
assert_not_nil(@t_mock.exchanges['NASD'])
|
29
30
|
assert_nil(@t_mock.exchanges['AMEX'])
|
data/ticker_fetcher.gemspec
CHANGED
@@ -1,61 +1,17 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
5
2
|
|
6
3
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
4
|
+
s.name = "ticker_fetcher"
|
5
|
+
s.version = "0.2.0"
|
11
6
|
s.authors = ["Matt White"]
|
12
|
-
s.date = %q{2010-05-25}
|
13
|
-
s.description = %q{Retrieves tickers, and names for all securities listed on the 3 major US exchanges (NYSE, NASDAQ, AMEX).}
|
14
7
|
s.email = %q{mattw922@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".gitignore",
|
22
|
-
"LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"lib/ticker_fetcher.rb",
|
27
|
-
"test/amex_test_data.csv",
|
28
|
-
"test/helper.rb",
|
29
|
-
"test/nasd_test_data.csv",
|
30
|
-
"test/nyse_test_data.csv",
|
31
|
-
"test/test_ticker_fetcher.rb",
|
32
|
-
"ticker_fetcher-0.1.0.gem",
|
33
|
-
"ticker_fetcher.gemspec"
|
34
|
-
]
|
35
8
|
s.homepage = %q{http://github.com/whitethunder/ticker_fetcher}
|
36
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
37
|
-
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.3.6}
|
39
9
|
s.summary = %q{Fetches all tickers for NYSE, NASDAQ, and AMEX exchanges.}
|
40
|
-
s.
|
41
|
-
|
42
|
-
|
43
|
-
]
|
44
|
-
|
45
|
-
if s.respond_to? :specification_version then
|
46
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
47
|
-
s.specification_version = 3
|
10
|
+
s.description = %q{Retrieves tickers, and names for all securities listed on the 3 major US exchanges (NYSE, NASDAQ, AMEX).}
|
11
|
+
s.files = `git ls-files`.split("\n")
|
12
|
+
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
13
|
+
s.require_paths = ["lib"]
|
48
14
|
|
49
|
-
|
50
|
-
s.add_development_dependency(%q<fastercsv>, [">= 1.5.0"])
|
51
|
-
s.add_development_dependency(%q<flexmock>, [">= 0.8.2"])
|
52
|
-
else
|
53
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
|
54
|
-
s.add_dependency(%q<flexmock>, [">= 0.8.2"])
|
55
|
-
end
|
56
|
-
else
|
57
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
|
58
|
-
s.add_dependency(%q<flexmock>, [">= 0.8.2"])
|
59
|
-
end
|
15
|
+
s.add_development_dependency(%q<flexmock>, [">= 0.8.2"])
|
60
16
|
end
|
61
17
|
|
metadata
CHANGED
@@ -1,104 +1,71 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ticker_fetcher
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 1
|
9
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Matt White
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
name: fastercsv
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - ">="
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 5
|
30
|
-
- 0
|
31
|
-
version: 1.5.0
|
32
|
-
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-05 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
35
15
|
name: flexmock
|
36
|
-
|
37
|
-
|
38
|
-
requirements:
|
39
|
-
- -
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
- 8
|
44
|
-
- 2
|
16
|
+
requirement: &81809110 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
45
21
|
version: 0.8.2
|
46
22
|
type: :development
|
47
|
-
|
48
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *81809110
|
25
|
+
description: Retrieves tickers, and names for all securities listed on the 3 major
|
26
|
+
US exchanges (NYSE, NASDAQ, AMEX).
|
49
27
|
email: mattw922@gmail.com
|
50
28
|
executables: []
|
51
|
-
|
52
29
|
extensions: []
|
53
|
-
|
54
|
-
|
55
|
-
- LICENSE
|
56
|
-
- README.rdoc
|
57
|
-
files:
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
58
32
|
- .document
|
59
33
|
- .gitignore
|
34
|
+
- .rvmrc
|
35
|
+
- Gemfile
|
36
|
+
- Gemfile.lock
|
60
37
|
- LICENSE
|
61
38
|
- README.rdoc
|
62
39
|
- Rakefile
|
63
|
-
- VERSION
|
64
40
|
- lib/ticker_fetcher.rb
|
65
41
|
- test/amex_test_data.csv
|
66
42
|
- test/helper.rb
|
67
43
|
- test/nasd_test_data.csv
|
68
44
|
- test/nyse_test_data.csv
|
69
45
|
- test/test_ticker_fetcher.rb
|
70
|
-
- ticker_fetcher-0.1.0.gem
|
71
46
|
- ticker_fetcher.gemspec
|
72
|
-
has_rdoc: true
|
73
47
|
homepage: http://github.com/whitethunder/ticker_fetcher
|
74
48
|
licenses: []
|
75
|
-
|
76
49
|
post_install_message:
|
77
|
-
rdoc_options:
|
78
|
-
|
79
|
-
require_paths:
|
50
|
+
rdoc_options: []
|
51
|
+
require_paths:
|
80
52
|
- lib
|
81
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
requirements:
|
90
|
-
- -
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
- 0
|
94
|
-
version: "0"
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
95
65
|
requirements: []
|
96
|
-
|
97
66
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.
|
67
|
+
rubygems_version: 1.8.6
|
99
68
|
signing_key:
|
100
69
|
specification_version: 3
|
101
70
|
summary: Fetches all tickers for NYSE, NASDAQ, and AMEX exchanges.
|
102
|
-
test_files:
|
103
|
-
- test/test_ticker_fetcher.rb
|
104
|
-
- test/helper.rb
|
71
|
+
test_files: []
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.1
|
data/ticker_fetcher-0.1.0.gem
DELETED
Binary file
|