synvert-core 1.21.5 → 1.21.7

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: cb89b1bc2d50d73f656541dc90fb5efad3c5637589a71c1fcba29324244c6539
4
- data.tar.gz: d14d4b677a1b3f00b913c2baf8a0f6ef1cd8c3630f2c66a6723b891d3a0f2d83
3
+ metadata.gz: 0d33e2874a1d23b725a4d2bb62e8cfd03d71b9c82e22fbe9a349336ac19f6eab
4
+ data.tar.gz: 74a56b255b08c5f017fe0717dbd644cfc61983a06c6c7c0b0ec86f77d6566ff1
5
5
  SHA512:
6
- metadata.gz: 452e3d690d566304b0d2f7dc37aaba39da839eb6151b0720668dcb0b4e49901742172e523de40cca4e83fbb9064e04ad2d7928e6b23eca68bce0984566d10345
7
- data.tar.gz: 7ac8916b752c005dae8c0bf958161c5b217111cacaf58968c5dd46aa2f7d4641591590fd7185dadffe0e53e63b4d7ec2a55e3ab94ec000617c618e2109f33767
6
+ metadata.gz: a98c6ded4885bebda395ad253cb826ce1e82ad06d734cc0bfbd00b592676c6dde8aac530d30d2d27beb3b7ca314519a782de91fa0e97905ea4c1fd62122eef98
7
+ data.tar.gz: ec1d2ac24a8f9066bb228363b961cc1e93da96f501cbfb166fb398cb21a3bd80d5ee496b261e0901289b6fed3d9749fdf04cd5b2db458853caf742ceca5c5691
@@ -11,10 +11,10 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- ruby-version: ['2.6', '2.7', '3.0', '3.1']
14
+ ruby-version: ['2.7', '3.0', '3.1', '3.2']
15
15
 
16
16
  steps:
17
- - uses: actions/checkout@v2
17
+ - uses: actions/checkout@v3
18
18
  - name: Set up Ruby
19
19
  uses: ruby/setup-ruby@v1
20
20
  with:
@@ -28,10 +28,11 @@ jobs:
28
28
  needs: test
29
29
  name: Update gh-pages to docs
30
30
  steps:
31
- - uses: actions/checkout@v2
32
- - uses: actions/setup-ruby@v1
31
+ - uses: actions/checkout@v3
32
+ - uses: ruby/setup-ruby@v1
33
33
  with:
34
- ruby-version: '3.1'
34
+ ruby-version: '3.2'
35
+ bundler-cache: true
35
36
  - name: Install required gem dependencies
36
37
  run: gem install yard redcarpet github-markup --no-document
37
38
  - name: Build YARD Ruby Documentation
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.21.7 (2023-03-23)
4
+
5
+ * Polish `erb` engine
6
+ * Update `node_mutation` to 1.12.1
7
+
8
+ ## 1.21.6 (2023-02-16)
9
+
10
+ * `RAILS_VIEW_FILES` do not check `haml` and `slim` files until we support them
11
+ * Add constants `ALL_FILES` and `ALL_ERB_FILES`
12
+
3
13
  ## 1.21.5 (2023-02-15)
4
14
 
5
15
  * Rewrite erb engine, no need to decode
data/Gemfile CHANGED
@@ -5,7 +5,6 @@ source 'https://rubygems.org'
5
5
  # Specify your gem's dependencies in synvert.gemspec
6
6
  gemspec
7
7
 
8
- require 'pp' # https://github.com/defunkt/fakefs/issues/99
9
8
  gem "fakefs", require: "fakefs/safe"
10
9
  gem "guard"
11
10
  gem "guard-rspec"
data/Gemfile.lock CHANGED
@@ -1,10 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- synvert-core (1.21.5)
4
+ synvert-core (1.21.7)
5
5
  activesupport (< 7.0.0)
6
- erubis
7
- node_mutation (>= 1.9.2)
6
+ node_mutation (>= 1.12.1)
8
7
  node_query (>= 1.12.0)
9
8
  parallel
10
9
  parser
@@ -13,7 +12,7 @@ PATH
13
12
  GEM
14
13
  remote: https://rubygems.org/
15
14
  specs:
16
- activesupport (6.1.7.2)
15
+ activesupport (6.1.7.3)
17
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
17
  i18n (>= 1.6, < 2)
19
18
  minitest (>= 5.1)
@@ -21,10 +20,10 @@ GEM
21
20
  zeitwerk (~> 2.3)
22
21
  ast (2.4.2)
23
22
  coderay (1.1.3)
24
- concurrent-ruby (1.2.0)
23
+ concurrent-ruby (1.2.2)
25
24
  diff-lcs (1.5.0)
26
25
  erubis (2.7.0)
27
- fakefs (1.8.0)
26
+ fakefs (2.4.0)
28
27
  ffi (1.15.5)
29
28
  formatador (1.1.0)
30
29
  guard (2.18.0)
@@ -48,16 +47,16 @@ GEM
48
47
  rb-inotify (~> 0.9, >= 0.9.10)
49
48
  lumberjack (1.2.8)
50
49
  method_source (1.0.0)
51
- minitest (5.17.0)
50
+ minitest (5.18.0)
52
51
  nenv (0.3.0)
53
- node_mutation (1.9.2)
52
+ node_mutation (1.12.1)
54
53
  erubis
55
54
  node_query (1.12.0)
56
55
  notiffany (0.1.3)
57
56
  nenv (~> 0.1)
58
57
  shellany (~> 0.0)
59
58
  parallel (1.22.1)
60
- parser (3.2.1.0)
59
+ parser (3.2.1.1)
61
60
  ast (~> 2.4.1)
62
61
  parser_node_ext (1.0.0)
63
62
  parser
@@ -1,19 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'erubis'
4
-
5
3
  module Synvert::Core
6
4
  module Engine
7
5
  class Erb
8
6
  class << self
9
- # convert erb to ruby code.
7
+ # Encode erb string, leave only ruby code, replace other erb code with whitespace.
10
8
  #
11
- # @param source [String] erb source code.
12
- # @return [String] ruby source code.
9
+ # @param source [String] erb code.
10
+ # @return [String] encoded ruby code.
13
11
  def encode(source)
14
- source.gsub(/^.*?<%=?/m) { |str| ' ' * str.size }
15
- .gsub(/%>.*?$/m) { |str| ' ' * str.size }
16
- .gsub(/%>.*?<%=?/m) { |str| ' ' * str.size }
12
+ source.gsub(/%>.*?<%=?/m) { |str| ' ' * str.size }
13
+ .sub(/^.*?<%=?/m) { |str| ' ' * str.size }
14
+ .sub(/%>.*?$/m) { |str| ' ' * str.size }
17
15
  end
18
16
  end
19
17
  end
@@ -20,7 +20,7 @@ module Synvert::Core
20
20
  @block = block
21
21
  strategy = NodeMutation::Strategy::KEEP_RUNNING
22
22
  if rewriter.options[:strategy] == Strategy::ALLOW_INSERT_AT_SAME_POSITION
23
- strategy |= NodeMutation::Strategy::ALLOW_INSERT_AT_SAME_POSITION
23
+ strategy |= NodeMutation::Strategy::ALLOW_INSERT_AT_SAME_POSITION
24
24
  end
25
25
  NodeMutation.configure({ strategy: strategy, tab_width: Configuration.tab_width })
26
26
  rewriter.helpers.each { |helper| singleton_class.send(:define_method, helper[:name], &helper[:block]) }
@@ -90,7 +90,6 @@ module Synvert::Core
90
90
  end
91
91
  end
92
92
 
93
-
94
93
  # Gets current node, it allows to get current node in block code.
95
94
  #
96
95
  # @return [Parser::AST::Node]
@@ -404,7 +403,8 @@ module Synvert::Core
404
403
  if str.include?(quote) && !str.include?(another_quote)
405
404
  return "#{another_quote}#{str}#{another_quote}"
406
405
  end
407
- escaped_str = str.gsub(quote) { |char| '\\' + quote }
406
+
407
+ escaped_str = str.gsub(quote) { |_char| '\\' + quote }
408
408
  quote + escaped_str + quote
409
409
  end
410
410
 
@@ -413,7 +413,7 @@ module Synvert::Core
413
413
  # @param tab_size [Integer] tab size
414
414
  # @return [String]
415
415
  def add_leading_spaces(str, tab_size: 1)
416
- " " * Configuration.tab_width * tab_size + str;
416
+ (" " * Configuration.tab_width * tab_size) + str;
417
417
  end
418
418
 
419
419
  private
@@ -94,7 +94,15 @@ module Synvert::Core
94
94
  # @return [Array<Object>] the test results
95
95
  # @!attribute [rw] options
96
96
  # @return [Hash] the rewriter options
97
- attr_reader :group, :name, :sub_snippets, :helpers, :warnings, :affected_files, :ruby_version, :gem_spec, :test_results
97
+ attr_reader :group,
98
+ :name,
99
+ :sub_snippets,
100
+ :helpers,
101
+ :warnings,
102
+ :affected_files,
103
+ :ruby_version,
104
+ :gem_spec,
105
+ :test_results
98
106
  attr_accessor :options
99
107
 
100
108
  # Initialize a Rewriter.
@@ -230,10 +238,11 @@ module Synvert::Core
230
238
  instance.process
231
239
  end
232
240
  else
233
- results = handle_one_file(Array(file_patterns)) do |file_path|
234
- instance = Rewriter::Instance.new(self, file_path, &block)
235
- instance.test
236
- end
241
+ results =
242
+ handle_one_file(Array(file_patterns)) do |file_path|
243
+ instance = Rewriter::Instance.new(self, file_path, &block)
244
+ instance.test
245
+ end
237
246
  merge_test_results(results)
238
247
  end
239
248
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class SnippetNotFoundError < StandardError
4
- end
4
+ end
@@ -4,4 +4,4 @@ module Synvert::Core
4
4
  class Strategy
5
5
  ALLOW_INSERT_AT_SAME_POSITION = "allow_insert_at_same_position"
6
6
  end
7
- end
7
+ end
@@ -15,14 +15,17 @@ module Synvert::Core
15
15
  if is_valid_url?(snippet_name)
16
16
  uri = URI.parse(format_url(snippet_name))
17
17
  return uri.open.read if remote_snippet_exists?(uri)
18
+
18
19
  raise SnippetNotFoundError.new("#{snippet_name} nout found")
19
20
  elsif is_valid_file?(snippet_name)
20
21
  return File.read(snippet_name)
21
22
  else
22
23
  snippet_path = snippet_expand_path(snippet_name)
23
24
  return File.read(snippet_path) if File.exist?(snippet_path)
25
+
24
26
  snippet_uri = URI.parse(format_url(remote_snippet_url(snippet_name)))
25
27
  return snippet_uri.open.read if remote_snippet_exists?(snippet_uri)
28
+
26
29
  raise SnippetNotFoundError.new("#{snippet_name} nout found")
27
30
  end
28
31
  end
@@ -32,9 +35,10 @@ module Synvert::Core
32
35
  # @return [Array<String>] file paths
33
36
  def glob(file_patterns)
34
37
  Dir.chdir(Configuration.root_path) do
35
- all_files = file_patterns.flat_map do |file_pattern|
36
- Dir.glob(file_pattern)
37
- end
38
+ all_files =
39
+ file_patterns.flat_map do |file_pattern|
40
+ Dir.glob(file_pattern)
41
+ end
38
42
  filter_only_paths(all_files) - get_skip_files
39
43
  end
40
44
  end
@@ -105,4 +109,4 @@ module Synvert::Core
105
109
  end
106
110
  end
107
111
  end
108
- end
112
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '1.21.5'
5
+ VERSION = '1.21.7'
6
6
  end
7
7
  end
data/lib/synvert/core.rb CHANGED
@@ -9,7 +9,6 @@ require_relative './core/node_ext'
9
9
  require 'active_support'
10
10
  require 'active_support/core_ext'
11
11
  require 'erubis'
12
- require 'set'
13
12
  require 'node_query'
14
13
  require 'node_mutation'
15
14
 
@@ -29,7 +28,9 @@ module Synvert
29
28
  Strategy = Core::Strategy
30
29
 
31
30
  ALL_RUBY_FILES = %w[**/*.rb]
31
+ ALL_ERB_FILES = %w[**/*.erb]
32
32
  ALL_RAKE_FILES = %w[**/*.rake]
33
+ ALL_FILES = ALL_RUBY_FILES + ALL_ERB_FILES + ALL_RAKE_FILES
33
34
 
34
35
  RAILS_APP_FILES = %w[app/**/*.rb engines/*/app/**/*.rb]
35
36
  RAILS_CONTROLLER_FILES = %w[app/controllers/**/*.rb engines/*/app/controllers/**/*.rb]
@@ -46,7 +47,7 @@ module Synvert
46
47
  engines/*/config/routes.rb
47
48
  engines/*/config/routes/**/*.rb
48
49
  ]
49
- RAILS_VIEW_FILES = %w[app/views/**/*.html.{erb,haml,slim}]
50
+ RAILS_VIEW_FILES = %w[app/views/**/*.html.{erb}]
50
51
 
51
52
  RAILS_CONTROLLER_TEST_FILES = %w[
52
53
  test/functional/**/*.rb
@@ -34,11 +34,14 @@ module Synvert::Core
34
34
  <% end %>
35
35
  <% end %>
36
36
  EOF
37
- encoded_lines = Engine::Erb.encode(source).split("\n")
38
- expect(encoded_lines[0]).to eq ' content_for :head do '
39
- expect(encoded_lines[1]).to eq " asset_path('bg.png') "
40
- expect(encoded_lines[-2]).to eq ' end '
41
- expect(encoded_lines[-1]).to eq ' end '
37
+ encoded_source = Engine::Erb.encode(source)
38
+ expect(encoded_source).to be_include 'content_for :head do'
39
+ expect(encoded_source).to be_include " asset_path('bg.png')"
40
+ expect(encoded_source).to be_include 'post = Post.find(:first)'
41
+ expect(encoded_source).to be_include "link_to_function 'test', \"confirm('test');\""
42
+ expect(encoded_source).to be_include 'end'
43
+ expect(encoded_source).not_to be_include 'style'
44
+ expect(encoded_source).not_to be_include 'div'
42
45
  end
43
46
  end
44
47
  end
@@ -12,7 +12,12 @@ module Synvert::Core
12
12
  it 'parses find_node' do
13
13
  scope = double
14
14
  block = proc {}
15
- expect(Rewriter::WithinScope).to receive(:new).with(instance, '.send[message=create]', {}, &block).and_return(scope)
15
+ expect(Rewriter::WithinScope).to receive(:new).with(
16
+ instance,
17
+ '.send[message=create]',
18
+ {},
19
+ &block
20
+ ).and_return(scope)
16
21
  expect(scope).to receive(:process)
17
22
  instance.find_node('.send[message=create]', &block)
18
23
  end
@@ -99,28 +104,44 @@ module Synvert::Core
99
104
  it 'parses append' do
100
105
  instance.instance_variable_set(:@current_mutation, double)
101
106
  instance.current_node = double
102
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:append).with(instance.current_node, 'Foobar')
107
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:append).with(
108
+ instance.current_node,
109
+ 'Foobar'
110
+ )
103
111
  instance.append 'Foobar'
104
112
  end
105
113
 
106
114
  it 'parses prepend' do
107
115
  instance.instance_variable_set(:@current_mutation, double)
108
116
  instance.current_node = double
109
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:prepend).with(instance.current_node, 'Foobar')
117
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:prepend).with(
118
+ instance.current_node,
119
+ 'Foobar'
120
+ )
110
121
  instance.prepend 'Foobar'
111
122
  end
112
123
 
113
124
  it 'parses insert at end' do
114
125
  instance.instance_variable_set(:@current_mutation, double)
115
126
  instance.current_node = double
116
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(instance.current_node, 'Foobar', at: 'end', to: 'receiver')
127
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(
128
+ instance.current_node,
129
+ 'Foobar',
130
+ at: 'end',
131
+ to: 'receiver'
132
+ )
117
133
  instance.insert 'Foobar', to: 'receiver'
118
134
  end
119
135
 
120
136
  it 'parses insert at beginning' do
121
137
  instance.instance_variable_set(:@current_mutation, double)
122
138
  instance.current_node = double
123
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(instance.current_node, 'Foobar', at: 'beginning', to: nil)
139
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(
140
+ instance.current_node,
141
+ 'Foobar',
142
+ at: 'beginning',
143
+ to: nil
144
+ )
124
145
  instance.insert 'Foobar', at: 'beginning'
125
146
  end
126
147
 
@@ -128,7 +149,12 @@ module Synvert::Core
128
149
  instance.instance_variable_set(:@current_mutation, double)
129
150
  instance.current_node = double
130
151
  expect(NodeMutation).to receive_message_chain(:adapter, :get_start_loc, :column).and_return(2)
131
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(instance.current_node, "\n Foobar", at: 'end', to: nil)
152
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(
153
+ instance.current_node,
154
+ "\n Foobar",
155
+ at: 'end',
156
+ to: nil
157
+ )
132
158
  instance.insert_after 'Foobar'
133
159
  end
134
160
 
@@ -136,7 +162,12 @@ module Synvert::Core
136
162
  instance.instance_variable_set(:@current_mutation, double)
137
163
  instance.current_node = double
138
164
  expect(NodeMutation).to receive_message_chain(:adapter, :get_start_loc, :column).and_return(2)
139
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(instance.current_node, "Foobar\n ", at: 'beginning', to: nil)
165
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:insert).with(
166
+ instance.current_node,
167
+ "Foobar\n ",
168
+ at: 'beginning',
169
+ to: nil
170
+ )
140
171
  instance.insert_before 'Foobar'
141
172
  end
142
173
 
@@ -153,35 +184,53 @@ module Synvert::Core
153
184
  it 'parses replace_with' do
154
185
  instance.instance_variable_set(:@current_mutation, double)
155
186
  instance.current_node = double
156
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:replace_with).with(instance.current_node, 'Foobar')
187
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:replace_with).with(
188
+ instance.current_node,
189
+ 'Foobar'
190
+ )
157
191
  instance.replace_with 'Foobar'
158
192
  end
159
193
 
160
194
  it 'parses replace with' do
161
195
  instance.instance_variable_set(:@current_mutation, double)
162
196
  instance.current_node = double
163
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:replace).with(instance.current_node, :message, with: 'Foobar')
197
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:replace).with(
198
+ instance.current_node,
199
+ :message,
200
+ with: 'Foobar'
201
+ )
164
202
  instance.replace :message, with: 'Foobar'
165
203
  end
166
204
 
167
205
  it 'parses remove' do
168
206
  instance.instance_variable_set(:@current_mutation, double)
169
207
  instance.current_node = double
170
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:remove).with(instance.current_node, and_comma: true)
208
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:remove).with(
209
+ instance.current_node,
210
+ and_comma: true
211
+ )
171
212
  instance.remove and_comma: true
172
213
  end
173
214
 
174
215
  it 'parses delete' do
175
216
  instance.instance_variable_set(:@current_mutation, double)
176
217
  instance.current_node = double
177
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:delete).with(instance.current_node, :dot, :message, and_comma: true)
218
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:delete).with(
219
+ instance.current_node,
220
+ :dot,
221
+ :message,
222
+ and_comma: true
223
+ )
178
224
  instance.delete :dot, :message, and_comma: true
179
225
  end
180
226
 
181
227
  it 'parses wrap with' do
182
228
  instance.instance_variable_set(:@current_mutation, double)
183
229
  instance.current_node = double
184
- expect(instance.instance_variable_get(:@current_mutation)).to receive(:wrap).with(instance.current_node, with: 'module Foobar')
230
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:wrap).with(
231
+ instance.current_node,
232
+ with: 'module Foobar'
233
+ )
185
234
  instance.wrap with: 'module Foobar'
186
235
  end
187
236
 
@@ -330,8 +379,8 @@ module Synvert::Core
330
379
  results = instance.test
331
380
  expect(results.file_path).to eq 'spec/models/post_spec.rb'
332
381
  expect(results.actions).to eq [
333
- OpenStruct.new(start: 35, end: 59, new_code: 'create :user'),
334
- OpenStruct.new(start: 69, end: 105, new_code: 'create :post, user: user')
382
+ NodeMutation::Struct::Action.new(35, 59, 'create :user'),
383
+ NodeMutation::Struct::Action.new(69, 105, 'create :post, user: user')
335
384
  ]
336
385
  end
337
386
 
@@ -369,7 +418,7 @@ module Synvert::Core
369
418
  expect(File).to receive(:read).with('./app/views/posts/_form.html.erb', encoding: 'UTF-8').and_return(input)
370
419
  result = instance.test
371
420
  expect(result.file_path).to eq 'app/views/posts/_form.html.erb'
372
- expect(result.actions).to eq [OpenStruct.new(start: 2, end: 2, new_code: '=')]
421
+ expect(result.actions).to eq [NodeMutation::Struct::Action.new(2, 2, '=')]
373
422
  end
374
423
  end
375
424
 
@@ -33,13 +33,14 @@ module Synvert::Core
33
33
 
34
34
  describe '#process' do
35
35
  it 'rewrites the file' do
36
- rewriter = Rewriter.new('group', 'name') do
37
- within_files '**/*.rb' do
38
- with_node node_type: 'class', name: 'Foobar' do
39
- replace :name, with: 'Synvert'
36
+ rewriter =
37
+ Rewriter.new('group', 'name') do
38
+ within_files '**/*.rb' do
39
+ with_node node_type: 'class', name: 'Foobar' do
40
+ replace :name, with: 'Synvert'
41
+ end
40
42
  end
41
43
  end
42
- end
43
44
  input = "class Foobar\nend"
44
45
  output = "class Synvert\nend"
45
46
  FakeFS do
@@ -52,13 +53,14 @@ module Synvert::Core
52
53
 
53
54
  describe '#test' do
54
55
  it 'gets test results' do
55
- rewriter = Rewriter.new('group', 'name') do
56
- within_files '**/*.rb' do
57
- with_node node_type: 'class', name: 'Foobar' do
58
- replace :name, with: 'Synvert'
56
+ rewriter =
57
+ Rewriter.new('group', 'name') do
58
+ within_files '**/*.rb' do
59
+ with_node node_type: 'class', name: 'Foobar' do
60
+ replace :name, with: 'Synvert'
61
+ end
59
62
  end
60
63
  end
61
- end
62
64
  input = "class Foobar\nend"
63
65
  FakeFS do
64
66
  File.write("code.rb", input)
@@ -66,7 +68,7 @@ module Synvert::Core
66
68
  expect(results[0].file_path).to eq '/code.rb'
67
69
  expect(results[0].affected?).to be_truthy
68
70
  expect(results[0].conflicted?).to be_falsey
69
- expect(results[0].actions).to eq [OpenStruct.new(start: 6, end: 12, new_code: 'Synvert')]
71
+ expect(results[0].actions).to eq [NodeMutation::Struct::Action.new(6, 12, 'Synvert')]
70
72
  end
71
73
  end
72
74
  end
@@ -226,9 +228,10 @@ module Synvert::Core
226
228
  it 'adds snippet by http url' do
227
229
  expect(Utils).to receive(:remote_snippet_exists?).with(URI.parse('http://synvert.net/foo/bar.rb')).and_return(true)
228
230
  expect_any_instance_of(URI::HTTP).to receive(:open).and_return(StringIO.new("Rewriter.new 'group', 'sub_rewriter' do\nend"))
229
- rewriter = Rewriter.new 'group', 'rewriter' do
230
- add_snippet 'http://synvert.net/foo/bar.rb'
231
- end
231
+ rewriter =
232
+ Rewriter.new 'group', 'rewriter' do
233
+ add_snippet 'http://synvert.net/foo/bar.rb'
234
+ end
232
235
  rewriter.process
233
236
  expect(Rewriter.fetch('group', 'sub_rewriter')).not_to be_nil
234
237
  end
@@ -236,9 +239,10 @@ module Synvert::Core
236
239
  it 'adds snippet by file path' do
237
240
  expect(File).to receive(:exist?).and_return(true)
238
241
  expect(File).to receive(:read).and_return("Rewriter.new 'group', 'sub_rewriter' do\nend")
239
- rewriter = Rewriter.new 'group', 'rewriter' do
240
- add_snippet '/home/richard/foo/bar.rb'
241
- end
242
+ rewriter =
243
+ Rewriter.new 'group', 'rewriter' do
244
+ add_snippet '/home/richard/foo/bar.rb'
245
+ end
242
246
  rewriter.process
243
247
  expect(Rewriter.fetch('group', 'sub_rewriter')).not_to be_nil
244
248
  end
@@ -61,22 +61,37 @@ module Synvert::Core
61
61
  end
62
62
 
63
63
  it 'gets all files' do
64
- expect(Dir).to receive(:glob).with('**/*.rb').and_return(['app/models/post.rb', 'app/controllers/posts_controller.rb'])
64
+ expect(Dir).to receive(:glob).with('**/*.rb').and_return(
65
+ [
66
+ 'app/models/post.rb',
67
+ 'app/controllers/posts_controller.rb'
68
+ ]
69
+ )
65
70
  expect(described_class.glob(['**/*.rb'])).to eq(['app/models/post.rb', 'app/controllers/posts_controller.rb'])
66
71
  end
67
72
 
68
73
  it 'filters only paths' do
69
74
  Configuration.only_paths = ['app/models']
70
- expect(Dir).to receive(:glob).with('**/*.rb').and_return(['app/models/post.rb', 'app/controllers/posts_controller.rb'])
75
+ expect(Dir).to receive(:glob).with('**/*.rb').and_return(
76
+ [
77
+ 'app/models/post.rb',
78
+ 'app/controllers/posts_controller.rb'
79
+ ]
80
+ )
71
81
  expect(described_class.glob(['**/*.rb'])).to eq(['app/models/post.rb'])
72
82
  end
73
83
 
74
84
  it 'skip files' do
75
85
  Configuration.skip_paths = ['app/controllers/**/*']
76
- expect(Dir).to receive(:glob).with('**/*.rb').and_return(['app/models/post.rb', 'app/controllers/posts_controller.rb'])
86
+ expect(Dir).to receive(:glob).with('**/*.rb').and_return(
87
+ [
88
+ 'app/models/post.rb',
89
+ 'app/controllers/posts_controller.rb'
90
+ ]
91
+ )
77
92
  expect(Dir).to receive(:glob).with('app/controllers/**/*').and_return(['app/controllers/posts_controller.rb'])
78
93
  expect(described_class.glob(['**/*.rb'])).to eq(['app/models/post.rb'])
79
94
  end
80
95
  end
81
96
  end
82
- end
97
+ end
@@ -20,9 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_runtime_dependency "activesupport", "< 7.0.0"
23
- spec.add_runtime_dependency "erubis"
24
23
  spec.add_runtime_dependency "node_query", ">= 1.12.0"
25
- spec.add_runtime_dependency "node_mutation", ">= 1.9.2"
24
+ spec.add_runtime_dependency "node_mutation", ">= 1.12.1"
26
25
  spec.add_runtime_dependency "parser"
27
26
  spec.add_runtime_dependency "parser_node_ext", ">= 1.0.0"
28
27
  spec.add_runtime_dependency "parallel"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.5
4
+ version: 1.21.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-15 00:00:00.000000000 Z
11
+ date: 2023-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "<"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 7.0.0
27
- - !ruby/object:Gem::Dependency
28
- name: erubis
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: node_query
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +44,14 @@ dependencies:
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: 1.9.2
47
+ version: 1.12.1
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - ">="
67
53
  - !ruby/object:Gem::Version
68
- version: 1.9.2
54
+ version: 1.12.1
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: parser
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -188,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
174
  - !ruby/object:Gem::Version
189
175
  version: '0'
190
176
  requirements: []
191
- rubygems_version: 3.4.1
177
+ rubygems_version: 3.4.6
192
178
  signing_key:
193
179
  specification_version: 4
194
180
  summary: convert ruby code to better syntax.