rggen-spreadsheet-loader 0.14.0 → 0.15.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/LICENSE +1 -1
- data/README.md +2 -2
- data/lib/rggen/spreadsheet_loader.rb +4 -2
- data/lib/rggen/spreadsheet_loader/csv_loader.rb +24 -0
- data/lib/rggen/spreadsheet_loader/roo_loader.rb +11 -3
- data/lib/rggen/spreadsheet_loader/version.rb +1 -1
- data/lib/rggen/spreadsheet_loader/xls_loader.rb +26 -0
- metadata +24 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7856ba69aba4ae38374fe772d450d1f8b10ac594c34b45aa9a4ffa6abc0e77d2
|
|
4
|
+
data.tar.gz: 93e1c030d725f6a64c6a43718e504c0bdd9f7ecad311f73b1ddd95be3e849206
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 43af3f850cb9b89add2a5df580f71844ab017b9f27a64d10803934d838258643eb83c6bd6439f5cafbf29d87c8f1a399b3f3d5de301c756fb64cd9ea513f9bf3
|
|
7
|
+
data.tar.gz: 6ffc06e90fd24cd16672f37ccb7f7210cafb5c89c53aff96606a0b390316c871d96096db472ee61442f4db0abbd90523e27ef0f1caf6c4a1ee34d143d3e82cba
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[](https://badge.fury.io/rb/rggen-spreadsheet-loader)
|
|
2
|
-
[](https://github.com/rggen/rggen-spreadsheet-loader/actions?query=workflow%3ACI)
|
|
3
3
|
[](https://codeclimate.com/github/rggen/rggen-spreadsheet-loader/maintainability)
|
|
4
4
|
[](https://codecov.io/gh/rggen/rggen-spreadsheet-loader)
|
|
5
5
|
[](https://sonarcloud.io/dashboard?id=rggen_rggen-spreadsheet-loader)
|
|
@@ -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 Taichi Ishitani. RgGen::SpreadsheetLoader is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
|
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.
|
|
44
44
|
|
|
45
45
|
## Code of Conduct
|
|
46
46
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'roo'
|
|
4
|
-
require 'roo-xls'
|
|
5
3
|
require_relative 'spreadsheet_loader/version'
|
|
6
4
|
require_relative 'spreadsheet_loader/spreadsheet/position'
|
|
7
5
|
require_relative 'spreadsheet_loader/spreadsheet/cell'
|
|
@@ -9,12 +7,16 @@ require_relative 'spreadsheet_loader/spreadsheet/row'
|
|
|
9
7
|
require_relative 'spreadsheet_loader/spreadsheet/sheet'
|
|
10
8
|
require_relative 'spreadsheet_loader/spreadsheet/book'
|
|
11
9
|
require_relative 'spreadsheet_loader/spreadsheet_loader'
|
|
10
|
+
require_relative 'spreadsheet_loader/csv_loader'
|
|
12
11
|
require_relative 'spreadsheet_loader/roo_loader'
|
|
12
|
+
require_relative 'spreadsheet_loader/xls_loader'
|
|
13
13
|
|
|
14
14
|
module RgGen
|
|
15
15
|
module SpreadsheetLoader
|
|
16
16
|
def self.default_setup(builder)
|
|
17
|
+
builder.register_loader(:register_map, CSVLoader)
|
|
17
18
|
builder.register_loader(:register_map, RooLoader)
|
|
19
|
+
builder.register_loader(:register_map, XLSLoader)
|
|
18
20
|
end
|
|
19
21
|
end
|
|
20
22
|
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RgGen
|
|
4
|
+
module SpreadsheetLoader
|
|
5
|
+
class CSVLoader < Core::RegisterMap::Loader
|
|
6
|
+
include SpreadsheetLoader
|
|
7
|
+
|
|
8
|
+
support_types [:csv]
|
|
9
|
+
|
|
10
|
+
def read_spreadsheet(file, book)
|
|
11
|
+
sheet = read_csv(file)
|
|
12
|
+
sheet_name = File.basename(file, '.*')
|
|
13
|
+
book.add_sheet(sheet_name, sheet)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def read_csv(file)
|
|
19
|
+
require 'csv'
|
|
20
|
+
CSV.read(file)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -5,16 +5,24 @@ module RgGen
|
|
|
5
5
|
class RooLoader < Core::RegisterMap::Loader
|
|
6
6
|
include SpreadsheetLoader
|
|
7
7
|
|
|
8
|
-
support_types [:xlsx, :
|
|
8
|
+
support_types [:xlsx, :ods]
|
|
9
9
|
|
|
10
10
|
def read_spreadsheet(file, book)
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
read_roo(file) do |pagename, page|
|
|
12
|
+
book.add_sheet(pagename, collect_cells(page))
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
private
|
|
17
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
|
+
|
|
18
26
|
def collect_cells(page)
|
|
19
27
|
(1..page.last_row).map do |row|
|
|
20
28
|
(1..page.last_column).map { |column| page.cell(row, column) }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RgGen
|
|
4
|
+
module SpreadsheetLoader
|
|
5
|
+
class XLSLoader < Core::RegisterMap::Loader
|
|
6
|
+
include SpreadsheetLoader
|
|
7
|
+
|
|
8
|
+
support_types [:xls]
|
|
9
|
+
|
|
10
|
+
def read_spreadsheet(file, book)
|
|
11
|
+
read_xls(file).each do |sheet|
|
|
12
|
+
book.add_sheet(sheet.name, sheet.rows)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def read_xls(file)
|
|
19
|
+
require 'spreadsheet'
|
|
20
|
+
::Spreadsheet.open(file, 'rb') do |book|
|
|
21
|
+
book.worksheets.select { |sheet| sheet.row_count.positive? }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rggen-spreadsheet-loader
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.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:
|
|
11
|
+
date: 2020-02-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: nokogiri
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 1.11.0.a
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 1.11.0.a
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: roo
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -25,19 +39,19 @@ dependencies:
|
|
|
25
39
|
- !ruby/object:Gem::Version
|
|
26
40
|
version: '2.8'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
42
|
+
name: spreadsheet
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
30
44
|
requirements:
|
|
31
45
|
- - ">="
|
|
32
46
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
47
|
+
version: 1.2.5
|
|
34
48
|
type: :runtime
|
|
35
49
|
prerelease: false
|
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
51
|
requirements:
|
|
38
52
|
- - ">="
|
|
39
53
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
54
|
+
version: 1.2.5
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: bundler
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -63,6 +77,7 @@ files:
|
|
|
63
77
|
- LICENSE
|
|
64
78
|
- README.md
|
|
65
79
|
- lib/rggen/spreadsheet_loader.rb
|
|
80
|
+
- lib/rggen/spreadsheet_loader/csv_loader.rb
|
|
66
81
|
- lib/rggen/spreadsheet_loader/roo_loader.rb
|
|
67
82
|
- lib/rggen/spreadsheet_loader/setup.rb
|
|
68
83
|
- lib/rggen/spreadsheet_loader/spreadsheet/book.rb
|
|
@@ -72,6 +87,7 @@ files:
|
|
|
72
87
|
- lib/rggen/spreadsheet_loader/spreadsheet/sheet.rb
|
|
73
88
|
- lib/rggen/spreadsheet_loader/spreadsheet_loader.rb
|
|
74
89
|
- lib/rggen/spreadsheet_loader/version.rb
|
|
90
|
+
- lib/rggen/spreadsheet_loader/xls_loader.rb
|
|
75
91
|
homepage: https://github.com/rggen/rggen-spreadsheet-loader
|
|
76
92
|
licenses:
|
|
77
93
|
- MIT
|
|
@@ -88,15 +104,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
88
104
|
requirements:
|
|
89
105
|
- - ">="
|
|
90
106
|
- !ruby/object:Gem::Version
|
|
91
|
-
version: '2.
|
|
107
|
+
version: '2.4'
|
|
92
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
109
|
requirements:
|
|
94
110
|
- - ">="
|
|
95
111
|
- !ruby/object:Gem::Version
|
|
96
112
|
version: '0'
|
|
97
113
|
requirements: []
|
|
98
|
-
rubygems_version: 3.
|
|
114
|
+
rubygems_version: 3.1.2
|
|
99
115
|
signing_key:
|
|
100
116
|
specification_version: 4
|
|
101
|
-
summary: rggen-spreadsheet-loader-0.
|
|
117
|
+
summary: rggen-spreadsheet-loader-0.15.0
|
|
102
118
|
test_files: []
|