cstock 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50c00672ffb8be8b8471accc764b3b8e228e3cab
4
- data.tar.gz: fef9b32e38770f86e4ab2c2f4ecc00c62586a91f
3
+ metadata.gz: fa7fb1e0d445516a141f448825634dc47d7aba2f
4
+ data.tar.gz: ba2c88cb28745dc7108b831144d53bdb3fdd4e12
5
5
  SHA512:
6
- metadata.gz: 9f0eeeab9153902e4e1a7b47ec057aac98791c1182e50b788d761d5b237381db506d5c57c3480c2870a92ac5ef6bc5348eb83b12691c3719b121a4a291146e1b
7
- data.tar.gz: 59e2854869398db8207dc12f2656e88dbde06f46b78e73785a1234c40bd1ccb90291f54250165f1feac180e1856f456622c0019950940865fc2ad61160f6cf1e
6
+ metadata.gz: 5a4a4d642357bd4ac63fa29292640c5114b773e5ab627e9102ae344e7311d93bb6bb0614ff8f8e58a524e175b6b377234506afd961b7bcd2b7a1d33915ff7554
7
+ data.tar.gz: 7637e232f51818a32f7f935d74eabbc2aff57a37fc455721840afcb8d2714c51705a0dea0cc521d94b77cc42e74e022290a3b12fe0e19308e785d0fe74e764a9
data/README.md CHANGED
@@ -30,7 +30,7 @@ gem install cstock
30
30
 
31
31
  require 'cstock'
32
32
 
33
- stock = CStock::Stock.quote('600000')
33
+ stock = CStock::Stock.new('600000')
34
34
  stock.name #=> 浦发银行
35
35
  stock.股票名 #=> 浦发银行
36
36
  stock. open_price #=> 16.00
data/bin/cstock CHANGED
@@ -4,11 +4,11 @@ require 'cstock'
4
4
 
5
5
  if ARGV.count != 1
6
6
  puts "With the given stock code quote its infomation."
7
- puts "usage: cstock sh600000"
7
+ puts "usage: cstock 600000"
8
8
  exit
9
9
  end
10
10
 
11
11
  code = ARGV[0]
12
12
 
13
- stock = CStock::Stock.quote(code)
13
+ stock = CStock::Stock.new(code)
14
14
  stock.description
@@ -17,6 +17,6 @@ Gem::Specification.new do |s|
17
17
  s.executables = %w(cstock)
18
18
  s.homepage = 'https://github.com/astonfu/cstock'
19
19
 
20
- s.add_runtime_dependency 'rest-client'
21
- s.add_development_dependency 'rspec'
20
+ s.add_runtime_dependency 'rest-client', '~> 1.6'
21
+ s.add_development_dependency 'rspec', '~> 3.2'
22
22
  end
@@ -18,20 +18,34 @@ module CStock
18
18
  __send__(:alias_method, FIELDS_ZH[index].to_sym, field.to_sym)
19
19
  end
20
20
 
21
- def initialize(stock_code, data)
21
+ def initialize(stock_code, data=nil)
22
22
  @code = stock_code
23
- return nil if data == nil
23
+ data = self.class.quote(stock_code) if data == nil
24
24
  FIELDS[1..-1].each_with_index do |field, index|
25
25
  instance_variable_set("@#{field}", (data[index].nil? ? nil : data[index]))
26
26
  end
27
+ yield self if block_given?
27
28
  end
28
29
 
30
+
29
31
  def description
30
32
  FIELDS_ZH.each do |field|
31
33
  puts field + " : " + self.send(field)
32
34
  end
33
35
  end
34
36
 
37
+ def refresh
38
+ self.class.refresh(self)
39
+ end
40
+
41
+ def self.refresh(stock)
42
+ quote(stock.code) do |data|
43
+ FIELDS[1..-1].each_with_index do |field, index|
44
+ stock.instance_variable_set("@#{field}", (data[index].nil? ? nil : data[index]))
45
+ end
46
+ end
47
+ end
48
+
35
49
  PREFIX_URL = "http://hq.sinajs.cn/list="
36
50
  def self.quote(stock_code)
37
51
  parsed_stock_code = parse_stock_code(stock_code)
@@ -39,9 +53,9 @@ module CStock
39
53
 
40
54
  RestClient::Request.execute(:url => url, :method => :get) do |response|
41
55
  if response.code == 200
42
- s = Stock.new(stock_code, parse(response.force_encoding("GBK").encode("UTF-8")))
43
- yield(s) if block_given?
44
- return s
56
+ data = parse(response.force_encoding("GBK").encode("UTF-8"))
57
+ yield(data) if block_given?
58
+ return data
45
59
  else
46
60
  nil
47
61
  end
@@ -1,4 +1,4 @@
1
1
  # =>CStock::VERSION
2
2
  module CStock
3
- VERSION = '0.2.0'
3
+ VERSION = '0.2.2'
4
4
  end
@@ -2,8 +2,8 @@ require 'cstock'
2
2
  require 'spec_helper'
3
3
 
4
4
  describe CStock::Stock do
5
- describe 'quote' do
6
- stock = CStock::Stock.quote('600000') do |s|
5
+ describe 'initialize' do
6
+ stock = CStock::Stock.new('600000') do |s|
7
7
  puts "***" + s.name
8
8
  end
9
9
  stock.description
@@ -16,4 +16,25 @@ describe CStock::Stock do
16
16
  expect(stock.code).to eq("600000")
17
17
  end
18
18
  end
19
- end
19
+
20
+ describe "refresh" do
21
+ before :each do
22
+ @s = CStock::Stock.new('600000', %w(name open_price yesterday_close_price cur_price high_price low_price bid_price_1 ask_price_1 volume turnover
23
+ bid_volume_1 bid_price_1 bid_volume_2 bid_price_2 bid_volume_3 bid_price_3 bid_volume_4 bid_price_4 bid_volume_5 bid_price_5
24
+ ask_volume_1 ask_price_1 ask_volume_2 ask_price_2 ask_volume_3 ask_price_3 ask_volume_4 ask_price_4 ask_volume_5 ask_price_5
25
+ date time))
26
+ end
27
+
28
+ it "class method update stock attr" do
29
+ expect(@s.name).to eq("name")
30
+ CStock::Stock.refresh(@s)
31
+ expect(@s.name).to eq('浦发银行')
32
+ end
33
+
34
+ it "instance method update stock attr" do
35
+ expect(@s.name).to eq("name")
36
+ @s.refresh
37
+ expect(@s.name).to eq('浦发银行')
38
+ end
39
+ end
40
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cstock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aston Fu
@@ -14,30 +14,30 @@ dependencies:
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.6'
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'
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '3.2'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '3.2'
41
41
  description: A ruby gem that get chinese stock infomation.
42
42
  email: im@fuhao.im
43
43
  executables:
@@ -49,7 +49,6 @@ files:
49
49
  - LICENSE
50
50
  - README.md
51
51
  - bin/cstock
52
- - cstock-0.1.0.gem
53
52
  - cstock.gemspec
54
53
  - lib/cstock.rb
55
54
  - lib/cstock/stock.rb
Binary file