stockery 0.4.1 → 0.4.2

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/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://secure.travis-ci.org/pierot/stockery.png)](http://travis-ci.org/pierot/stockery)
2
+
1
3
  stockery
2
4
  ======
3
5
  Get stock quotes.
@@ -14,6 +16,7 @@ CLI Usage
14
16
  Command options:
15
17
  -s, --source HOST Stock source (default: GOOGLE)
16
18
  -q, --quotes 'comma separated' Required, no default
19
+ -o, --output 'print|json' Either 'json' (default) or 'print'
17
20
 
18
21
  -h, --help
19
22
  -v, --version
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.4.2
@@ -69,8 +69,8 @@ module Stockery
69
69
 
70
70
  opts.separator ""
71
71
 
72
- opts.on_tail("-h", "--help", "Show this message") { puts opts; exit }
73
- opts.on_tail("-v", "--version", "Print version") { puts Stockery::VERSION; exit }
72
+ opts.on_tail("-h", "--help", "Show this message") { puts opts; exit 0 }
73
+ opts.on_tail("-v", "--version", "Print version") { puts Stockery::VERSION; exit 0 }
74
74
  end
75
75
  end
76
76
  end
data/stockery.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "stockery"
8
- s.version = "0.4.1"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Pieter Michels"]
12
- s.date = "2011-09-25"
12
+ s.date = "2011-09-26"
13
13
  s.description = "Fetch stock quotes. Build as a gem and command line tool."
14
14
  s.email = "pieter@noort.be"
15
15
  s.executables = ["stockery"]
data/test/helper.rb CHANGED
@@ -17,12 +17,36 @@ require 'stockery'
17
17
  class Test::Unit::TestCase
18
18
  end
19
19
 
20
- def silence_stream(stream)
21
- old_stream = stream.dup
22
- stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
23
- stream.sync = true
24
-
25
- yield
26
- ensure
27
- stream.reopen(old_stream)
20
+ require 'stringio'
21
+
22
+ def capture_output(&block)
23
+ original_stdout = $stdout
24
+
25
+ $stdout = fake = StringIO.new
26
+ $stdout.flush
27
+
28
+ begin
29
+ yield
30
+ ensure
31
+ $stdout = original_stdout
32
+ $stdout.flush
33
+ end
34
+
35
+ fake.string
36
+ end
37
+
38
+ def capture_error(&block)
39
+ original_stdout = $stderr
40
+
41
+ $stderr = fake = StringIO.new
42
+ $stderr.flush
43
+
44
+ begin
45
+ yield
46
+ ensure
47
+ $stderr = original_stdout
48
+ $stderr.flush
49
+ end
50
+
51
+ fake.string
28
52
  end
data/test/test_runner.rb CHANGED
@@ -15,33 +15,68 @@ class TestStockeryRunner < Test::Unit::TestCase
15
15
  assert_equal runner.options[:output], "print"
16
16
  end
17
17
 
18
- # should "print the result as a json string by default" do
19
- # out = silence_stream(STDOUT) do
20
- # runner = Stockery::Runner.new(%w(-q AAPL))
21
- # runner.run!
22
- # end
23
-
24
- # puts out.to_s
25
- # json = JSON.parse(out.to_s)
26
- # # assert_match out.to_s, "/Quotes at/"
27
- # end
28
-
29
- # should "print the result when passing print output argument" do
30
- # out = silence_stream(STDOUT) do
31
- # runner = Stockery::Runner.new(%w(-q AAPL -o print))
32
- # runner.run!
33
- # end
34
-
35
- # assert_match out.to_s, "/Quotes at/"
36
- # end
37
-
38
- # should "print its version" do
39
- # out = silence_stream(STDOUT) do
40
- # runner = Stockery::Runner.new(%w(-v))
41
- # runner.run!
42
- # end
43
-
44
- # assert_equal out.to_s, Stockery::VERSION
45
- # end
18
+ should "exit when passing invalid option" do
19
+ out = capture_error do
20
+ begin
21
+ Stockery::Runner.new(%w(--bad-option))
22
+ rescue SystemExit => e
23
+ end
24
+ end
25
+
26
+ assert_equal "Invalid option.\n", out.to_s
27
+ end
28
+
29
+ should "exit when passing no symbols" do
30
+ out = capture_error do
31
+ begin
32
+ runner = Stockery::Runner.new(%w(-o print))
33
+ runner.run!
34
+ rescue SystemExit => e
35
+ end
36
+ end
37
+
38
+ assert_equal "Stock symbols missing. Usage `stockery -q \"GOOG, MSFT\"\n", out.to_s
39
+ end
40
+
41
+ should "print the result as a json string by default" do
42
+ out = capture_output do
43
+ runner = Stockery::Runner.new(%w(-q AAPL))
44
+ runner.run!
45
+ end
46
+
47
+ possible_json_data = out.to_s
48
+
49
+ begin
50
+ JSON.parse(possible_json_data)
51
+
52
+ valid = true
53
+ rescue JSON::ParserError => e
54
+ valid = false
55
+ end
56
+
57
+ assert valid
58
+ end
59
+
60
+ should "print the result when passing print output argument" do
61
+ out = capture_output do
62
+ runner = Stockery::Runner.new(%w(-q AAPL -o print))
63
+ runner.run!
64
+ end
65
+
66
+ assert_match "Quotes at", out.to_s
67
+ end
68
+
69
+ should "print its version" do
70
+ out = capture_output do
71
+ begin
72
+ runner = Stockery::Runner.new(%w(-v))
73
+ runner.run!
74
+ rescue SystemExit => e
75
+
76
+ end
77
+ end
78
+
79
+ assert_equal Stockery::VERSION + "\n", out.to_s # \n because of exit status
80
+ end
46
81
  end
47
82
  end
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.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-25 00:00:00.000000000Z
12
+ date: 2011-09-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &2162930560 !ruby/object:Gem::Requirement
16
+ requirement: &2156699420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2162930560
24
+ version_requirements: *2156699420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &2162929560 !ruby/object:Gem::Requirement
27
+ requirement: &2156698560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2162929560
35
+ version_requirements: *2156698560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2162928800 !ruby/object:Gem::Requirement
38
+ requirement: &2156697600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2162928800
46
+ version_requirements: *2156697600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &2162927900 !ruby/object:Gem::Requirement
49
+ requirement: &2156696880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2162927900
57
+ version_requirements: *2156696880
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &2162926940 !ruby/object:Gem::Requirement
60
+ requirement: &2156696120 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2162926940
68
+ version_requirements: *2156696120
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thoughtbot-shoulda
71
- requirement: &2162925960 !ruby/object:Gem::Requirement
71
+ requirement: &2156695040 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2162925960
79
+ version_requirements: *2156695040
80
80
  description: Fetch stock quotes. Build as a gem and command line tool.
81
81
  email: pieter@noort.be
82
82
  executables:
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  segments:
117
117
  - 0
118
- hash: 3780466078473534277
118
+ hash: 3668783843777895541
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  none: false
121
121
  requirements: