kandata 0.3.4 → 0.4.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: cce31248599ba4f0ecc236eabd1122f3b5f91cbcce5ecfd7d6b3e6d66b401f72
4
- data.tar.gz: b65849a8209981f64c50a56d69b63d412bae0d8578e870f40d23cb88861b1670
3
+ metadata.gz: 2f3d863acb9605090ab1242e8f4ea5c4426f16d00d0ddc68db2435010ad2ee70
4
+ data.tar.gz: 47043a6fef183709ad0a9e0e6fe0ea482d45cb7ea4111c1647996d03551cc858
5
5
  SHA512:
6
- metadata.gz: 82c4e5d4eb67200eb1108163a9030c6d4a7911b7bfe0535bba60d364fee7ff024d9be9a352a7dc2e56aeaf7042425b0eb7900a17517bd217a45ac2183d605ada
7
- data.tar.gz: cebc829645fb22d8275160b99cbad7ed02df971bf00ed1bcbe634b83f484444a70c5ac8d34523c29a308d837ec6b926dee4bb8be794199a0bd4bf3735880d6c0
6
+ metadata.gz: 284e1aa98ba6358b2511ccaeb426c1f1a05994c73b05bf47e3e1a9cbf769c4bfb724842ca4bc02d7dc88101be7b90adc5744712d6e61ae2a8094658a6175669e
7
+ data.tar.gz: 9373e9091c00712f81e2122aa8ae494923512920476f9234b624e1bc619c269f23c79c205e8ade0823b4861192c49377be4ae7928638b3a8554fcf478a7cbc83
data/.circleci/config.yml CHANGED
@@ -27,7 +27,7 @@ jobs:
27
27
  # To see the list of pre-built images that CircleCI provides for most common languages see
28
28
  # https://circleci.com/docs/2.0/circleci-images/
29
29
  docker:
30
- - image: cimg/ruby:2.7.6
30
+ - image: cimg/ruby:3.3
31
31
  environment:
32
32
  LANG: ja_JP.UTF-8
33
33
  LC_ALL: en_US.UTF-8
@@ -59,8 +59,8 @@ jobs:
59
59
  - v1-dep-
60
60
  # The following line was run implicitly in your 1.0 builds based on what CircleCI inferred about the structure of your project. In 2.0 you need to be explicit about which commands should be run. In some cases you can discard inferred commands if they are not relevant to your project.
61
61
  - run: echo -e "export RAILS_ENV=test\nexport RACK_ENV=test" >> $BASH_ENV
62
- - run: 'bundle check --path=vendor/bundle || bundle install --path=vendor/bundle
63
- --jobs=4 --retry=3 '
62
+ - run: bundle config set path vendor/bundle
63
+ - run: bundle check || bundle install --jobs=4 --retry=3
64
64
  # Save dependency cache
65
65
  - save_cache:
66
66
  key: v1-dep-{{ .Branch }}-{{ epoch }}
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.7
2
+ TargetRubyVersion: 3.0
3
3
  Exclude:
4
4
  - 'vendor/**/*'
5
5
  - 'bin/**/*'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.6
1
+ 3.3.7
data/Gemfile CHANGED
@@ -6,9 +6,6 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
  # Specify your gem's dependencies in kandata.gemspec
7
7
  gemspec
8
8
 
9
- # ffi >= 1.17 は Ruby 3.0 以上を要求するため、Ruby 2.7 との互換性のためバージョンを固定
10
- gem 'ffi', '~> 1.16.0'
11
-
12
9
  group :development do
13
10
  gem 'guard'
14
11
  gem 'guard-rspec'
data/Guardfile CHANGED
@@ -16,7 +16,7 @@
16
16
  #
17
17
  # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
18
18
 
19
- # Note: The cmd option is now required due to the increasing number of ways
19
+ # NOTE: The cmd option is now required due to the increasing number of ways
20
20
  # rspec may be run, below are examples of the most common uses.
21
21
  # * bundler: 'bundle exec rspec'
22
22
  # * bundler binstubs: 'bin/rspec'
data/exe/kandata CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
- require 'kandata.rb'
3
+ require 'kandata'
4
4
 
5
5
  Kandata::CLI.start
data/kandata.gemspec CHANGED
@@ -1,17 +1,25 @@
1
-
2
1
  # frozen_string_literal: true
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'kandata/version'
2
+
3
+ # NOTE: require 'kandata/version' してしまうと、
4
+ # bundler/setup 経由で spec_helper より先に lib/kandata/version.rb が
5
+ # load されてしまい、simplecov のカバレッジ計測対象から漏れる。
6
+ # そのため version 文字列はファイルから直接抜き出している。
7
+ version_file = File.expand_path('lib/kandata/version.rb', __dir__)
8
+ version_match = File.read(version_file).match(/VERSION\s*=\s*['"]([^'"]+)['"]/)
9
+ raise "Failed to extract VERSION from #{version_file}" unless version_match
10
+
11
+ version = version_match[1]
6
12
 
7
13
  Gem::Specification.new do |spec|
8
14
  spec.name = 'kandata'
9
- spec.version = Kandata::VERSION
15
+ spec.version = version
10
16
  spec.authors = ['Yuya TAMANO']
11
17
  spec.email = ['everfree.main@gmail.com']
12
18
 
13
19
  spec.summary = 'Provides function to import TSV file to MySQL table without create table DDL'
14
20
  spec.homepage = 'https://github.com/tamano/kandata'
21
+ spec.license = nil
22
+ spec.required_ruby_version = '>= 3.0'
15
23
 
16
24
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
25
  f.match(%r{^(test|spec|features)/})
@@ -20,14 +28,15 @@ Gem::Specification.new do |spec|
20
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
29
  spec.require_paths = ['lib']
22
30
 
23
- spec.add_development_dependency 'bundler', '>= 1.16'
31
+ spec.add_development_dependency 'bundler', '>= 2.0', '< 5.0'
24
32
  spec.add_development_dependency 'rake', '~> 10.0'
25
- spec.add_development_dependency 'reek'
33
+ spec.add_development_dependency 'reek', '~> 6.0'
26
34
  spec.add_development_dependency 'rspec', '~> 3.0'
27
- spec.add_development_dependency 'rubocop', '>= 0.52'
28
- spec.add_development_dependency 'simplecov'
35
+ spec.add_development_dependency 'rubocop', '~> 1.0'
36
+ spec.add_development_dependency 'simplecov', '>= 0.22', '< 1.0'
29
37
 
30
- spec.add_dependency 'activerecord'
31
- spec.add_dependency 'mysql2'
32
- spec.add_dependency 'thor'
38
+ spec.add_dependency 'activerecord', '>= 6.0', '< 9.0'
39
+ spec.add_dependency 'mysql2', '~> 0.5'
40
+ spec.add_dependency 'nkf', '~> 0.2'
41
+ spec.add_dependency 'thor', '~> 1.0'
33
42
  end
@@ -5,8 +5,8 @@ class Kandata
5
5
  class ActiveRecord < ActiveRecord::Base
6
6
  def self.connect
7
7
  establish_connection(
8
- adapter: 'mysql2',
9
- host: Kandata::Database::ConnectionInfo.host,
8
+ adapter: 'mysql2',
9
+ host: Kandata::Database::ConnectionInfo.host,
10
10
  username: Kandata::Database::ConnectionInfo.user_name,
11
11
  database: Kandata::Database::ConnectionInfo.database_name
12
12
  )
data/lib/kandata/cli.rb CHANGED
@@ -13,8 +13,8 @@ class Kandata
13
13
  method_option :force, type: :boolean, aliases: '-f', default: false, desc: '既にテーブルがある場合、一度削除して作成し直す'
14
14
  def load_tsv(filename)
15
15
  puts Kandata.load_tsv(filename, options['force'])
16
- rescue StandardError => error
17
- puts "ERROR: #{error.message}"
16
+ rescue StandardError => e
17
+ puts "ERROR: #{e.message}"
18
18
  end
19
19
  end
20
20
  end
@@ -34,9 +34,12 @@ class Kandata
34
34
 
35
35
  begin
36
36
  client.query("SHOW CREATE DATABASE `#{database_name}`")
37
- rescue Mysql2::Error => error
38
- raise error unless error.message == "Unknown database '#{database_name}'"
37
+ rescue Mysql2::Error => e
38
+ raise e unless e.message == "Unknown database '#{database_name}'"
39
+
39
40
  client.query("CREATE DATABASE `#{database_name}`")
41
+ ensure
42
+ client.close
40
43
  end
41
44
  end
42
45
 
@@ -51,7 +54,7 @@ class Kandata
51
54
  columns.delete('id')
52
55
 
53
56
  columns_text = columns.map { |column| "#{column} TEXT" }.join(',')
54
- columns_text = 'id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,' + columns_text
57
+ columns_text = "id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,#{columns_text}"
55
58
 
56
59
  query("CREATE TABLE `#{database_name}`.`#{table_name}` (#{columns_text})")
57
60
  end
@@ -24,6 +24,7 @@ class Kandata
24
24
 
25
25
  def validate_table_name
26
26
  raise 'テーブル名に使用できないファイル名です' unless @table_name.match?(/^[0-9a-zA-Z$_]+$/)
27
+
27
28
  true
28
29
  end
29
30
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  class Kandata
3
- VERSION = '0.3.4'
3
+ VERSION = '0.4.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kandata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuya TAMANO
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-14 00:00:00.000000000 Z
11
+ date: 2026-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '1.16'
29
+ version: '2.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +48,16 @@ dependencies:
42
48
  name: reek
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ">="
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0'
53
+ version: '6.0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
58
+ - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '0'
60
+ version: '6.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rspec
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -70,73 +76,99 @@ dependencies:
70
76
  name: rubocop
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ">="
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0.52'
81
+ version: '1.0'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ">="
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '0.52'
88
+ version: '1.0'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: simplecov
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - ">="
88
94
  - !ruby/object:Gem::Version
89
- version: '0'
95
+ version: '0.22'
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.0'
90
99
  type: :development
91
100
  prerelease: false
92
101
  version_requirements: !ruby/object:Gem::Requirement
93
102
  requirements:
94
103
  - - ">="
95
104
  - !ruby/object:Gem::Version
96
- version: '0'
105
+ version: '0.22'
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.0'
97
109
  - !ruby/object:Gem::Dependency
98
110
  name: activerecord
99
111
  requirement: !ruby/object:Gem::Requirement
100
112
  requirements:
101
113
  - - ">="
102
114
  - !ruby/object:Gem::Version
103
- version: '0'
115
+ version: '6.0'
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '9.0'
104
119
  type: :runtime
105
120
  prerelease: false
106
121
  version_requirements: !ruby/object:Gem::Requirement
107
122
  requirements:
108
123
  - - ">="
109
124
  - !ruby/object:Gem::Version
110
- version: '0'
125
+ version: '6.0'
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '9.0'
111
129
  - !ruby/object:Gem::Dependency
112
130
  name: mysql2
113
131
  requirement: !ruby/object:Gem::Requirement
114
132
  requirements:
115
- - - ">="
133
+ - - "~>"
116
134
  - !ruby/object:Gem::Version
117
- version: '0'
135
+ version: '0.5'
118
136
  type: :runtime
119
137
  prerelease: false
120
138
  version_requirements: !ruby/object:Gem::Requirement
121
139
  requirements:
122
- - - ">="
140
+ - - "~>"
123
141
  - !ruby/object:Gem::Version
124
- version: '0'
142
+ version: '0.5'
143
+ - !ruby/object:Gem::Dependency
144
+ name: nkf
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '0.2'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '0.2'
125
157
  - !ruby/object:Gem::Dependency
126
158
  name: thor
127
159
  requirement: !ruby/object:Gem::Requirement
128
160
  requirements:
129
- - - ">="
161
+ - - "~>"
130
162
  - !ruby/object:Gem::Version
131
- version: '0'
163
+ version: '1.0'
132
164
  type: :runtime
133
165
  prerelease: false
134
166
  version_requirements: !ruby/object:Gem::Requirement
135
167
  requirements:
136
- - - ">="
168
+ - - "~>"
137
169
  - !ruby/object:Gem::Version
138
- version: '0'
139
- description:
170
+ version: '1.0'
171
+ description:
140
172
  email:
141
173
  - everfree.main@gmail.com
142
174
  executables:
@@ -169,9 +201,10 @@ files:
169
201
  - lib/kandata/tsv_file.rb
170
202
  - lib/kandata/version.rb
171
203
  homepage: https://github.com/tamano/kandata
172
- licenses: []
204
+ licenses:
205
+ -
173
206
  metadata: {}
174
- post_install_message:
207
+ post_install_message:
175
208
  rdoc_options: []
176
209
  require_paths:
177
210
  - lib
@@ -179,15 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
212
  requirements:
180
213
  - - ">="
181
214
  - !ruby/object:Gem::Version
182
- version: '0'
215
+ version: '3.0'
183
216
  required_rubygems_version: !ruby/object:Gem::Requirement
184
217
  requirements:
185
218
  - - ">="
186
219
  - !ruby/object:Gem::Version
187
220
  version: '0'
188
221
  requirements: []
189
- rubygems_version: 3.1.6
190
- signing_key:
222
+ rubygems_version: 3.5.22
223
+ signing_key:
191
224
  specification_version: 4
192
225
  summary: Provides function to import TSV file to MySQL table without create table
193
226
  DDL