recite_csv 1.0.0 → 2.0.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/.gitignore +0 -0
- data/.rspec +0 -0
- data/.rubocop.yml +0 -0
- data/.travis.yml +4 -3
- data/CHANGELOG.md +14 -0
- data/Gemfile +0 -0
- data/LICENSE.txt +1 -1
- data/README.md +2 -1
- data/Rakefile +0 -0
- data/lib/recite_csv.rb +0 -0
- data/lib/recite_csv/header.rb +0 -0
- data/lib/recite_csv/header/definition.rb +0 -0
- data/lib/recite_csv/module.rb +0 -0
- data/lib/recite_csv/reader.rb +0 -0
- data/lib/recite_csv/reader/builder.rb +0 -0
- data/lib/recite_csv/reader/core.rb +19 -10
- data/lib/recite_csv/reader/dsl.rb +0 -0
- data/lib/recite_csv/row.rb +0 -0
- data/lib/recite_csv/row/base.rb +0 -0
- data/lib/recite_csv/version.rb +1 -1
- data/recite_csv.gemspec +16 -6
- metadata +15 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c298ef2aa39df7011b9d1afc8c560f3dd592a50a19ec0263eedab8161ccb5862
|
4
|
+
data.tar.gz: 898cc5881c87e69528cb6f5f0706f0ea7b06f53b135c749b1659257b90f4c308
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e60318a166eb1cf3ee24985768160abae268ce240bf4c14ffa746cf036182913b8dd7e5b9831b68c62420d39af26517eabf2b9e0e52a0fb06491badeef78e166
|
7
|
+
data.tar.gz: f1a8a86af8299d4ff2344bc44460457bd00f094b36e8d71ade70ea09c4511966cdce2c2bd219eec99cc17259116d76fd03ee043e26f2533d872e63b40c4650a5
|
data/.gitignore
CHANGED
File without changes
|
data/.rspec
CHANGED
File without changes
|
data/.rubocop.yml
CHANGED
File without changes
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 2.0.0 (2020-01-09)
|
4
|
+
|
5
|
+
### Breaking changes
|
6
|
+
|
7
|
+
* Chagne `Reader::Core#each` to return a receiver itself
|
8
|
+
|
9
|
+
### Changes
|
10
|
+
|
11
|
+
* Suppress warnings of keyword arguments in Ruby 2.7
|
12
|
+
|
13
|
+
### Misc
|
14
|
+
|
15
|
+
* Update gem metadata
|
16
|
+
|
3
17
|
|
4
18
|
## 1.0.0 (2019-05-29)
|
5
19
|
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# ReciteCSV
|
2
2
|
|
3
|
-
ReciteCSV
|
3
|
+
ReciteCSV assists to implement a class for CSV reader.
|
4
|
+
A reader class implemented by ReciteCSV iterate each row as PORO(Plain Old Ruby Object).
|
4
5
|
|
5
6
|
[](https://badge.fury.io/rb/recite_csv)
|
6
7
|
[](https://travis-ci.org/yujideveloper/recite_csv)
|
data/Rakefile
CHANGED
File without changes
|
data/lib/recite_csv.rb
CHANGED
File without changes
|
data/lib/recite_csv/header.rb
CHANGED
File without changes
|
File without changes
|
data/lib/recite_csv/module.rb
CHANGED
File without changes
|
data/lib/recite_csv/reader.rb
CHANGED
File without changes
|
File without changes
|
@@ -9,11 +9,10 @@ module ReciteCSV
|
|
9
9
|
|
10
10
|
attr_reader :file, :file_options, :csv_options
|
11
11
|
|
12
|
-
def initialize(file,
|
12
|
+
def initialize(file, file_options: {}, **options)
|
13
13
|
@file = file
|
14
|
-
@file_options =
|
15
|
-
@csv_options =
|
16
|
-
(options || {}).merge(self.class::DEFAULT_CSV_OPTIONS)
|
14
|
+
@file_options = file_options
|
15
|
+
@csv_options = options.merge(self.class::DEFAULT_CSV_OPTIONS)
|
17
16
|
end
|
18
17
|
|
19
18
|
def each(&block)
|
@@ -27,11 +26,7 @@ module ReciteCSV
|
|
27
26
|
private
|
28
27
|
|
29
28
|
def _each(&block)
|
30
|
-
f =
|
31
|
-
::File.open(self.file, *Array(self.file_options))
|
32
|
-
else
|
33
|
-
self.file
|
34
|
-
end
|
29
|
+
f = _open
|
35
30
|
begin
|
36
31
|
_foreach(f, &block)
|
37
32
|
ensure
|
@@ -39,10 +34,24 @@ module ReciteCSV
|
|
39
34
|
end
|
40
35
|
end
|
41
36
|
|
37
|
+
def _open
|
38
|
+
return self.file unless self.file.is_a?(::String)
|
39
|
+
|
40
|
+
args = Array(self.file_options)
|
41
|
+
if args.last.is_a?(::Hash)
|
42
|
+
args = args.dup
|
43
|
+
kw_args = args.pop
|
44
|
+
::File.open(self.file, *args, **kw_args)
|
45
|
+
else
|
46
|
+
::File.open(self.file, *args)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
42
50
|
def _foreach(file)
|
43
|
-
::CSV.new(file, self.csv_options).each do |raw_row|
|
51
|
+
::CSV.new(file, **self.csv_options).each do |raw_row|
|
44
52
|
yield self.class::Row.new(raw_row)
|
45
53
|
end
|
54
|
+
self
|
46
55
|
end
|
47
56
|
end
|
48
57
|
end
|
File without changes
|
data/lib/recite_csv/row.rb
CHANGED
File without changes
|
data/lib/recite_csv/row/base.rb
CHANGED
File without changes
|
data/lib/recite_csv/version.rb
CHANGED
data/recite_csv.gemspec
CHANGED
@@ -4,19 +4,29 @@ lib = File.expand_path("lib", __dir__)
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require "recite_csv/version"
|
6
6
|
|
7
|
-
Gem::Specification.new do |spec|
|
7
|
+
Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
8
8
|
spec.name = "recite_csv"
|
9
9
|
spec.version = ReciteCSV::VERSION
|
10
10
|
spec.authors = ["Yuji Hanamura"]
|
11
11
|
spec.email = ["yuji.developer@gmail.com"]
|
12
12
|
|
13
|
-
spec.summary = "ReciteCSV
|
14
|
-
spec.description =
|
13
|
+
spec.summary = "ReciteCSV assists to implement a class for CSV reader."
|
14
|
+
spec.description = <<~DESCRIPTION
|
15
|
+
ReciteCSV assists to implement a class for CSV reader. A reader class implemented by ReciteCSV iterate each row as PORO(Plain Old Ruby Object).
|
16
|
+
DESCRIPTION
|
15
17
|
spec.homepage = "https://github.com/yujideveloper/recite_csv"
|
16
18
|
spec.license = "MIT"
|
17
19
|
|
18
|
-
spec.
|
19
|
-
|
20
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
21
|
+
|
22
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
23
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
24
|
+
spec.metadata["changelog_uri"] = "https://github.com/yujideveloper/recite_csv/tree/master/CHANGELOG.md"
|
25
|
+
|
26
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
27
|
+
`git ls-files -z`
|
28
|
+
.split("\x0")
|
29
|
+
.reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
30
|
end
|
21
31
|
spec.bindir = "exe"
|
22
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
@@ -26,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
26
36
|
|
27
37
|
spec.add_development_dependency "bundler", ">= 1.14"
|
28
38
|
spec.add_development_dependency "pry", ">= 0.10.0"
|
29
|
-
spec.add_development_dependency "rake", "
|
39
|
+
spec.add_development_dependency "rake", ">= 10.0"
|
30
40
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
41
|
spec.add_development_dependency "rubocop", ">= 0.70.0"
|
32
42
|
spec.add_development_dependency "rubocop-performance", ">= 1.3.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recite_csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Hanamura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,14 +42,14 @@ dependencies:
|
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '10.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -94,7 +94,10 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.3.0
|
97
|
-
description: ReciteCSV
|
97
|
+
description: 'ReciteCSV assists to implement a class for CSV reader. A reader class
|
98
|
+
implemented by ReciteCSV iterate each row as PORO(Plain Old Ruby Object).
|
99
|
+
|
100
|
+
'
|
98
101
|
email:
|
99
102
|
- yuji.developer@gmail.com
|
100
103
|
executables: []
|
@@ -127,7 +130,11 @@ files:
|
|
127
130
|
homepage: https://github.com/yujideveloper/recite_csv
|
128
131
|
licenses:
|
129
132
|
- MIT
|
130
|
-
metadata:
|
133
|
+
metadata:
|
134
|
+
allowed_push_host: https://rubygems.org
|
135
|
+
homepage_uri: https://github.com/yujideveloper/recite_csv
|
136
|
+
source_code_uri: https://github.com/yujideveloper/recite_csv
|
137
|
+
changelog_uri: https://github.com/yujideveloper/recite_csv/tree/master/CHANGELOG.md
|
131
138
|
post_install_message:
|
132
139
|
rdoc_options: []
|
133
140
|
require_paths:
|
@@ -143,8 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
150
|
- !ruby/object:Gem::Version
|
144
151
|
version: '0'
|
145
152
|
requirements: []
|
146
|
-
rubygems_version: 3.
|
153
|
+
rubygems_version: 3.1.2
|
147
154
|
signing_key:
|
148
155
|
specification_version: 4
|
149
|
-
summary: ReciteCSV
|
156
|
+
summary: ReciteCSV assists to implement a class for CSV reader.
|
150
157
|
test_files: []
|