rggen-spreadsheet-loader 0.18.2 → 0.21.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: bb30337ed0f7670b7a30412298d500efc2c43a68b23c62cb24710cbd177d6712
4
- data.tar.gz: 120d91e46af469f9843844afcfdf1d2ec736bada9d57b5405db9ae16bd52aa49
3
+ metadata.gz: 1ecef914a6486bf3e24f727a5245c6d80f484cd71801549c13bd53133d61146d
4
+ data.tar.gz: 42692af472b677c5c2b352ade9e991e3531d5ea2c174e83493decc33f9a105b2
5
5
  SHA512:
6
- metadata.gz: baaede9d7b9dcdcbe08c7671a17da7ae8847cab6d6f5ab9f0c1154419bd321256a7951414f70e0aa5f9b56d6ef452ecd87027ddcf39ecc9f4f16537d6a9300ed
7
- data.tar.gz: b2bf6f9e744ba823cdcbc77b776f59805c9df88ebd107fa9e18830d5baf0396743989da7e7576fb29f2d3fa1be2d1c240abbd114018f86d3c8bf7bbc55616a51
6
+ metadata.gz: 54cb03880736f943c2be367d6b6fe2537a1bbcb67b8e19dca400e77221edc4aae9facfc9b79b3d67391d831599a96bbcd2aa61b011e79548e50b335073c6a02d
7
+ data.tar.gz: 6744d166b12b23d1a96c439dbe4028255c590c0290b0576c8fe630a01342c33d16ab5a90ab8600637b1f5f627d09893861bbf04ba2fadc71a70985c1b82df4f4
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019-2020 Taichi Ishitani
3
+ Copyright (c) 2019-2022 Taichi Ishitani
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -40,7 +40,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
40
40
 
41
41
  ## Copyright & License
42
42
 
43
- Copyright © 2019-2020 Taichi Ishitani. RgGen::SpreadsheetLoader is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
43
+ Copyright © 2019-2022 Taichi Ishitani. RgGen::SpreadsheetLoader is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
44
44
 
45
45
  ## Code of Conduct
46
46
 
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RgGen
4
+ module SpreadsheetLoader
5
+ class ODSLoader < Core::RegisterMap::Loader
6
+ include SpreadsheetLoader
7
+
8
+ support_types [:ods]
9
+
10
+ def read_spreadsheet(file, book)
11
+ require 'spreadbase'
12
+ SpreadBase::Document.new(file)
13
+ .tables.each { |table| process_table(table, book) }
14
+ end
15
+
16
+ private
17
+
18
+ def process_table(table, book)
19
+ rows = table.data
20
+ rows.size.positive? && book.add_sheet(table.name, rows)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rggen/spreadsheet_loader'
4
- RgGen.setup RgGen::SpreadsheetLoader do |builder|
4
+
5
+ RgGen.register_plugin RgGen::SpreadsheetLoader do |builder|
5
6
  builder.ignore_value :register_map, :spreadsheet, :register_block, :comment
6
7
  builder.ignore_value :register_map, :spreadsheet, :register, :comment
7
8
  end
@@ -12,7 +12,8 @@ module RgGen
12
12
  private
13
13
 
14
14
  def format_layer_data(read_data, layer, _file)
15
- layer != :root ? collect_layer_data(read_data, layer) : nil
15
+ return if layer == :root
16
+ collect_layer_data(read_data, layer)
16
17
  end
17
18
 
18
19
  def collect_layer_data(read_data, layer)
@@ -49,7 +50,8 @@ module RgGen
49
50
 
50
51
  def format_sub_layer_data(read_data, layer, _file)
51
52
  sub_layer = SUB_LAYERS[layer]
52
- sub_layer && { sub_layer => __send__("collect_#{sub_layer}_data", read_data) }
53
+ sub_layer &&
54
+ [sub_layer].product(__send__("collect_#{sub_layer}_data", read_data))
53
55
  end
54
56
 
55
57
  def collect_register_block_data(book)
@@ -57,7 +59,8 @@ module RgGen
57
59
  end
58
60
 
59
61
  def collect_register_data(sheet)
60
- sheet.rows(register_start_position.row)
62
+ sheet
63
+ .rows(register_start_position.row)
61
64
  .reject { |row| row.cells.all?(&:empty_cell?) }
62
65
  .each_with_object([], &method(:collect_register_rows))
63
66
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module SpreadsheetLoader
5
- VERSION = '0.18.2'
5
+ VERSION = '0.21.0'
6
6
  end
7
7
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RgGen
4
+ module SpreadsheetLoader
5
+ class XLSXLoader < Core::RegisterMap::Loader
6
+ include SpreadsheetLoader
7
+
8
+ support_types [:xlsx]
9
+
10
+ def read_spreadsheet(file, book)
11
+ require 'simple_xlsx_reader'
12
+ SimpleXlsxReader.open(file)
13
+ .sheets.each { |sheet| process_sheet(sheet, book) }
14
+ end
15
+
16
+ private
17
+
18
+ def process_sheet(sheet, book)
19
+ sheet.rows.size.positive? &&
20
+ book.add_sheet(sheet.name, sheet.rows)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -8,17 +8,18 @@ require_relative 'spreadsheet_loader/spreadsheet/sheet'
8
8
  require_relative 'spreadsheet_loader/spreadsheet/book'
9
9
  require_relative 'spreadsheet_loader/spreadsheet_loader'
10
10
  require_relative 'spreadsheet_loader/csv_loader'
11
- require_relative 'spreadsheet_loader/roo_loader'
11
+ require_relative 'spreadsheet_loader/ods_loader'
12
12
  require_relative 'spreadsheet_loader/xls_loader'
13
+ require_relative 'spreadsheet_loader/xlsx_loader'
13
14
 
14
15
  module RgGen
15
16
  module SpreadsheetLoader
16
- PLUGIN_NAME = :'rggen-spreadsheet-loader'
17
+ extend Core::Plugin
17
18
 
18
- def self.default_setup(builder)
19
- builder.register_loader(:register_map, :spreadsheet, CSVLoader)
20
- builder.register_loader(:register_map, :spreadsheet, RooLoader)
21
- builder.register_loader(:register_map, :spreadsheet, XLSLoader)
19
+ setup_plugin :'rggen-spreadsheet-loader' do |plugin|
20
+ [CSVLoader, ODSLoader, XLSLoader, XLSXLoader].each do |loader|
21
+ plugin.register_loader :register_map, :spreadsheet, loader
22
+ end
22
23
  end
23
24
  end
24
25
  end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-spreadsheet-loader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.2
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-31 00:00:00.000000000 Z
11
+ date: 2022-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: roo
14
+ name: simple_xlsx_reader
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.8'
19
+ version: 1.0.4
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: '2.8'
26
+ version: 1.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: spreadbase
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.4.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: spreadsheet
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -64,7 +78,7 @@ files:
64
78
  - README.md
65
79
  - lib/rggen/spreadsheet_loader.rb
66
80
  - lib/rggen/spreadsheet_loader/csv_loader.rb
67
- - lib/rggen/spreadsheet_loader/roo_loader.rb
81
+ - lib/rggen/spreadsheet_loader/ods_loader.rb
68
82
  - lib/rggen/spreadsheet_loader/setup.rb
69
83
  - lib/rggen/spreadsheet_loader/spreadsheet/book.rb
70
84
  - lib/rggen/spreadsheet_loader/spreadsheet/cell.rb
@@ -74,12 +88,14 @@ files:
74
88
  - lib/rggen/spreadsheet_loader/spreadsheet_loader.rb
75
89
  - lib/rggen/spreadsheet_loader/version.rb
76
90
  - lib/rggen/spreadsheet_loader/xls_loader.rb
91
+ - lib/rggen/spreadsheet_loader/xlsx_loader.rb
77
92
  homepage: https://github.com/rggen/rggen-spreadsheet-loader
78
93
  licenses:
79
94
  - MIT
80
95
  metadata:
81
96
  bug_tracker_uri: https://github.com/rggen/rggen-spreadsheet-loader/issues
82
97
  mailing_list_uri: https://groups.google.com/d/forum/rggen
98
+ rubygems_mfa_required: 'true'
83
99
  source_code_uri: https://github.com/rggen/rggen-spreadsheet-loader
84
100
  wiki_uri: https://github.com/rggen/rggen/wiki
85
101
  post_install_message:
@@ -90,15 +106,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
106
  requirements:
91
107
  - - ">="
92
108
  - !ruby/object:Gem::Version
93
- version: '2.4'
109
+ version: '2.6'
94
110
  required_rubygems_version: !ruby/object:Gem::Requirement
95
111
  requirements:
96
112
  - - ">="
97
113
  - !ruby/object:Gem::Version
98
114
  version: '0'
99
115
  requirements: []
100
- rubygems_version: 3.1.2
116
+ rubygems_version: 3.3.3
101
117
  signing_key:
102
118
  specification_version: 4
103
- summary: rggen-spreadsheet-loader-0.18.2
119
+ summary: rggen-spreadsheet-loader-0.21.0
104
120
  test_files: []
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RgGen
4
- module SpreadsheetLoader
5
- class RooLoader < Core::RegisterMap::Loader
6
- include SpreadsheetLoader
7
-
8
- support_types [:xlsx, :ods]
9
-
10
- def read_spreadsheet(file, book)
11
- read_roo(file) do |pagename, page|
12
- book.add_sheet(pagename, collect_cells(page))
13
- end
14
- end
15
-
16
- private
17
-
18
- def read_roo(file)
19
- require 'roo'
20
- Roo::Spreadsheet.open(file, extension: File.extname(file))
21
- .each_with_pagename do |pagename, page|
22
- page.first_row && yield(pagename, page)
23
- end
24
- end
25
-
26
- def collect_cells(page)
27
- (1..page.last_row).map do |row|
28
- (1..page.last_column).map { |column| page.cell(row, column) }
29
- end
30
- end
31
- end
32
- end
33
- end