histock-simplefilter 0.1.2 → 0.2.0

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
  SHA256:
3
- metadata.gz: 49fa59d41b69cd6d68ca41cab558feacfc992307cea33027a5bf85b89f4cc45b
4
- data.tar.gz: 0b249091bc7b93ee1a23dfd261b4750f71d34b667a724b4f72711b4b762a6580
3
+ metadata.gz: e32979ce299039612c2aa20f15b18562e1dabdbdeec3a25b981f03c7ecab084c
4
+ data.tar.gz: fd56926c121afc019093988e891bb41c42437699ab28187de32ad825852d066f
5
5
  SHA512:
6
- metadata.gz: 330467fc55a6a63309efd90f9707b035101908d9e38c811f0100be8465f2e367e5c0b0620c6655909eb4ee9c5f387309d5380111abfc535a7a90ad62ebe78736
7
- data.tar.gz: 709edcdddd3229001c6a16cf14f9be14f5865b4e484bd727a1cd32849129cecdab0630effa136c43a263143fc2a60535e42d980c8bd017441be18c4c9c9f5bf8
6
+ metadata.gz: 1c0412f9bb2c4861d66ad676024761804bc5ae0d62ce9b82f666dc7e328315ebb438be13bc426081ec89ab8ebefff3394a26e8f6f4daea7f6d2b64470a5c8fc5
7
+ data.tar.gz: f29c7bea0fe1f5b0dfa54dcee98031c607083232e61330547256f26617284aba0b17f64b64bfcd96e0a085c3f503850e54590f37d1df558b02061f78920b50fd
data/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
+ ## v0.2.0
2
+ [full changelog](http://github.com/ysato5654/histock-simplefilter/compare/v0.1.2...v0.2.0)
3
+
4
+ * support new request
5
+ - financial statements
6
+
1
7
  ## v0.1.2
2
- [full changelog](http://github.com/ysato5654/histock-filter/compare/v0.1.1...v0.1.2)
8
+ [full changelog](http://github.com/ysato5654/histock-simplefilter/compare/v0.1.1...v0.1.2)
3
9
 
4
10
  * fix include path
5
11
 
6
12
  ## v0.1.1
7
- [full changelog](http://github.com/ysato5654/histock-filter/compare/v0.1.0...v0.1.1)
13
+ [full changelog](http://github.com/ysato5654/histock-simplefilter/compare/v0.1.0...v0.1.1)
8
14
 
9
15
  * update gemspec
10
16
 
data/README.md CHANGED
@@ -27,11 +27,11 @@ $ gem install histock-simplefilter
27
27
 
28
28
  ## Usage
29
29
 
30
- # histock-simplefilter
30
+ ### Dividend policy
31
31
 
32
32
  ```rb
33
33
  histock = Histock::Simplefilter.new
34
- histock.dividend_policy(:code => '1234')
34
+ histock.dividend_policy('2330')
35
35
  # [
36
36
  # ["所屬年度", "發放年度", "除權日", "除息日", "除權息前股價", "股票股利", "現金股利", "EPS", "配息率", "現金殖利率", "扣抵稅率", "增資配股率", "增資認購價"],
37
37
  # ["2019", "2020", "-", "06/18", "297.5", "0", "2.5", "13.32", "0.1877", "0.0084", "0", "0", "0"],
@@ -52,3 +52,25 @@ histock.dividend_policy(:code => '1234')
52
52
  # ["2007", "2008", "07/16", "07/16", "55.8", "0.05", "3.03", "-", "-", "0", "0.0186", "0.02", "0"]
53
53
  # ]
54
54
  ```
55
+
56
+ ### Financial statements
57
+
58
+ ```rb
59
+ histock = Histock::Simplefilter.new
60
+ histock.financial_statements('2330')
61
+ # [
62
+ # ["年度/月份", "單月營收", "去年同月營收", "單月月增率", "單月年增率", "累計營收", "去年累計營收", "累積年增率"],
63
+ # ["2020/04", "96,001,568", "74,693,616", "-15.4%", "28.5%", "406,598,784", "293,398,112", "38.6%"],
64
+ # ["2020/03", "113,519,600", "79,721,584", "21.5%", "42.4%", "310,597,184", "218,704,496", "42%"],
65
+ # ["2020/02", "93,394,448", "60,889,060", "-9.9%", "53.4%", "197,077,600", "138,982,896", "41.8%"],
66
+ # ["2020/01", "103,683,104", "78,093,824", "0.3%", "32.8%", "103,683,104", "78,093,824", "32.8%"],
67
+ # ["2019/12", "103,313,104", "89,830,600", "-4.2%", "15%", "1,069,985,024", "1,031,473,984", "3.7%"],
68
+ # ["2019/11", "107,884,400", "98,389,424", "1.7%", "9.6%", "966,672,320", "941,642,880", "2.7%"],
69
+ # ["2019/10", "106,039,504", "101,550,200", "3.8%", "4.4%", "858,787,904", "843,253,632", "1.8%"],
70
+ # ["2019/09", "102,170,096", "94,921,920", "-3.7%", "7.6%", "752,748,416", "741,703,424", "1.5%"],
71
+ # ["2019/08", "106,117,600", "91,055,040", "25.2%", "16.5%", "650,578,304", "646,781,376", "0.6%"],
72
+ # ["2019/07", "84,757,728", "74,370,928", "-1.3%", "14%", "544,460,672", "555,726,400", "-2%"],
73
+ # ["2019/06", "85,867,928", "70,438,304", "6.8%", "21.9%", "459,702,912", "481,355,488", "-4.5%"],
74
+ # ["2019/05", "80,436,928", "80,968,736", "7.7%", "-0.6%", "373,835,008", "410,917,184", "-9%"],
75
+ # ]
76
+ ```
@@ -0,0 +1,10 @@
1
+ module Histock
2
+ module Fetch
3
+ module FinancialStatements
4
+ def financial_statements(code)
5
+ params = {:no => code, :t => 1}
6
+ parse(:query => __method__, :html => get('/financial.aspx', params))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,9 +1,11 @@
1
1
  require 'nokogiri'
2
2
  require File.expand_path(File.dirname(__FILE__)) + '/fetch/dividend_policy'
3
+ require File.expand_path(File.dirname(__FILE__)) + '/fetch/financial_statements'
3
4
 
4
5
  module Histock
5
6
  module Fetch
6
7
  include DividendPolicy
8
+ include FinancialStatements
7
9
 
8
10
  private
9
11
 
@@ -20,14 +22,23 @@ module Histock
20
22
  node = nodes.first
21
23
  # => Nokogiri::XML::Element
22
24
 
23
- array = []
25
+ parse_table(:query => query, :element => node)
26
+ end
27
+
28
+ def parse_table query:, element:
29
+ parse_tr(:query => query, :element => element)
30
+ end
24
31
 
25
- node.children.each do |e|
32
+ # column
33
+ def parse_tr query:, element:
34
+ array = Array.new
35
+
36
+ element.children.each do |e|
26
37
  next unless e.element?
27
38
 
28
39
  case e.name
29
40
  when 'tr'
30
- value = parse_th(query: query, element: e)
41
+ value = parse_th_td(:query => query, :element => e)
31
42
 
32
43
  array.push value unless value.empty?
33
44
  else
@@ -35,21 +46,34 @@ module Histock
35
46
  end
36
47
  end
37
48
 
49
+ case query
50
+ when :financial_statements
51
+ header = array.delete_at(0)
52
+ header.delete_at(-1)
53
+ header.delete_at(-1)
54
+
55
+ header.push array.delete_at(0)
56
+ header.flatten!
57
+
58
+ array.unshift(header)
59
+ end
60
+
38
61
  array
39
62
  end
40
63
 
41
- def parse_th query:, element:
42
- value = Array.new
64
+ # row
65
+ def parse_th_td query:, element:
66
+ array = Array.new
43
67
 
44
68
  element.children.each do |e|
45
69
  case e.name
46
- when 'th' then value.push e.children.to_s.gsub(/\<br\>/, '')
47
- when 'td' then value.push e.children.to_s
48
- else puts e.name; raise TableFormatError
70
+ when 'th' then array.push e.children.text.gsub(/\<br\>/, '')
71
+ when 'td' then array.push e.children.text
72
+ else raise TableFormatError
49
73
  end
50
74
  end
51
75
 
52
- value
76
+ array
53
77
  end
54
78
  end
55
79
  end
@@ -1,5 +1,5 @@
1
1
  module Histock
2
2
  class Simplefilter
3
- VERSION = '0.1.2'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: histock-simplefilter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuya Sato
@@ -103,6 +103,7 @@ files:
103
103
  - lib/histock/simplefilter/error.rb
104
104
  - lib/histock/simplefilter/fetch.rb
105
105
  - lib/histock/simplefilter/fetch/dividend_policy.rb
106
+ - lib/histock/simplefilter/fetch/financial_statements.rb
106
107
  - lib/histock/simplefilter/version.rb
107
108
  homepage: https://github.com/ysato5654/histock-simplefilter
108
109
  licenses:
@@ -126,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
127
  - !ruby/object:Gem::Version
127
128
  version: '0'
128
129
  requirements: []
129
- rubygems_version: 3.1.2
130
+ rubygems_version: 3.1.3
130
131
  signing_key:
131
132
  specification_version: 4
132
133
  summary: HiStock (https://histock.tw/) filter