rggen-spreadsheet-loader 0.14.0 → 0.15.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: 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: []