masking 1.1.0 → 1.1.2.pre.alpha
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/.circleci/config.yml +9 -4
- data/.github/workflows/acceptance_test_mariadb.yml +57 -1
- data/.github/workflows/acceptance_test_mysql.yml +1 -1
- data/.rubocop.yml +7 -1
- data/.rubocop_todo.yml +105 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +19 -0
- data/CODEOWNERS +1 -0
- data/Dockerfile +5 -3
- data/Dockerfile.ghcr +10 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +67 -51
- data/README.md +38 -26
- data/acceptance/expected_error_result.txt +2 -0
- data/acceptance/expected_query_result.txt +36 -30
- data/acceptance/import_dumpfile.sql +3 -1
- data/acceptance/masking.yml +2 -0
- data/acceptance/run_test.sh +18 -6
- data/docker-compose/mariadb1010.yml +17 -0
- data/docker-compose/mariadb1011.yml +17 -0
- data/docker-compose/mariadb105.yml +17 -0
- data/docker-compose/mariadb106.yml +17 -0
- data/docker-compose/mariadb107.yml +17 -0
- data/docker-compose/mariadb108.yml +17 -0
- data/docker-compose/mariadb109.yml +17 -0
- data/lib/masking/cli/error_message.rb +16 -9
- data/lib/masking/config/target_columns/column.rb +19 -5
- data/lib/masking/config/target_columns/method/string_binary_distinctor.rb +3 -3
- data/lib/masking/config/target_columns/method/type/base.rb +25 -0
- data/lib/masking/config/target_columns/method/type/binary.rb +19 -0
- data/lib/masking/config/target_columns/method/type/boolean.rb +27 -0
- data/lib/masking/config/target_columns/method/type/date.rb +28 -0
- data/lib/masking/config/target_columns/method/type/extension/ignore_null.rb +24 -0
- data/lib/masking/config/target_columns/method/type/float.rb +19 -0
- data/lib/masking/config/target_columns/method/type/integer.rb +19 -0
- data/lib/masking/config/target_columns/method/{null.rb → type/null.rb} +5 -5
- data/lib/masking/config/target_columns/method/type/string.rb +37 -0
- data/lib/masking/config/target_columns/method/type/time.rb +26 -0
- data/lib/masking/config/target_columns/method.rb +14 -10
- data/lib/masking/insert_statement/sql_builder.rb +2 -2
- data/lib/masking/insert_statement.rb +1 -1
- data/lib/masking/sql_dump_line.rb +1 -0
- data/lib/masking/version.rb +1 -1
- data/masking.gemspec +1 -18
- metadata +29 -184
- data/lib/masking/cli/error_messages.yml +0 -10
- data/lib/masking/config/target_columns/method/binary.rb +0 -23
- data/lib/masking/config/target_columns/method/boolean.rb +0 -29
- data/lib/masking/config/target_columns/method/date.rb +0 -30
- data/lib/masking/config/target_columns/method/float.rb +0 -23
- data/lib/masking/config/target_columns/method/integer.rb +0 -23
- data/lib/masking/config/target_columns/method/string.rb +0 -33
- data/lib/masking/config/target_columns/method/time.rb +0 -28
@@ -18,11 +18,11 @@ module Masking
|
|
18
18
|
attr_reader :table, :columns, :values
|
19
19
|
|
20
20
|
def columns_section
|
21
|
-
'(' + columns.map { |column| "`#{column}`" }.join(', ') + ')'
|
21
|
+
'(' + columns.map { |column| "`#{column}`" }.join(', ') + ')' # rubocop:disable Style/StringConcatenation
|
22
22
|
end
|
23
23
|
|
24
24
|
def values_section
|
25
|
-
values.map { |value|
|
25
|
+
values.map { |value| "(#{value.join(',')})" }.join(',')
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
data/lib/masking/version.rb
CHANGED
data/masking.gemspec
CHANGED
@@ -25,22 +25,5 @@ Gem::Specification.new do |spec|
|
|
25
25
|
|
26
26
|
spec.required_ruby_version = '>= 2.6'
|
27
27
|
|
28
|
-
spec.
|
29
|
-
spec.add_development_dependency 'rake'
|
30
|
-
spec.add_development_dependency 'rake-notes'
|
31
|
-
spec.add_development_dependency 'ruby-prof'
|
32
|
-
|
33
|
-
# linter/static analyzer
|
34
|
-
spec.add_development_dependency 'mdl'
|
35
|
-
spec.add_development_dependency 'rubocop'
|
36
|
-
|
37
|
-
# test
|
38
|
-
spec.add_development_dependency 'codecov'
|
39
|
-
spec.add_development_dependency 'rspec'
|
40
|
-
spec.add_development_dependency 'simplecov'
|
41
|
-
|
42
|
-
# debug
|
43
|
-
spec.add_development_dependency 'pry'
|
44
|
-
spec.add_development_dependency 'pry-byebug'
|
45
|
-
spec.add_development_dependency 'tapp'
|
28
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
46
29
|
end
|
metadata
CHANGED
@@ -1,183 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: masking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2.pre.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chikahiro Tokoro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake-notes
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: ruby-prof
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: mdl
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rubocop
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: codecov
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: simplecov
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: pry
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: pry-byebug
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: tapp
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
11
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
181
13
|
description: Command line tool for anonymizing database records by parsing a SQL dump
|
182
14
|
file and build new SQL dump file with masking sensitive/credential data.
|
183
15
|
email:
|
@@ -196,15 +28,19 @@ files:
|
|
196
28
|
- ".gitignore"
|
197
29
|
- ".mdlrc"
|
198
30
|
- ".rubocop.yml"
|
31
|
+
- ".rubocop_todo.yml"
|
199
32
|
- ".ruby-version"
|
200
33
|
- CHANGELOG.md
|
34
|
+
- CODEOWNERS
|
201
35
|
- CODE_OF_CONDUCT.md
|
202
36
|
- Dockerfile
|
37
|
+
- Dockerfile.ghcr
|
203
38
|
- Gemfile
|
204
39
|
- Gemfile.lock
|
205
40
|
- LICENSE.txt
|
206
41
|
- README.md
|
207
42
|
- Rakefile
|
43
|
+
- acceptance/expected_error_result.txt
|
208
44
|
- acceptance/expected_query_result.txt
|
209
45
|
- acceptance/import_dumpfile.sql
|
210
46
|
- acceptance/masking.yml
|
@@ -223,9 +59,16 @@ files:
|
|
223
59
|
- docker-compose/acceptance_test.sh
|
224
60
|
- docker-compose/mariadb100.yml
|
225
61
|
- docker-compose/mariadb101.yml
|
62
|
+
- docker-compose/mariadb1010.yml
|
63
|
+
- docker-compose/mariadb1011.yml
|
226
64
|
- docker-compose/mariadb102.yml
|
227
65
|
- docker-compose/mariadb103.yml
|
228
66
|
- docker-compose/mariadb104.yml
|
67
|
+
- docker-compose/mariadb105.yml
|
68
|
+
- docker-compose/mariadb106.yml
|
69
|
+
- docker-compose/mariadb107.yml
|
70
|
+
- docker-compose/mariadb108.yml
|
71
|
+
- docker-compose/mariadb109.yml
|
229
72
|
- docker-compose/mariadb55.yml
|
230
73
|
- docker-compose/mysql55.yml
|
231
74
|
- docker-compose/mysql56.yml
|
@@ -236,20 +79,21 @@ files:
|
|
236
79
|
- lib/masking.rb
|
237
80
|
- lib/masking/cli.rb
|
238
81
|
- lib/masking/cli/error_message.rb
|
239
|
-
- lib/masking/cli/error_messages.yml
|
240
82
|
- lib/masking/config.rb
|
241
83
|
- lib/masking/config/target_columns.rb
|
242
84
|
- lib/masking/config/target_columns/column.rb
|
243
85
|
- lib/masking/config/target_columns/method.rb
|
244
|
-
- lib/masking/config/target_columns/method/binary.rb
|
245
|
-
- lib/masking/config/target_columns/method/boolean.rb
|
246
|
-
- lib/masking/config/target_columns/method/date.rb
|
247
|
-
- lib/masking/config/target_columns/method/float.rb
|
248
|
-
- lib/masking/config/target_columns/method/integer.rb
|
249
|
-
- lib/masking/config/target_columns/method/null.rb
|
250
|
-
- lib/masking/config/target_columns/method/string.rb
|
251
86
|
- lib/masking/config/target_columns/method/string_binary_distinctor.rb
|
252
|
-
- lib/masking/config/target_columns/method/
|
87
|
+
- lib/masking/config/target_columns/method/type/base.rb
|
88
|
+
- lib/masking/config/target_columns/method/type/binary.rb
|
89
|
+
- lib/masking/config/target_columns/method/type/boolean.rb
|
90
|
+
- lib/masking/config/target_columns/method/type/date.rb
|
91
|
+
- lib/masking/config/target_columns/method/type/extension/ignore_null.rb
|
92
|
+
- lib/masking/config/target_columns/method/type/float.rb
|
93
|
+
- lib/masking/config/target_columns/method/type/integer.rb
|
94
|
+
- lib/masking/config/target_columns/method/type/null.rb
|
95
|
+
- lib/masking/config/target_columns/method/type/string.rb
|
96
|
+
- lib/masking/config/target_columns/method/type/time.rb
|
253
97
|
- lib/masking/config/target_columns/table.rb
|
254
98
|
- lib/masking/data_mask_processor.rb
|
255
99
|
- lib/masking/data_mask_processor/cache.rb
|
@@ -265,7 +109,8 @@ files:
|
|
265
109
|
homepage: https://github.com/kibitan/masking
|
266
110
|
licenses:
|
267
111
|
- MIT
|
268
|
-
metadata:
|
112
|
+
metadata:
|
113
|
+
rubygems_mfa_required: 'true'
|
269
114
|
post_install_message:
|
270
115
|
rdoc_options: []
|
271
116
|
require_paths:
|
@@ -277,11 +122,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
277
122
|
version: '2.6'
|
278
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
124
|
requirements:
|
280
|
-
- - "
|
125
|
+
- - ">"
|
281
126
|
- !ruby/object:Gem::Version
|
282
|
-
version:
|
127
|
+
version: 1.3.1
|
283
128
|
requirements: []
|
284
|
-
rubygems_version: 3.
|
129
|
+
rubygems_version: 3.4.6
|
285
130
|
signing_key:
|
286
131
|
specification_version: 4
|
287
132
|
summary: Command line tool for anonymizing databese records
|
@@ -1,10 +0,0 @@
|
|
1
|
-
Masking::Error::ConfigFileDoesNotExist:
|
2
|
-
"ERROR: config file (<%= config_file_path %>) does not exist"
|
3
|
-
Masking::Error::ConfigFileIsNotFile:
|
4
|
-
"ERROR: config file (<%= config_file_path %>) is not file"
|
5
|
-
Masking::Error::ConfigFileIsNotValidYaml:
|
6
|
-
"ERROR: config file (<%= config_file_path %>) is not valid yaml format"
|
7
|
-
Masking::Error::ConfigFileContainsNullAsColumnName:
|
8
|
-
"ERROR: config file (<%= config_file_path %>) is not valid, column name contains `null`"
|
9
|
-
Masking::Error::InsertStatementParseError:
|
10
|
-
"ERROR: cannot parse SQL dump file. you may forget to put `--complete-insert` option in mysqldump?"
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class Binary
|
8
|
-
def initialize(value)
|
9
|
-
@binary = value
|
10
|
-
end
|
11
|
-
|
12
|
-
def call
|
13
|
-
"_binary '#{binary}'".b
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :binary
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class Boolean
|
8
|
-
def initialize(value)
|
9
|
-
@boolean = value
|
10
|
-
end
|
11
|
-
|
12
|
-
def call
|
13
|
-
boolean_format.to_s
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :boolean
|
19
|
-
|
20
|
-
# NOTE: 11.1.1 Numeric Type Overview, chapter BOOL, BOOLEAN
|
21
|
-
# https://dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html
|
22
|
-
def boolean_format
|
23
|
-
boolean ? 1 : 0
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'date'
|
4
|
-
|
5
|
-
module Masking
|
6
|
-
class Config
|
7
|
-
class TargetColumns
|
8
|
-
class Method
|
9
|
-
class Date
|
10
|
-
def initialize(value)
|
11
|
-
@date = value.strftime(FORMAT)
|
12
|
-
end
|
13
|
-
|
14
|
-
def call
|
15
|
-
"'#{date_format}'"
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
attr_reader :date
|
21
|
-
FORMAT = '%Y-%m-%d'
|
22
|
-
|
23
|
-
def date_format
|
24
|
-
date
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class Float
|
8
|
-
def initialize(value)
|
9
|
-
@float = value.to_s
|
10
|
-
end
|
11
|
-
|
12
|
-
def call
|
13
|
-
float
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :float
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class Integer
|
8
|
-
def initialize(value)
|
9
|
-
@integer = value.to_s
|
10
|
-
end
|
11
|
-
|
12
|
-
def call
|
13
|
-
integer
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :integer
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class String
|
8
|
-
def initialize(value)
|
9
|
-
@string = value
|
10
|
-
@sequence = 0
|
11
|
-
end
|
12
|
-
|
13
|
-
def call
|
14
|
-
("'" + output + "'").b
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
SEQUENTIAL_NUMBER_PLACEHOLDER = '%{n}' # rubocop:disable Style/FormatStringToken
|
20
|
-
attr_reader :string
|
21
|
-
|
22
|
-
def output
|
23
|
-
string.sub(SEQUENTIAL_NUMBER_PLACEHOLDER, sequence.to_s)
|
24
|
-
end
|
25
|
-
|
26
|
-
def sequence
|
27
|
-
@sequence += 1
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Masking
|
4
|
-
class Config
|
5
|
-
class TargetColumns
|
6
|
-
class Method
|
7
|
-
class Time
|
8
|
-
def initialize(value)
|
9
|
-
@time = value.strftime(FORMAT)
|
10
|
-
end
|
11
|
-
|
12
|
-
def call
|
13
|
-
"'#{time_format}'"
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :time
|
19
|
-
FORMAT = '%Y-%m-%d %H:%M:%S'
|
20
|
-
|
21
|
-
def time_format
|
22
|
-
time
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|