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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe272aa5aa9a72883605247ecf1342b1acf3d7d313b4e3e3e7353f8c2a72b03a
4
- data.tar.gz: 5f5e3b4164f967a3739359f57e977d0fae76c16f69c020bee8d201c9d8104eef
3
+ metadata.gz: 7856ba69aba4ae38374fe772d450d1f8b10ac594c34b45aa9a4ffa6abc0e77d2
4
+ data.tar.gz: 93e1c030d725f6a64c6a43718e504c0bdd9f7ecad311f73b1ddd95be3e849206
5
5
  SHA512:
6
- metadata.gz: 874bcd8653c2ce94dd185e6e18444e8f987edce54385036e8dfb3e22f68ee5fad38d6b4bce3bf59e2e64bf1291c602973a84990f08c8d1d601e71919349a3c0a
7
- data.tar.gz: fc16cd5baeaf19a86d1f0db152508d479147f87b581dff564736feea3f71734f5b78ca67db4252b744c6b3d7287e10ebad2731b7d513611eb03284565df15460
6
+ metadata.gz: 43af3f850cb9b89add2a5df580f71844ab017b9f27a64d10803934d838258643eb83c6bd6439f5cafbf29d87c8f1a399b3f3d5de301c756fb64cd9ea513f9bf3
7
+ data.tar.gz: 6ffc06e90fd24cd16672f37ccb7f7210cafb5c89c53aff96606a0b390316c871d96096db472ee61442f4db0abbd90523e27ef0f1caf6c4a1ee34d143d3e82cba
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019 Taichi Ishitani
3
+ Copyright (c) 2019-2020 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
@@ -1,5 +1,5 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/rggen-spreadsheet-loader.svg)](https://badge.fury.io/rb/rggen-spreadsheet-loader)
2
- [![Build Status](https://travis-ci.com/rggen/rggen-spreadsheet-loader.svg?branch=master)](https://travis-ci.com/rggen/rggen-spreadsheet-loader)
2
+ [![CI](https://github.com/rggen/rggen-spreadsheet-loader/workflows/CI/badge.svg)](https://github.com/rggen/rggen-spreadsheet-loader/actions?query=workflow%3ACI)
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/7a4090f4a7c21d29036c/maintainability)](https://codeclimate.com/github/rggen/rggen-spreadsheet-loader/maintainability)
4
4
  [![codecov](https://codecov.io/gh/rggen/rggen-spreadsheet-loader/branch/master/graph/badge.svg)](https://codecov.io/gh/rggen/rggen-spreadsheet-loader)
5
5
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=rggen_rggen-spreadsheet-loader&metric=alert_status)](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, :xls, :ods, :csv]
8
+ support_types [:xlsx, :ods]
9
9
 
10
10
  def read_spreadsheet(file, book)
11
- Roo::Spreadsheet.open(file).each_with_pagename do |pagename, page|
12
- page.first_row && book.add_sheet(pagename, collect_cells(page))
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) }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module SpreadsheetLoader
5
- VERSION = '0.14.0'
5
+ VERSION = '0.15.0'
6
6
  end
7
7
  end
@@ -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.14.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: 2019-09-18 00:00:00.000000000 Z
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: roo-xls
42
+ name: spreadsheet
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.2'
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: '1.2'
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.3'
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.0.3
114
+ rubygems_version: 3.1.2
99
115
  signing_key:
100
116
  specification_version: 4
101
- summary: rggen-spreadsheet-loader-0.14.0
117
+ summary: rggen-spreadsheet-loader-0.15.0
102
118
  test_files: []