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 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