table_saw 2.10.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,13 +22,13 @@ module TableSaw
22
22
  .join(', ')
23
23
  end
24
24
 
25
- def connection
26
- TableSaw.schema_cache.connection
25
+ def adapter
26
+ TableSaw::Connection.adapter
27
27
  end
28
28
 
29
29
  def quote_value(column, value)
30
- type = connection.lookup_cast_type_from_column(column)
31
- connection.quote(type.serialize(type.deserialize(value)))
30
+ type = adapter.lookup_cast_type_from_column(column)
31
+ adapter.quote(type.serialize(type.deserialize(value)))
32
32
  end
33
33
  end
34
34
  end
@@ -32,7 +32,7 @@ module TableSaw
32
32
 
33
33
  def column_names
34
34
  TableSaw.schema_cache.columns(table_name)
35
- .map { |column| TableSaw.schema_cache.connection.quote_column_name(column.name) }
35
+ .map { |column| TableSaw::Connection.adapter.quote_column_name(column.name) }
36
36
  .join(', ')
37
37
  end
38
38
 
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TableSaw
4
+ class VariableInterpolation
5
+ def self.call(variables)
6
+ new(variables).call
7
+ end
8
+
9
+ attr_reader :input
10
+
11
+ def initialize(input)
12
+ @input = input
13
+ end
14
+
15
+ def call
16
+ input.transform_values do |value|
17
+ next value unless value.is_a?(String)
18
+
19
+ interpolate_variables(value, input)
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def interpolate_variables(string, variables)
26
+ string.gsub(/%{(\w+)}/) do |match|
27
+ variable_name = ::Regexp.last_match(1)
28
+ if variables.key?(variable_name)
29
+ nested_value = interpolate_variables(variables[variable_name], variables)
30
+ interpolate_variables(nested_value, variables)
31
+ else
32
+ match
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TableSaw
4
- VERSION = '2.10.0'
4
+ VERSION = '3.1.0'
5
5
  end
data/lib/table_saw.rb CHANGED
@@ -7,6 +7,7 @@ require 'table_saw/information_schema'
7
7
  require 'table_saw/manifest'
8
8
  require 'table_saw/queries'
9
9
  require 'table_saw/formats'
10
+ require 'table_saw/variable_interpolation'
10
11
 
11
12
  module TableSaw
12
13
  def self.configuration
data/table_saw.gemspec CHANGED
@@ -23,19 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = ['table-saw']
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.required_ruby_version = '>= 2.6'
26
+ spec.required_ruby_version = '>= 3.0'
27
+ spec.metadata['rubygems_mfa_required'] = 'true'
27
28
 
28
- spec.add_dependency 'activerecord', '>= 5.2'
29
+ spec.add_dependency 'activerecord', '>= 6.0'
29
30
  spec.add_dependency 'pg'
30
31
  spec.add_dependency 'thor'
31
-
32
- spec.add_development_dependency 'bundler', '~> 2.0'
33
- spec.add_development_dependency 'combustion', '~> 1.3'
34
- spec.add_development_dependency 'database_cleaner', '~> 2'
35
- spec.add_development_dependency 'pry'
36
- spec.add_development_dependency 'rake', '13.0.3'
37
- spec.add_development_dependency 'rspec', '~> 3.0'
38
- spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
39
- spec.add_development_dependency 'scenic', '~> 1.5'
40
- spec.add_development_dependency 'simplecov', '~> 0.16'
41
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_saw
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hamed Asghari
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-26 00:00:00.000000000 Z
11
+ date: 2023-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.2'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,132 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.0'
69
- - !ruby/object:Gem::Dependency
70
- name: combustion
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.3'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.3'
83
- - !ruby/object:Gem::Dependency
84
- name: database_cleaner
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '2'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '2'
97
- - !ruby/object:Gem::Dependency
98
- name: pry
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: rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 13.0.3
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 13.0.3
125
- - !ruby/object:Gem::Dependency
126
- name: rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.0'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop-rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '2.3'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '2.3'
153
- - !ruby/object:Gem::Dependency
154
- name: scenic
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.5'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.5'
167
- - !ruby/object:Gem::Dependency
168
- name: simplecov
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.16'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '0.16'
181
55
  description:
182
56
  email:
183
57
  - hasghari@gmail.com
@@ -190,8 +64,6 @@ files:
190
64
  - ".gitignore"
191
65
  - ".rspec"
192
66
  - ".rubocop.yml"
193
- - ".ruby-gemset"
194
- - ".ruby-version"
195
67
  - ".tool-versions"
196
68
  - Appraisals
197
69
  - CODE_OF_CONDUCT.md
@@ -203,10 +75,12 @@ files:
203
75
  - bin/console
204
76
  - bin/setup
205
77
  - exe/table-saw
206
- - gemfiles/activerecord_6.0.0.gemfile
207
- - gemfiles/activerecord_6.0.0.gemfile.lock
208
78
  - gemfiles/activerecord_6.1.0.gemfile
209
79
  - gemfiles/activerecord_6.1.0.gemfile.lock
80
+ - gemfiles/activerecord_7.0.0.gemfile
81
+ - gemfiles/activerecord_7.0.0.gemfile.lock
82
+ - gemfiles/activerecord_7.1.0.gemfile
83
+ - gemfiles/activerecord_7.1.0.gemfile.lock
210
84
  - lib/table_saw.rb
211
85
  - lib/table_saw/associations.rb
212
86
  - lib/table_saw/configuration.rb
@@ -233,12 +107,14 @@ files:
233
107
  - lib/table_saw/queries/prepared_insert_statement.rb
234
108
  - lib/table_saw/queries/serial_sequences.rb
235
109
  - lib/table_saw/queries/serialize_sql_in_clause.rb
110
+ - lib/table_saw/variable_interpolation.rb
236
111
  - lib/table_saw/version.rb
237
112
  - table_saw.gemspec
238
113
  homepage: https://github.com/hasghari/table_saw
239
114
  licenses:
240
115
  - MIT
241
- metadata: {}
116
+ metadata:
117
+ rubygems_mfa_required: 'true'
242
118
  post_install_message:
243
119
  rdoc_options: []
244
120
  require_paths:
@@ -247,14 +123,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
247
123
  requirements:
248
124
  - - ">="
249
125
  - !ruby/object:Gem::Version
250
- version: '2.6'
126
+ version: '3.0'
251
127
  required_rubygems_version: !ruby/object:Gem::Requirement
252
128
  requirements:
253
129
  - - ">="
254
130
  - !ruby/object:Gem::Version
255
131
  version: '0'
256
132
  requirements: []
257
- rubygems_version: 3.2.22
133
+ rubygems_version: 3.4.17
258
134
  signing_key:
259
135
  specification_version: 4
260
136
  summary: Create a postgres dump file from a subset of tables
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- table_saw
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.0.0
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal"
6
- gem "activerecord", "~> 6.0", "< 6.1"
7
-
8
- gemspec path: "../"
@@ -1,159 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- table_saw (2.10.0)
5
- activerecord (>= 5.2)
6
- pg
7
- thor
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actionpack (6.0.4.1)
13
- actionview (= 6.0.4.1)
14
- activesupport (= 6.0.4.1)
15
- rack (~> 2.0, >= 2.0.8)
16
- rack-test (>= 0.6.3)
17
- rails-dom-testing (~> 2.0)
18
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
19
- actionview (6.0.4.1)
20
- activesupport (= 6.0.4.1)
21
- builder (~> 3.1)
22
- erubi (~> 1.4)
23
- rails-dom-testing (~> 2.0)
24
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
25
- activemodel (6.0.4.1)
26
- activesupport (= 6.0.4.1)
27
- activerecord (6.0.4.1)
28
- activemodel (= 6.0.4.1)
29
- activesupport (= 6.0.4.1)
30
- activesupport (6.0.4.1)
31
- concurrent-ruby (~> 1.0, >= 1.0.2)
32
- i18n (>= 0.7, < 2)
33
- minitest (~> 5.1)
34
- tzinfo (~> 1.1)
35
- zeitwerk (~> 2.2, >= 2.2.2)
36
- appraisal (2.3.0)
37
- bundler
38
- rake
39
- thor (>= 0.14.0)
40
- ast (2.4.2)
41
- builder (3.2.4)
42
- coderay (1.1.3)
43
- combustion (1.3.1)
44
- activesupport (>= 3.0.0)
45
- railties (>= 3.0.0)
46
- thor (>= 0.14.6)
47
- concurrent-ruby (1.1.9)
48
- crass (1.0.6)
49
- database_cleaner (2.0.1)
50
- database_cleaner-active_record (~> 2.0.0)
51
- database_cleaner-active_record (2.0.1)
52
- activerecord (>= 5.a)
53
- database_cleaner-core (~> 2.0.0)
54
- database_cleaner-core (2.0.1)
55
- diff-lcs (1.4.4)
56
- docile (1.4.0)
57
- erubi (1.10.0)
58
- i18n (1.8.10)
59
- concurrent-ruby (~> 1.0)
60
- loofah (2.12.0)
61
- crass (~> 1.0.2)
62
- nokogiri (>= 1.5.9)
63
- method_source (1.0.0)
64
- minitest (5.14.4)
65
- nokogiri (1.12.5-x86_64-darwin)
66
- racc (~> 1.4)
67
- nokogiri (1.12.5-x86_64-linux)
68
- racc (~> 1.4)
69
- parallel (1.20.1)
70
- parser (3.0.1.1)
71
- ast (~> 2.4.1)
72
- pg (1.2.3)
73
- pry (0.13.1)
74
- coderay (~> 1.1)
75
- method_source (~> 1.0)
76
- racc (1.5.2)
77
- rack (2.2.3)
78
- rack-test (1.1.0)
79
- rack (>= 1.0, < 3)
80
- rails-dom-testing (2.0.3)
81
- activesupport (>= 4.2.0)
82
- nokogiri (>= 1.6)
83
- rails-html-sanitizer (1.4.2)
84
- loofah (~> 2.3)
85
- railties (6.0.4.1)
86
- actionpack (= 6.0.4.1)
87
- activesupport (= 6.0.4.1)
88
- method_source
89
- rake (>= 0.8.7)
90
- thor (>= 0.20.3, < 2.0)
91
- rainbow (3.0.0)
92
- rake (13.0.3)
93
- regexp_parser (2.1.1)
94
- rexml (3.2.5)
95
- rspec (3.10.0)
96
- rspec-core (~> 3.10.0)
97
- rspec-expectations (~> 3.10.0)
98
- rspec-mocks (~> 3.10.0)
99
- rspec-core (3.10.1)
100
- rspec-support (~> 3.10.0)
101
- rspec-expectations (3.10.1)
102
- diff-lcs (>= 1.2.0, < 2.0)
103
- rspec-support (~> 3.10.0)
104
- rspec-mocks (3.10.1)
105
- diff-lcs (>= 1.2.0, < 2.0)
106
- rspec-support (~> 3.10.0)
107
- rspec-support (3.10.1)
108
- rubocop (1.14.0)
109
- parallel (~> 1.10)
110
- parser (>= 3.0.0.0)
111
- rainbow (>= 2.2.2, < 4.0)
112
- regexp_parser (>= 1.8, < 3.0)
113
- rexml
114
- rubocop-ast (>= 1.5.0, < 2.0)
115
- ruby-progressbar (~> 1.7)
116
- unicode-display_width (>= 1.4.0, < 3.0)
117
- rubocop-ast (1.5.0)
118
- parser (>= 3.0.1.1)
119
- rubocop-rspec (2.3.0)
120
- rubocop (~> 1.0)
121
- rubocop-ast (>= 1.1.0)
122
- ruby-progressbar (1.11.0)
123
- scenic (1.5.4)
124
- activerecord (>= 4.0.0)
125
- railties (>= 4.0.0)
126
- simplecov (0.21.2)
127
- docile (~> 1.1)
128
- simplecov-html (~> 0.11)
129
- simplecov_json_formatter (~> 0.1)
130
- simplecov-html (0.12.3)
131
- simplecov_json_formatter (0.1.3)
132
- thor (1.1.0)
133
- thread_safe (0.3.6)
134
- tzinfo (1.2.9)
135
- thread_safe (~> 0.1)
136
- unicode-display_width (2.0.0)
137
- zeitwerk (2.4.2)
138
-
139
- PLATFORMS
140
- x86_64-darwin-19
141
- x86_64-darwin-20
142
- x86_64-linux
143
-
144
- DEPENDENCIES
145
- activerecord (~> 6.0, < 6.1)
146
- appraisal
147
- bundler (~> 2.0)
148
- combustion (~> 1.3)
149
- database_cleaner (~> 2)
150
- pry
151
- rake (= 13.0.3)
152
- rspec (~> 3.0)
153
- rubocop-rspec (~> 2.3)
154
- scenic (~> 1.5)
155
- simplecov (~> 0.16)
156
- table_saw!
157
-
158
- BUNDLED WITH
159
- 2.2.22