stocktracker 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="DependencyValidationManager">
4
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
5
+ </component>
6
+ <component name="ProjectResources">
7
+ <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
8
+ </component>
9
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-1.9.2-head [cb]" project-jdk-type="RUBY_SDK" />
10
+ </project>
11
+
data/.idea/modules.xml ADDED
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/stocktracker.iml" filepath="$PROJECT_DIR$/.idea/stocktracker.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ </component>
8
+ </module>
9
+
data/.idea/vcs.xml ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
7
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in stocktracker.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,48 @@
1
+ require "stocktracker/version"
2
+ require "yahoofinance"
3
+ require "stocktracker/yahoofinance"
4
+
5
+ module StockTracker
6
+ class CurrentQuote
7
+
8
+
9
+ attr_accessor :symbol, :results
10
+ def initialize(symbol)
11
+ self.symbol = symbol
12
+ self.results = yahoo_quote
13
+ end
14
+
15
+ private
16
+
17
+ def yahoo_quote
18
+ YahooFinance::get_quotes(YahooFinance::StandardQuote, symbol)[symbol].values
19
+ end
20
+ end
21
+
22
+ class HistoricalQuote
23
+ HISTORIC_ROWS = ["Date","Open","High","Low","Close","Volume","Adjusted Close"]
24
+
25
+ attr_accessor :symbol, :start_date, :end_date, :results
26
+ def initialize(symbol, start_date, end_date)
27
+ self.symbol = symbol
28
+ self.start_date = start_date
29
+ self.end_date = end_date
30
+ self.results = yahoo_historical_quote
31
+ end
32
+
33
+ private
34
+
35
+ def yahoo_historical_quote
36
+ map_rows(YahooFinance::get_historical_quotes(symbol, start_date, end_date))
37
+ end
38
+
39
+ def map_rows(results)
40
+ map = {}
41
+ results[0].each_with_index do |r, i|
42
+ map[HISTORIC_ROWS[i]] = r.to_f
43
+ end
44
+ map
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ module Stocktracker
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,11 @@
1
+ module YahooFinance
2
+ class StandardQuote
3
+ def values
4
+ ret = {}
5
+ @formathash.each_value do |val|
6
+ ret[val[0]] = send( val[0] ) unless send( val[0] ) == nil
7
+ end
8
+ ret
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ require 'rspec'
2
+ require 'stocktracker'
3
+
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe StockTracker do
4
+ context :quote do
5
+ context :current do
6
+ it "will return a current quote for Google" do
7
+ q = StockTracker::Quote.new("GOOG")
8
+ q.results.should be
9
+ q.results["symbol"].should == "GOOG"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "stocktracker/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "stocktracker"
7
+ s.version = Stocktracker::VERSION
8
+ s.authors = ["Aaron Worsham"]
9
+ s.email = ["aaronworsham@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Returns Yahoo Finance Quotes for stock symbols}
12
+ s.description = %q{Returns Yahoo Finance Quotes for stock symbols}
13
+
14
+ s.rubyforge_project = "stocktracker"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency 'rake'
23
+ s.add_development_dependency 'rspec'
24
+ s.add_runtime_dependency "yahoofinance"
25
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stocktracker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Aaron Worsham
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &2162998340 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2162998340
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &2152229780 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2152229780
36
+ - !ruby/object:Gem::Dependency
37
+ name: yahoofinance
38
+ requirement: &2152229360 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2152229360
47
+ description: Returns Yahoo Finance Quotes for stock symbols
48
+ email:
49
+ - aaronworsham@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - .idea/encodings.xml
56
+ - .idea/misc.xml
57
+ - .idea/modules.xml
58
+ - .idea/stocktracker.iml
59
+ - .idea/vcs.xml
60
+ - Gemfile
61
+ - Rakefile
62
+ - lib/stocktracker.rb
63
+ - lib/stocktracker/version.rb
64
+ - lib/stocktracker/yahoofinance.rb
65
+ - spec/spec_helper.rb
66
+ - spec/stocktracker_spec.rb
67
+ - stocktracker.gemspec
68
+ homepage: ''
69
+ licenses: []
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ requirements: []
87
+ rubyforge_project: stocktracker
88
+ rubygems_version: 1.8.10
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Returns Yahoo Finance Quotes for stock symbols
92
+ test_files:
93
+ - spec/spec_helper.rb
94
+ - spec/stocktracker_spec.rb