Skip to content

Commit 758d154

Browse files
committed
use PRISM_PARSER in rails/convert_rails_env
1 parent d48d722 commit 758d154

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

lib/rails/convert_rails_env.rb

+10-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
Synvert::Rewriter.new 'rails', 'convert_rails_env' do
4-
configure(parser: Synvert::PARSER_PARSER)
4+
configure(parser: Synvert::PRISM_PARSER)
55

66
description <<~EOS
77
It converts RAILS_ENV to Rails.env.
@@ -33,10 +33,7 @@
3333
# RAILS_ENV == 'test'
3434
# =>
3535
# Rails.env == 'test'
36-
with_node node_type: 'const', to_source: 'RAILS_ENV' do
37-
replace_with 'Rails.env'
38-
end
39-
with_node node_type: 'const', to_source: '::RAILS_ENV' do
36+
with_node node_type: 'constant_read_node', name: 'RAILS_ENV' do
4037
replace_with 'Rails.env'
4138
end
4239
end
@@ -45,33 +42,29 @@
4542
# Rails.env == 'test'
4643
# =>
4744
# Rails.env.test?
48-
with_node node_type: 'send', receiver: 'Rails.env', message: '==', arguments: { size: 1 } do
49-
env = node.arguments.first.to_value
50-
replace_with "Rails.env.#{env}?"
45+
with_node node_type: 'call_node', receiver: 'Rails.env', name: '==', arguments: { node_type: 'arguments_node', arguments: { size: 1 } } do
46+
replace_with "Rails.env.{{arguments.arguments.0.to_value}}?"
5147
end
5248

5349
# 'development' == Rails.env
5450
# =>
5551
# Rails.env.development?
56-
with_node node_type: 'send', arguments: { first: 'Rails.env' }, message: '==' do
57-
env = node.receiver.to_value
58-
replace_with "Rails.env.#{env}?"
52+
with_node node_type: 'call_node', name: '==', arguments: { node_type: 'arguments_node', arguments: { size: 1, first: 'Rails.env' } } do
53+
replace_with "Rails.env.{{receiver.to_value}}?"
5954
end
6055

6156
# Rails.env != 'test'
6257
# =>
6358
# !Rails.env.test?
64-
with_node node_type: 'send', receiver: 'Rails.env', message: '!=', arguments: { size: 1 } do
65-
env = node.arguments.first.to_value
66-
replace_with "!Rails.env.#{env}?"
59+
with_node node_type: 'call_node', receiver: 'Rails.env', name: '!=', arguments: { node_type: 'arguments_node', arguments: { size: 1 } } do
60+
replace_with "!Rails.env.{{arguments.arguments.0.to_value}}?"
6761
end
6862

6963
# 'development' != Rails.env
7064
# =>
7165
# !Rails.env.development?
72-
with_node node_type: 'send', arguments: { first: 'Rails.env' }, message: '!=' do
73-
env = node.receiver.to_value
74-
replace_with "!Rails.env.#{env}?"
66+
with_node node_type: 'call_node', name: '!=', arguments: { node_type: 'arguments_node', arguments: { size: 1, first: 'Rails.env' } } do
67+
replace_with "!Rails.env.{{receiver.to_value}}?"
7568
end
7669
end
7770
end

spec/rails/convert_rails_env_spec.rb

-2
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@
77
let(:fake_file_path) { 'config/initializers/constant.rb' }
88
let(:test_content) { <<~EOS }
99
RAILS_ENV
10-
::RAILS_ENV
1110
RAILS_ENV == 'test'
1211
'development' == RAILS_ENV
1312
RAILS_ENV != 'test'
1413
'development' != RAILS_ENV
1514
EOS
1615

1716
let(:test_rewritten_content) { <<~EOS }
18-
Rails.env
1917
Rails.env
2018
Rails.env.test?
2119
Rails.env.development?

0 commit comments

Comments
 (0)