kitco 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/kitco +13 -10
  3. data/lib/kitco.rb +8 -14
  4. metadata +12 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fdaabbfe22e8a4b0163b89406d407904522d2457
4
- data.tar.gz: 5d6ca9252975f3a6885426aedbb43cc1544072dd
3
+ metadata.gz: 16a42c507c8d3c447a191df3a626e1a6bd2d744e
4
+ data.tar.gz: 651ad1d0884cb56147a1e478f9d054368927b35a
5
5
  SHA512:
6
- metadata.gz: 1bf922061043c2be413fd6bd23e70a2ddac5c953ac50ca9a4faf3a531558563b068763fe25241be0fab5a6e69f78151da56066d47b64c8a8c0b353b28e56a5c1
7
- data.tar.gz: 59a28d8791fb347313acca6eb0f3cd6076992efb67bc81e0d486bd6e8dc45fd2b30ef7977655f4d6d6abeda6e0f880af5579f2baf5f9ec12a47be03b25f67786
6
+ metadata.gz: 74b90cbf6fe25fd873e506204d8751a40b6dd77211a619a395ad15b44cc1c1743ae6d0e347b2a190d83379ffb2db067444f27b60cf2650665f276d84dadc28f7
7
+ data.tar.gz: 61ba4a68b78db48464a16d3f5608f7c3536c6fa09d2872ce4a316182a7ce43ec12a51b81227a791c5be5e09233ed5979834f6285ccbebf210b1c3c7a99b7af22
data/bin/kitco CHANGED
@@ -1,14 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'optparse'
3
- #require 'kitco'
4
- require File.expand_path('../../lib/kitco', __FILE__)
3
+ require 'kitco'
5
4
 
6
5
  options = { :color => true }
7
- symbols = [:gold, :silver, :palladium, :rhodium]
6
+ strings = Kitco::SYMBOLS
8
7
 
9
8
  optparse = OptionParser.new do |opts|
10
- opts.banner = "usage: kitco [options] [symbol]\n\n"
11
- opts.banner << "symbols (case-insensitive):\n#{ symbols.collect { |s| s.upcase }.join(' ') }\n\n\options:"
9
+ opts.banner << "usage: kitco [options] symbol\n"
10
+ opts.banner << "where symbol is #{ strings.map(&:upcase).join(' ') } (case-insensitive)\n\nOptions:"
12
11
 
13
12
  opts.on '-h', '--help', 'Display this message' do |arg|
14
13
  options[:help] = arg
@@ -24,18 +23,21 @@ optparse.parse!
24
23
  at_exit { puts optparse unless $!.nil? }
25
24
  exit(1) if options[:help] || ARGV.size < 1
26
25
 
27
- symbol = ARGV.pop.downcase.to_sym
28
- exit(1) unless symbols.include? symbol
26
+ input = ARGV.pop.downcase
27
+ exit(1) unless strings.include? input
29
28
 
30
- if Kitco.public_methods.include? symbol
29
+ method = input.to_sym
30
+
31
+ if Kitco.public_methods.include? method
31
32
  begin
32
- body = Kitco.send(symbol).parsed_response
33
+ body = Kitco.send(method).parsed_response
33
34
 
34
- puts "Results for #{symbol.upcase} (#{body[:time].strftime('%H:%M %m/%d/%y')})"
35
+ puts "Results for #{input.upcase} (#{body[:time].strftime('%H:%M %m/%d/%y')})"
35
36
  puts "High #{body[:high]}\tLow #{body[:low]}"
36
37
  puts "Bid #{body[:bid]}\tAsk #{body[:ask]}"
37
38
 
38
39
  change = "#{body[:change]} (#{(body[:percentage] * 100.0).round(4)}%)"
40
+
39
41
  if options[:color]
40
42
  puts "Change: \e[#{body[:change] >= 0 ? '32m+' : '31m'}#{change}\e[0m"
41
43
  else
@@ -44,5 +46,6 @@ if Kitco.public_methods.include? symbol
44
46
 
45
47
  rescue Exception => e
46
48
  puts "Failure: #{e}"
49
+ puts e.backtrace.join("\n")
47
50
  end
48
51
  end
@@ -3,6 +3,8 @@ require 'base64'
3
3
  require 'time'
4
4
 
5
5
  class Kitco
6
+ SYMBOLS = %w[gold silver palladium platinum rhodium].freeze
7
+
6
8
  include HTTParty
7
9
 
8
10
  base_uri "charts.kitco.com/KitcoCharts"
@@ -20,20 +22,12 @@ class Kitco
20
22
  results.merge! Hash[ [:bid, :ask, :change, :low, :high].zip(data) ]
21
23
  }
22
24
 
23
- def self.gold
24
- request :gold
25
- end
26
-
27
- def self.silver
28
- request :silver
29
- end
30
-
31
- def self.palladium
32
- request :palladium
33
- end
34
-
35
- def self.rhodium
36
- request :rhodium
25
+ SYMBOLS.each do |symbol|
26
+ class_eval <<-RUBY_EVAL
27
+ def self.#{symbol}
28
+ request :#{symbol}
29
+ end
30
+ RUBY_EVAL
37
31
  end
38
32
 
39
33
  class << self
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - mikeycgto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-07 00:00:00.000000000 Z
11
+ date: 2016-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.8
19
+ version: '0.13'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.7.8
26
+ version: '0.13'
27
27
  description: An API for accessing data from Kitco Charts. Also includes a command
28
28
  line utility
29
29
  email: mikeycgto@gmail.com
@@ -33,10 +33,11 @@ extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - README.md
36
- - lib/kitco.rb
37
36
  - bin/kitco
37
+ - lib/kitco.rb
38
38
  homepage: https://github.com/mikeycgto/kitco
39
- licenses: []
39
+ licenses:
40
+ - MIT
40
41
  metadata: {}
41
42
  post_install_message:
42
43
  rdoc_options: []
@@ -44,20 +45,19 @@ require_paths:
44
45
  - lib
45
46
  required_ruby_version: !ruby/object:Gem::Requirement
46
47
  requirements:
47
- - - '>='
48
+ - - ">="
48
49
  - !ruby/object:Gem::Version
49
50
  version: '0'
50
51
  required_rubygems_version: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - '>='
53
+ - - ">="
53
54
  - !ruby/object:Gem::Version
54
55
  version: '0'
55
56
  requirements: []
56
57
  rubyforge_project:
57
- rubygems_version: 2.0.3
58
+ rubygems_version: 2.5.2
58
59
  signing_key:
59
60
  specification_version: 4
60
61
  summary: An API for accessing data from Kitco Charts. Also includes a command line
61
62
  utility!
62
63
  test_files: []
63
- has_rdoc: false