histock-simplefilter 0.1.2 → 0.2.0
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 +4 -4
- data/CHANGELOG.md +8 -2
- data/README.md +24 -2
- data/lib/histock/simplefilter/fetch/financial_statements.rb +10 -0
- data/lib/histock/simplefilter/fetch.rb +33 -9
- data/lib/histock/simplefilter/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e32979ce299039612c2aa20f15b18562e1dabdbdeec3a25b981f03c7ecab084c
|
4
|
+
data.tar.gz: fd56926c121afc019093988e891bb41c42437699ab28187de32ad825852d066f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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-
|
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-
|
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
|
-
|
30
|
+
### Dividend policy
|
31
31
|
|
32
32
|
```rb
|
33
33
|
histock = Histock::Simplefilter.new
|
34
|
-
histock.dividend_policy(
|
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
|
+
```
|
@@ -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
|
-
|
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
|
-
|
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 =
|
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
|
-
|
42
|
-
|
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
|
47
|
-
when 'td' then
|
48
|
-
else
|
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
|
-
|
76
|
+
array
|
53
77
|
end
|
54
78
|
end
|
55
79
|
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.
|
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.
|
130
|
+
rubygems_version: 3.1.3
|
130
131
|
signing_key:
|
131
132
|
specification_version: 4
|
132
133
|
summary: HiStock (https://histock.tw/) filter
|