cstock 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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