stockery 0.2.0 → 0.3.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/Gemfile +2 -0
- data/VERSION +1 -1
- data/lib/stockery/quote.rb +29 -3
- data/lib/stockery/runner.rb +18 -8
- data/lib/stockery.rb +2 -0
- data/stockery.gemspec +68 -0
- metadata +24 -12
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/stockery/quote.rb
CHANGED
@@ -10,10 +10,14 @@ module Stockery
|
|
10
10
|
result = case source
|
11
11
|
when Stockery::GOOGLE then
|
12
12
|
fetch_goog(symbol)
|
13
|
+
when Stockery::YAHOO then
|
14
|
+
fetch_yahoo(symbol)
|
13
15
|
else
|
14
16
|
abort "No valid source specified. The following source are available: \"GOOGLE\""
|
15
17
|
end
|
16
|
-
|
18
|
+
|
19
|
+
result[:time_stamp] = Time.now.getutc
|
20
|
+
|
17
21
|
result
|
18
22
|
end
|
19
23
|
|
@@ -48,14 +52,36 @@ module Stockery
|
|
48
52
|
data_stock[:market] = data['e']
|
49
53
|
data_stock[:name] = data['t']
|
50
54
|
data_stock[:price] = data['l']
|
51
|
-
data_stock[:price_currency] = data['l_curr']
|
55
|
+
# data_stock[:price_currency] = data['l_curr']
|
52
56
|
data_stock[:change_points] = data['c']
|
53
57
|
data_stock[:change_procent] = data['cp']
|
54
58
|
|
55
|
-
data_stock[:timestamp] = data['ltt']
|
59
|
+
# data_stock[:timestamp] = data['ltt']
|
56
60
|
end
|
57
61
|
|
58
62
|
data_stock
|
59
63
|
end
|
64
|
+
|
65
|
+
def fetch_yahoo(symbol)
|
66
|
+
resp = Net::HTTP.get_response(URI.parse("http://download.finance.yahoo.com/d/quotes.csv?s=#{symbol}&f=snl1c1p2x&e=.csv"))
|
67
|
+
lines = resp.body.split("\r\n")
|
68
|
+
|
69
|
+
data_stock = {}
|
70
|
+
|
71
|
+
lines.each do |line|
|
72
|
+
data = JSON.parse("[#{line}]")
|
73
|
+
|
74
|
+
data_stock[:market] = data[5]
|
75
|
+
data_stock[:name] = data[0]
|
76
|
+
data_stock[:price] = data[2]
|
77
|
+
# data_stock[:price_currency] = data[0]
|
78
|
+
data_stock[:change_points] = data[3]
|
79
|
+
data_stock[:change_procent] = data[4]
|
80
|
+
|
81
|
+
# data_stock[:timestamp] = data[0]
|
82
|
+
end
|
83
|
+
|
84
|
+
data_stock
|
85
|
+
end
|
60
86
|
end
|
61
87
|
end
|
data/lib/stockery/runner.rb
CHANGED
@@ -9,6 +9,7 @@ module Stockery
|
|
9
9
|
@options = {
|
10
10
|
:source => Stockery::GOOGLE,
|
11
11
|
:quotes => '',
|
12
|
+
:output => 'json',
|
12
13
|
}
|
13
14
|
|
14
15
|
parse!
|
@@ -19,19 +20,27 @@ module Stockery
|
|
19
20
|
abort "Quote symbols missing. Usage `stockery -q \"GOOG, MSFT\""
|
20
21
|
end
|
21
22
|
|
22
|
-
puts "Quotes at #{Time.now}\n"
|
23
|
-
puts ""
|
24
|
-
|
25
23
|
s_q = Stockery::Quote.new
|
26
24
|
s_q.source = @options[:source]
|
27
25
|
|
28
26
|
quotes = @options[:quotes].split(',').collect { |q| q.to_s.strip }
|
29
|
-
|
27
|
+
quotes_res = []
|
28
|
+
|
30
29
|
quotes.each do |quote|
|
31
|
-
|
32
|
-
|
30
|
+
quotes_res << s_q.get_status(quote)
|
31
|
+
end
|
32
|
+
|
33
|
+
case @options[:output]
|
34
|
+
when 'print'
|
35
|
+
puts "Quotes at #{Time.now}\n"
|
36
|
+
puts ""
|
33
37
|
|
34
|
-
|
38
|
+
quotes_res.each do |quote|
|
39
|
+
puts s_q.print(quote)
|
40
|
+
puts "\n"
|
41
|
+
end
|
42
|
+
when 'json'
|
43
|
+
p JSON.generate(quotes_res)
|
35
44
|
end
|
36
45
|
end
|
37
46
|
|
@@ -49,7 +58,8 @@ module Stockery
|
|
49
58
|
opts.separator "Command options:"
|
50
59
|
|
51
60
|
opts.on("-s", "--source HOST", "Stock source (default: #{@options[:source]})") { |source| @options[:source] = source }
|
52
|
-
opts.on("-q", "--quotes '
|
61
|
+
opts.on("-q", "--quotes 'Comma separated'", "Required, no default") { |quotes| @options[:quotes] = quotes }
|
62
|
+
opts.on("-o", "--output 'Output. JSON is default'", "Pass 'print' to print out, 'json' for JSON (default).") { |output| @options[:output] = output }
|
53
63
|
|
54
64
|
opts.separator ""
|
55
65
|
|
data/lib/stockery.rb
CHANGED
data/stockery.gemspec
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "stockery"
|
8
|
+
s.version = "0.3.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Pieter Michels"]
|
12
|
+
s.date = "2011-09-22"
|
13
|
+
s.description = "Fetch stock quotes. Build as a gem and command line tool."
|
14
|
+
s.email = "pieter@noort.be"
|
15
|
+
s.executables = ["stockery"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE.txt",
|
18
|
+
"README.md"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
"Gemfile",
|
22
|
+
"LICENSE.txt",
|
23
|
+
"README.md",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"bin/stockery",
|
27
|
+
"lib/stockery.rb",
|
28
|
+
"lib/stockery/quote.rb",
|
29
|
+
"lib/stockery/runner.rb",
|
30
|
+
"lib/stockery/version.rb",
|
31
|
+
"stockery.gemspec",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_stockery.rb"
|
34
|
+
]
|
35
|
+
s.homepage = "http://github.com/pierot/stockery"
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = "1.8.10"
|
39
|
+
s.summary = "Fetch stock quotes"
|
40
|
+
|
41
|
+
if s.respond_to? :specification_version then
|
42
|
+
s.specification_version = 3
|
43
|
+
|
44
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
46
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
47
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
48
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
49
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
51
|
+
else
|
52
|
+
s.add_dependency(%q<json>, [">= 0"])
|
53
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
54
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
56
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
57
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<json>, [">= 0"])
|
61
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
62
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
64
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
65
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stockery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,9 +11,20 @@ bindir: bin
|
|
11
11
|
cert_chain: []
|
12
12
|
date: 2011-09-22 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: &2156289240 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2156289240
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: shoulda
|
16
|
-
requirement: &
|
27
|
+
requirement: &2156288560 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ! '>='
|
@@ -21,10 +32,10 @@ dependencies:
|
|
21
32
|
version: '0'
|
22
33
|
type: :development
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156288560
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: bundler
|
27
|
-
requirement: &
|
38
|
+
requirement: &2156287780 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ~>
|
@@ -32,10 +43,10 @@ dependencies:
|
|
32
43
|
version: 1.0.0
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156287780
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: jeweler
|
38
|
-
requirement: &
|
49
|
+
requirement: &2156286960 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ~>
|
@@ -43,10 +54,10 @@ dependencies:
|
|
43
54
|
version: 1.6.4
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156286960
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: rcov
|
49
|
-
requirement: &
|
60
|
+
requirement: &2156286260 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ! '>='
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: '0'
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156286260
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: thoughtbot-shoulda
|
60
|
-
requirement: &
|
71
|
+
requirement: &2156285600 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ! '>='
|
@@ -65,7 +76,7 @@ dependencies:
|
|
65
76
|
version: '0'
|
66
77
|
type: :development
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *2156285600
|
69
80
|
description: Fetch stock quotes. Build as a gem and command line tool.
|
70
81
|
email: pieter@noort.be
|
71
82
|
executables:
|
@@ -85,6 +96,7 @@ files:
|
|
85
96
|
- lib/stockery/quote.rb
|
86
97
|
- lib/stockery/runner.rb
|
87
98
|
- lib/stockery/version.rb
|
99
|
+
- stockery.gemspec
|
88
100
|
- test/helper.rb
|
89
101
|
- test/test_stockery.rb
|
90
102
|
homepage: http://github.com/pierot/stockery
|
@@ -102,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
114
|
version: '0'
|
103
115
|
segments:
|
104
116
|
- 0
|
105
|
-
hash:
|
117
|
+
hash: 1533018884125767136
|
106
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
119
|
none: false
|
108
120
|
requirements:
|