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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef71d0d0cb4c4a24e91f11642751e533417d81d7886f19a68a7224e472f9014a
4
- data.tar.gz: 067c533aef4872eeea47fe649c4e8378a66c81978589fbb3daa299c0a258f982
3
+ metadata.gz: c298ef2aa39df7011b9d1afc8c560f3dd592a50a19ec0263eedab8161ccb5862
4
+ data.tar.gz: 898cc5881c87e69528cb6f5f0706f0ea7b06f53b135c749b1659257b90f4c308
5
5
  SHA512:
6
- metadata.gz: 1142035d29d3b657f67cee1758b39bbb34cc65ad9e7e01e69e8b7cf1ddeef113c5cc7ef42e5b559e1dad3aa874b838d976f8d4ad2603a2e3ebe469120478e71b
7
- data.tar.gz: ffe518f0b2006053eb89cb143410996fc3b8fe68fa327dfe7ce7a2d3a00bdd45916de08228f23091cbcfba31406f7cfe87092b172657f41b710e44e1e6a148d2
6
+ metadata.gz: e60318a166eb1cf3ee24985768160abae268ce240bf4c14ffa746cf036182913b8dd7e5b9831b68c62420d39af26517eabf2b9e0e52a0fb06491badeef78e166
7
+ data.tar.gz: f1a8a86af8299d4ff2344bc44460457bd00f094b36e8d71ade70ea09c4511966cdce2c2bd219eec99cc17259116d76fd03ee043e26f2533d872e63b40c4650a5
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
File without changes
File without changes
@@ -1,8 +1,9 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.6
5
- - 2.5.5
6
- - 2.6.3
4
+ - 2.4.9
5
+ - 2.5.7
6
+ - 2.6.5
7
+ - 2.7.0
7
8
  script:
8
9
  - bundle exec rake spec
@@ -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
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017-2019 Yuji Hanamura
3
+ Copyright (c) 2017-2020 Yuji Hanamura
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,6 +1,7 @@
1
1
  # ReciteCSV
2
2
 
3
- ReciteCSV helps to build a class for CSV reader.
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
  [![Gem Version](https://badge.fury.io/rb/recite_csv.svg)](https://badge.fury.io/rb/recite_csv)
6
7
  [![Build Status](https://travis-ci.org/yujideveloper/recite_csv.svg?branch=master)](https://travis-ci.org/yujideveloper/recite_csv)
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
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, options = {})
12
+ def initialize(file, file_options: {}, **options)
13
13
  @file = file
14
- @file_options = options.delete(: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 = if self.file.is_a?(::String)
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
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReciteCSV
4
- VERSION = "1.0.0"
4
+ VERSION = "2.0.0"
5
5
  end
@@ -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 helps to build a class for CSV reader."
14
- spec.description = "ReciteCSV helps to build a class for CSV reader."
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.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.match(%r{^(test|spec|features)/})
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", "~> 10.0"
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: 1.0.0
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: 2019-05-29 00:00:00.000000000 Z
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 helps to build a class for CSV reader.
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.0.3
153
+ rubygems_version: 3.1.2
147
154
  signing_key:
148
155
  specification_version: 4
149
- summary: ReciteCSV helps to build a class for CSV reader.
156
+ summary: ReciteCSV assists to implement a class for CSV reader.
150
157
  test_files: []