recite_csv 1.0.0 → 2.0.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: 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: []