synvert 0.0.17 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +4 -0
- data/README.md +7 -26
- data/bin/synvert +0 -1
- data/lib/synvert/cli.rb +26 -14
- data/lib/synvert/snippet.rb +17 -0
- data/lib/synvert/version.rb +1 -1
- data/lib/synvert.rb +3 -11
- data/synvert.gemspec +2 -3
- metadata +6 -85
- data/lib/synvert/configuration.rb +0 -25
- data/lib/synvert/exceptions.rb +0 -13
- data/lib/synvert/node_ext.rb +0 -319
- data/lib/synvert/rewriter/action.rb +0 -224
- data/lib/synvert/rewriter/condition.rb +0 -56
- data/lib/synvert/rewriter/gem_spec.rb +0 -42
- data/lib/synvert/rewriter/instance.rb +0 -185
- data/lib/synvert/rewriter/scope.rb +0 -46
- data/lib/synvert/rewriter.rb +0 -200
- data/lib/synvert/snippets/check_syntax.rb +0 -5
- data/lib/synvert/snippets/factory_girl/syntax_methods.rb +0 -98
- data/lib/synvert/snippets/rails/convert_dynamic_finders.rb +0 -93
- data/lib/synvert/snippets/rails/strong_parameters.rb +0 -93
- data/lib/synvert/snippets/rails/upgrade_3_0_to_3_1.rb +0 -135
- data/lib/synvert/snippets/rails/upgrade_3_1_to_3_2.rb +0 -42
- data/lib/synvert/snippets/rails/upgrade_3_2_to_4_0.rb +0 -230
- data/lib/synvert/snippets/rspec/be_close_to_be_within.rb +0 -18
- data/lib/synvert/snippets/rspec/block_to_expect.rb +0 -22
- data/lib/synvert/snippets/rspec/boolean_matcher.rb +0 -20
- data/lib/synvert/snippets/rspec/collection_matcher.rb +0 -34
- data/lib/synvert/snippets/rspec/its_to_it.rb +0 -89
- data/lib/synvert/snippets/rspec/message_expectation.rb +0 -41
- data/lib/synvert/snippets/rspec/method_stub.rb +0 -84
- data/lib/synvert/snippets/rspec/negative_error_expectation.rb +0 -21
- data/lib/synvert/snippets/rspec/new_syntax.rb +0 -18
- data/lib/synvert/snippets/rspec/one_liner_expectation.rb +0 -71
- data/lib/synvert/snippets/rspec/should_to_expect.rb +0 -50
- data/lib/synvert/snippets/rspec/stub_and_mock_to_double.rb +0 -22
- data/lib/synvert/snippets/ruby/new_hash_syntax.rb +0 -21
- data/lib/synvert/snippets/ruby/new_lambda_syntax.rb +0 -20
- data/spec/spec_helper.rb +0 -26
- data/spec/support/parser_helper.rb +0 -5
- data/spec/synvert/node_ext_spec.rb +0 -201
- data/spec/synvert/rewriter/action_spec.rb +0 -225
- data/spec/synvert/rewriter/condition_spec.rb +0 -106
- data/spec/synvert/rewriter/gem_spec_spec.rb +0 -52
- data/spec/synvert/rewriter/instance_spec.rb +0 -163
- data/spec/synvert/rewriter/scope_spec.rb +0 -42
- data/spec/synvert/rewriter_spec.rb +0 -153
- data/spec/synvert/snippets/factory_girl/syntax_methods_spec.rb +0 -154
- data/spec/synvert/snippets/rails/convert_dynamic_finders_spec.rb +0 -83
- data/spec/synvert/snippets/rails/strong_parameters_spec.rb +0 -132
- data/spec/synvert/snippets/rails/upgrade_3_0_to_3_1_spec.rb +0 -88
- data/spec/synvert/snippets/rails/upgrade_3_1_to_3_2_spec.rb +0 -41
- data/spec/synvert/snippets/rails/upgrade_3_2_to_4_0_spec.rb +0 -299
- data/spec/synvert/snippets/rspec/new_syntax_spec.rb +0 -183
- data/spec/synvert/snippets/ruby/new_hash_syntax_spec.rb +0 -27
- data/spec/synvert/snippets/ruby/new_lambda_syntax_spec.rb +0 -27
@@ -1,153 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Synvert
|
4
|
-
describe Rewriter do
|
5
|
-
it 'parses description' do
|
6
|
-
rewriter = Rewriter.new 'name' do
|
7
|
-
description 'rewriter description'
|
8
|
-
end
|
9
|
-
rewriter.process
|
10
|
-
expect(rewriter.description).to eq 'rewriter description'
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'parses if_gem' do
|
14
|
-
expect(Rewriter::GemSpec).to receive(:new).with('synvert', {gte: '1.0.0'})
|
15
|
-
rewriter = Rewriter.new 'name' do
|
16
|
-
if_gem 'synvert', {gte: '1.0.0'}
|
17
|
-
end
|
18
|
-
rewriter.process
|
19
|
-
end
|
20
|
-
|
21
|
-
describe 'parses within_file' do
|
22
|
-
it 'does nothing if if_gem not match' do
|
23
|
-
expect_any_instance_of(Rewriter::GemSpec).to receive(:match?).and_return(false)
|
24
|
-
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
25
|
-
rewriter = Rewriter.new 'name' do
|
26
|
-
if_gem 'synvert', '1.0.0'
|
27
|
-
within_file 'config/routes.rb' do; end
|
28
|
-
end
|
29
|
-
rewriter.process
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'delegates process to instances if if_gem not exist' do
|
33
|
-
expect_any_instance_of(Rewriter::Instance).to receive(:process)
|
34
|
-
rewriter = Rewriter.new 'name' do
|
35
|
-
within_file 'config/routes.rb' do; end
|
36
|
-
end
|
37
|
-
rewriter.process
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'delegates process to instances if if_gem matches' do
|
41
|
-
expect_any_instance_of(Rewriter::GemSpec).to receive(:match?).and_return(true)
|
42
|
-
expect_any_instance_of(Rewriter::Instance).to receive(:process)
|
43
|
-
rewriter = Rewriter.new 'name' do
|
44
|
-
if_gem 'synvert', '1.0.0'
|
45
|
-
within_file 'config/routes.rb' do; end
|
46
|
-
end
|
47
|
-
rewriter.process
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'does nothing in sandbox mode' do
|
51
|
-
expect_any_instance_of(Rewriter::GemSpec).not_to receive(:match?)
|
52
|
-
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
53
|
-
rewriter = Rewriter.new 'name' do
|
54
|
-
if_gem 'synvert', '1.0.0'
|
55
|
-
within_file 'config/routes.rb' do; end
|
56
|
-
end
|
57
|
-
rewriter.process_with_sandbox
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe 'parses add_file' do
|
62
|
-
it 'creates a new file' do
|
63
|
-
rewriter = Rewriter.new 'rewriter2' do
|
64
|
-
add_file './foo.bar', 'FooBar'
|
65
|
-
end
|
66
|
-
rewriter.process
|
67
|
-
expect(File.read './foo.bar').to eq 'FooBar'
|
68
|
-
FileUtils.rm './foo.bar'
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'does nothing in sandbox mode' do
|
72
|
-
rewriter = Rewriter.new 'rewriter2' do
|
73
|
-
add_file './foo.bar', 'FooBar'
|
74
|
-
end
|
75
|
-
rewriter.process_with_sandbox
|
76
|
-
expect(File.exist?('./foo.bar')).to be_false
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe 'parses add_snippet' do
|
81
|
-
it 'processes the rewritter' do
|
82
|
-
rewriter1 = Rewriter.new 'rewriter1'
|
83
|
-
rewriter2 = Rewriter.new 'rewriter2' do
|
84
|
-
add_snippet :rewriter1
|
85
|
-
end
|
86
|
-
expect(rewriter1).to receive(:process)
|
87
|
-
rewriter2.process
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'adds sub_snippets' do
|
91
|
-
rewriter1 = Rewriter.new 'rewriter1'
|
92
|
-
rewriter2 = Rewriter.new 'rewriter2' do
|
93
|
-
add_snippet :rewriter1
|
94
|
-
end
|
95
|
-
expect(rewriter1).to receive(:process)
|
96
|
-
rewriter2.process
|
97
|
-
expect(rewriter2.sub_snippets).to eq [rewriter1]
|
98
|
-
end
|
99
|
-
|
100
|
-
it 'raises RewriterNotFound' do
|
101
|
-
rewriter = Rewriter.new 'name' do
|
102
|
-
add_snippet :not_exist
|
103
|
-
end
|
104
|
-
expect { rewriter.process }.to raise_error(RewriterNotFound)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'parses helper_method' do
|
109
|
-
instance = double
|
110
|
-
expect(Rewriter::Instance).to receive(:new).and_return(instance)
|
111
|
-
expect(instance).to receive(:process)
|
112
|
-
rewriter = Rewriter.new 'name' do
|
113
|
-
helper_method 'dynamic_helper' do |arg1, arg2|
|
114
|
-
'dynamic result'
|
115
|
-
end
|
116
|
-
within_file 'spec/spec_helper.rb' do; end
|
117
|
-
end
|
118
|
-
rewriter.process
|
119
|
-
expect(instance.dynamic_helper('arg1', 'arg2')).to eq 'dynamic result'
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'parses todo' do
|
123
|
-
rewriter = Rewriter.new 'name' do
|
124
|
-
todo "this rewriter doesn't do blah blah blah"
|
125
|
-
end
|
126
|
-
rewriter.process
|
127
|
-
expect(rewriter.todo).to eq "this rewriter doesn't do blah blah blah"
|
128
|
-
end
|
129
|
-
|
130
|
-
describe 'class methods' do
|
131
|
-
before :each do
|
132
|
-
Rewriter.clear
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'registers and fetches' do
|
136
|
-
rewriter = Rewriter.new 'rewriter'
|
137
|
-
expect(Rewriter.fetch('rewriter')).to eq rewriter
|
138
|
-
end
|
139
|
-
|
140
|
-
it 'registers and calls rewriter' do
|
141
|
-
rewriter = Rewriter.new 'rewriter'
|
142
|
-
expect(rewriter).to receive(:process)
|
143
|
-
Rewriter.call 'rewriter'
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'registers and lists all available rewriters' do
|
147
|
-
rewriter1 = Rewriter.new 'rewriter1'
|
148
|
-
rewriter2 = Rewriter.new 'rewriter2'
|
149
|
-
expect(Rewriter.availables).to eq [rewriter1, rewriter2]
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
@@ -1,154 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'FactoryGirl uses short synax' do
|
4
|
-
before do
|
5
|
-
Synvert::Configuration.instance.set :path, '.'
|
6
|
-
allow_any_instance_of(Synvert::Rewriter::GemSpec).to receive(:match?).and_return(true)
|
7
|
-
rewriter_path = File.join(File.dirname(__FILE__), '../../../../lib/synvert/snippets/factory_girl/syntax_methods.rb')
|
8
|
-
@rewriter = eval(File.read(rewriter_path))
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'rspec', fakefs: true do
|
12
|
-
let(:spec_helper_content) {'''
|
13
|
-
RSpec.configure do |config|
|
14
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
15
|
-
config.run_all_when_everything_filtered = true
|
16
|
-
end
|
17
|
-
'''}
|
18
|
-
let(:spec_helper_rewritten_content) {'''
|
19
|
-
RSpec.configure do |config|
|
20
|
-
config.include FactoryGirl::Syntax::Methods
|
21
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
22
|
-
config.run_all_when_everything_filtered = true
|
23
|
-
end
|
24
|
-
'''}
|
25
|
-
let(:post_spec_content) {'''
|
26
|
-
describe Post do
|
27
|
-
it "tests post" do
|
28
|
-
post1 = FactoryGirl.create(:post)
|
29
|
-
post2 = FactoryGirl.build(:post)
|
30
|
-
post_attributes = FactoryGirl.attributes_for(:post)
|
31
|
-
post3 = FactoryGirl.build_stubbed(:post)
|
32
|
-
posts1 = FactoryGirl.create_list(:post, 2)
|
33
|
-
posts2 = FactoryGirl.build_list(:post, 2)
|
34
|
-
posts3 = FactoryGirl.create_pair(:post)
|
35
|
-
posts4 = FactoryGirl.build_pair(:post)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
'''}
|
39
|
-
let(:post_spec_rewritten_content) {'''
|
40
|
-
describe Post do
|
41
|
-
it "tests post" do
|
42
|
-
post1 = create(:post)
|
43
|
-
post2 = build(:post)
|
44
|
-
post_attributes = attributes_for(:post)
|
45
|
-
post3 = build_stubbed(:post)
|
46
|
-
posts1 = create_list(:post, 2)
|
47
|
-
posts2 = build_list(:post, 2)
|
48
|
-
posts3 = create_pair(:post)
|
49
|
-
posts4 = build_pair(:post)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
'''}
|
53
|
-
|
54
|
-
it 'process' do
|
55
|
-
FileUtils.mkdir 'spec'
|
56
|
-
FileUtils.mkdir 'spec/models'
|
57
|
-
File.write 'spec/spec_helper.rb', spec_helper_content
|
58
|
-
File.write 'spec/models/post_spec.rb', post_spec_content
|
59
|
-
@rewriter.process
|
60
|
-
expect(File.read 'spec/spec_helper.rb').to eq spec_helper_rewritten_content
|
61
|
-
expect(File.read 'spec/models/post_spec.rb').to eq post_spec_rewritten_content
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe 'test/unit', fakefs: true do
|
66
|
-
let(:test_helper_content) {'''
|
67
|
-
class ActiveSupport::TestCase
|
68
|
-
end
|
69
|
-
'''}
|
70
|
-
let(:test_helper_rewritten_content) {'''
|
71
|
-
class ActiveSupport::TestCase
|
72
|
-
include FactoryGirl::Syntax::Methods
|
73
|
-
end
|
74
|
-
'''}
|
75
|
-
let(:post_test_content) {'''
|
76
|
-
test "post" do
|
77
|
-
post1 = FactoryGirl.create(:post)
|
78
|
-
post2 = FactoryGirl.build(:post)
|
79
|
-
post_attributes = FactoryGirl.attributes_for(:post)
|
80
|
-
post3 = FactoryGirl.build_stubbed(:post)
|
81
|
-
posts1 = FactoryGirl.create_list(:post, 2)
|
82
|
-
posts2 = FactoryGirl.build_list(:post, 2)
|
83
|
-
posts3 = FactoryGirl.create_pair(:post)
|
84
|
-
posts4 = FactoryGirl.build_pair(:post)
|
85
|
-
end
|
86
|
-
'''}
|
87
|
-
let(:post_test_rewritten_content) {'''
|
88
|
-
test "post" do
|
89
|
-
post1 = create(:post)
|
90
|
-
post2 = build(:post)
|
91
|
-
post_attributes = attributes_for(:post)
|
92
|
-
post3 = build_stubbed(:post)
|
93
|
-
posts1 = create_list(:post, 2)
|
94
|
-
posts2 = build_list(:post, 2)
|
95
|
-
posts3 = create_pair(:post)
|
96
|
-
posts4 = build_pair(:post)
|
97
|
-
end
|
98
|
-
'''}
|
99
|
-
|
100
|
-
it 'process' do
|
101
|
-
FileUtils.mkdir 'test'
|
102
|
-
FileUtils.mkdir 'test/unit'
|
103
|
-
File.write 'test/test_helper.rb', test_helper_content
|
104
|
-
File.write 'test/unit/post_test.rb', post_test_content
|
105
|
-
@rewriter.process
|
106
|
-
expect(File.read 'test/test_helper.rb').to eq test_helper_rewritten_content
|
107
|
-
expect(File.read 'test/unit/post_test.rb').to eq post_test_rewritten_content
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe 'cucumber', fakefs: true do
|
112
|
-
let(:env_content) {'''
|
113
|
-
require "cucumber/rails"
|
114
|
-
'''}
|
115
|
-
let(:env_rewritten_content) {'''
|
116
|
-
require "cucumber/rails"
|
117
|
-
World(FactoryGirl::Syntax::Methods)
|
118
|
-
'''}
|
119
|
-
let(:post_steps_content) {'''
|
120
|
-
test "post" do
|
121
|
-
post1 = FactoryGirl.create(:post)
|
122
|
-
post2 = FactoryGirl.build(:post)
|
123
|
-
post_attributes = FactoryGirl.attributes_for(:post)
|
124
|
-
post3 = FactoryGirl.build_stubbed(:post)
|
125
|
-
posts1 = FactoryGirl.create_list(:post, 2)
|
126
|
-
posts2 = FactoryGirl.build_list(:post, 2)
|
127
|
-
posts3 = FactoryGirl.create_pair(:post)
|
128
|
-
posts4 = FactoryGirl.build_pair(:post)
|
129
|
-
end
|
130
|
-
'''}
|
131
|
-
let(:post_steps_rewritten_content) {'''
|
132
|
-
test "post" do
|
133
|
-
post1 = create(:post)
|
134
|
-
post2 = build(:post)
|
135
|
-
post_attributes = attributes_for(:post)
|
136
|
-
post3 = build_stubbed(:post)
|
137
|
-
posts1 = create_list(:post, 2)
|
138
|
-
posts2 = build_list(:post, 2)
|
139
|
-
posts3 = create_pair(:post)
|
140
|
-
posts4 = build_pair(:post)
|
141
|
-
end
|
142
|
-
'''}
|
143
|
-
|
144
|
-
it 'process' do
|
145
|
-
FileUtils.mkdir_p 'features/support'
|
146
|
-
FileUtils.mkdir_p 'features/step_definitions'
|
147
|
-
File.write 'features/support/env.rb', env_content
|
148
|
-
File.write 'features/step_definitions/post_steps.rb', post_steps_content
|
149
|
-
@rewriter.process
|
150
|
-
expect(File.read 'features/support/env.rb').to eq env_rewritten_content
|
151
|
-
expect(File.read 'features/step_definitions/post_steps.rb').to eq post_steps_rewritten_content
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Convert dynamic finders' do
|
4
|
-
before do
|
5
|
-
Synvert::Configuration.instance.set :path, '.'
|
6
|
-
rewriter_path = File.join(File.dirname(__FILE__), '../../../../lib/synvert/snippets/rails/convert_dynamic_finders.rb')
|
7
|
-
@rewriter = eval(File.read(rewriter_path))
|
8
|
-
allow_any_instance_of(Synvert::Rewriter::GemSpec).to receive(:match?).and_return(true)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'with fakefs', fakefs: true do
|
12
|
-
let(:post_model_content) {'''
|
13
|
-
class Post < ActiveRecord::Base
|
14
|
-
def active_users
|
15
|
-
User.find_all_by_email_and_active(email, true)
|
16
|
-
User.find_by_email_and_active(email, true)
|
17
|
-
User.find_last_by_email_and_active(email, true)
|
18
|
-
User.scoped_by_email_and_active(email, true)
|
19
|
-
User.find_by_sql(["select * from users where email = ?", email])
|
20
|
-
User.find_by_id(id)
|
21
|
-
User.find_by_account_id(Account.find_by_email(account_email).id)
|
22
|
-
User.find_or_create_by_email_and_login(parmas)
|
23
|
-
User.find_or_initialize_by_account_id(:account_id => account_id)
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.active_admins
|
27
|
-
find_all_by_role_and_active("admin", true)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
'''}
|
31
|
-
let(:post_model_rewritten_content) {'''
|
32
|
-
class Post < ActiveRecord::Base
|
33
|
-
def active_users
|
34
|
-
User.where(email: email, active: true)
|
35
|
-
User.where(email: email, active: true).first
|
36
|
-
User.where(email: email, active: true).last
|
37
|
-
User.where(email: email, active: true)
|
38
|
-
User.find_by_sql(["select * from users where email = ?", email])
|
39
|
-
User.find(id)
|
40
|
-
User.where(account_id: Account.where(email: account_email).first.id).first
|
41
|
-
User.find_or_create_by(parmas)
|
42
|
-
User.find_or_initialize_by(:account_id => account_id)
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.active_admins
|
46
|
-
where(role: "admin", active: true)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
'''}
|
50
|
-
let(:users_controller_content) {'''
|
51
|
-
class UsersController < ApplicationController
|
52
|
-
def new
|
53
|
-
@user = User.find_or_initialize_by_login_and_email(params[:user][:login], params[:user][:email])
|
54
|
-
end
|
55
|
-
|
56
|
-
def create
|
57
|
-
@user = User.find_or_create_by_login_and_email(params[:user][:login], params[:user][:email])
|
58
|
-
end
|
59
|
-
end
|
60
|
-
'''}
|
61
|
-
let(:users_controller_rewritten_content) {'''
|
62
|
-
class UsersController < ApplicationController
|
63
|
-
def new
|
64
|
-
@user = User.find_or_initialize_by(login: params[:user][:login], email: params[:user][:email])
|
65
|
-
end
|
66
|
-
|
67
|
-
def create
|
68
|
-
@user = User.find_or_create_by(login: params[:user][:login], email: params[:user][:email])
|
69
|
-
end
|
70
|
-
end
|
71
|
-
'''}
|
72
|
-
|
73
|
-
it 'process' do
|
74
|
-
FileUtils.mkdir_p 'app/models'
|
75
|
-
FileUtils.mkdir_p 'app/controllers'
|
76
|
-
File.write 'app/models/post.rb', post_model_content
|
77
|
-
File.write 'app/controllers/users_controller.rb', users_controller_content
|
78
|
-
@rewriter.process
|
79
|
-
expect(File.read 'app/models/post.rb').to eq post_model_rewritten_content
|
80
|
-
expect(File.read 'app/controllers/users_controller.rb').to eq users_controller_rewritten_content
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'rails strong_parameters snippet' do
|
4
|
-
before do
|
5
|
-
Synvert::Configuration.instance.set :path, '.'
|
6
|
-
rewriter_path = File.join(File.dirname(__FILE__), '../../../../lib/synvert/snippets/rails/strong_parameters.rb')
|
7
|
-
@rewriter = eval(File.read(rewriter_path))
|
8
|
-
allow_any_instance_of(Synvert::Rewriter::GemSpec).to receive(:match?).and_return(true)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'with fakefs', fakefs: true do
|
12
|
-
let(:application_content) {'''
|
13
|
-
module Synvert
|
14
|
-
class Application < Rails::Application
|
15
|
-
config.active_record.whitelist_attributes = true
|
16
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
17
|
-
end
|
18
|
-
end
|
19
|
-
'''}
|
20
|
-
let(:application_rewritten_content) {'''
|
21
|
-
module Synvert
|
22
|
-
class Application < Rails::Application
|
23
|
-
end
|
24
|
-
end
|
25
|
-
'''}
|
26
|
-
let(:post_model_content) {'''
|
27
|
-
class Post < ActiveRecord::Base
|
28
|
-
attr_accessible :title, :description
|
29
|
-
end
|
30
|
-
'''}
|
31
|
-
let(:post_model_rewritten_content) {'''
|
32
|
-
class Post < ActiveRecord::Base
|
33
|
-
end
|
34
|
-
'''}
|
35
|
-
let(:user_model_content) {'''
|
36
|
-
class User < ActiveRecord::Base
|
37
|
-
attr_protected :role, :admin
|
38
|
-
end
|
39
|
-
'''}
|
40
|
-
let(:user_model_rewritten_content) {'''
|
41
|
-
class User < ActiveRecord::Base
|
42
|
-
end
|
43
|
-
'''}
|
44
|
-
let(:schema_content) {'''
|
45
|
-
ActiveRecord::Schema.define(version: 20140211112752) do
|
46
|
-
create_table "users", force: true do |t|
|
47
|
-
t.string "login"
|
48
|
-
t.string "email"
|
49
|
-
t.datetime "created_at"
|
50
|
-
t.datetime "updated_at"
|
51
|
-
t.integer "role", default: 0, null: false
|
52
|
-
t.boolean "admin", default: false, null: false
|
53
|
-
end
|
54
|
-
end
|
55
|
-
'''}
|
56
|
-
let(:posts_controller_content) {'''
|
57
|
-
class PostsController < ApplicationController
|
58
|
-
def update
|
59
|
-
@post = Post.find(params[:id])
|
60
|
-
if @post.update_attributes params[:post]
|
61
|
-
redirect_to post_path(@post)
|
62
|
-
else
|
63
|
-
render :action => :edit
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
'''}
|
68
|
-
let(:posts_controller_rewritten_content) {'''
|
69
|
-
class PostsController < ApplicationController
|
70
|
-
def update
|
71
|
-
@post = Post.find(params[:id])
|
72
|
-
if @post.update_attributes post_params
|
73
|
-
redirect_to post_path(@post)
|
74
|
-
else
|
75
|
-
render :action => :edit
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def post_params
|
80
|
-
params.require(:post).permit(:title, :description)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
'''}
|
84
|
-
let(:users_controller_content) {'''
|
85
|
-
class UsersController < ApplicationController
|
86
|
-
def update
|
87
|
-
@user = User.find(params[:id])
|
88
|
-
if @user.update_attributes params[:user]
|
89
|
-
redirect_to user_path(@user)
|
90
|
-
else
|
91
|
-
render :action => :edit
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
'''}
|
96
|
-
let(:users_controller_rewritten_content) {'''
|
97
|
-
class UsersController < ApplicationController
|
98
|
-
def update
|
99
|
-
@user = User.find(params[:id])
|
100
|
-
if @user.update_attributes user_params
|
101
|
-
redirect_to user_path(@user)
|
102
|
-
else
|
103
|
-
render :action => :edit
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
def user_params
|
108
|
-
params.require(:user).permit(:login, :email, :created_at, :updated_at)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
'''}
|
112
|
-
|
113
|
-
it 'process' do
|
114
|
-
FileUtils.mkdir_p 'config'
|
115
|
-
FileUtils.mkdir_p 'db'
|
116
|
-
FileUtils.mkdir_p 'app/models'
|
117
|
-
FileUtils.mkdir_p 'app/controllers'
|
118
|
-
File.write 'config/application.rb', application_content
|
119
|
-
File.write 'db/schema.rb', schema_content
|
120
|
-
File.write 'app/models/post.rb', post_model_content
|
121
|
-
File.write 'app/models/user.rb', user_model_content
|
122
|
-
File.write 'app/controllers/posts_controller.rb', posts_controller_content
|
123
|
-
File.write 'app/controllers/users_controller.rb', users_controller_content
|
124
|
-
@rewriter.process
|
125
|
-
expect(File.read 'config/application.rb').to eq application_rewritten_content
|
126
|
-
expect(File.read 'app/models/post.rb').to eq post_model_rewritten_content
|
127
|
-
expect(File.read 'app/models/user.rb').to eq user_model_rewritten_content
|
128
|
-
expect(File.read 'app/controllers/posts_controller.rb').to eq posts_controller_rewritten_content
|
129
|
-
expect(File.read 'app/controllers/users_controller.rb').to eq users_controller_rewritten_content
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
@@ -1,88 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Upgrade rails from 3.0 to 3.1' do
|
4
|
-
before do
|
5
|
-
Synvert::Configuration.instance.set :path, '.'
|
6
|
-
rewriter_path = File.join(File.dirname(__FILE__), '../../../../lib/synvert/snippets/rails/upgrade_3_0_to_3_1.rb')
|
7
|
-
@rewriter = eval(File.read(rewriter_path))
|
8
|
-
allow_any_instance_of(Synvert::Rewriter::GemSpec).to receive(:match?).and_return(true)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'with fakefs', fakefs: true do
|
12
|
-
let(:application_content) {"""
|
13
|
-
Synvert::Application.configure do
|
14
|
-
end
|
15
|
-
"""}
|
16
|
-
let(:application_rewritten_content) {"""
|
17
|
-
Synvert::Application.configure do
|
18
|
-
config.assets.enabled = true
|
19
|
-
config.assets.version = '1.0'
|
20
|
-
end
|
21
|
-
"""}
|
22
|
-
let(:development_content) {"""
|
23
|
-
Synvert::Application.configure do
|
24
|
-
config.action_view.debug_rjs = true
|
25
|
-
end
|
26
|
-
"""}
|
27
|
-
let(:development_rewritten_content) {"""
|
28
|
-
Synvert::Application.configure do
|
29
|
-
config.assets.compress = false
|
30
|
-
config.assets.debug = true
|
31
|
-
end
|
32
|
-
"""}
|
33
|
-
let(:production_content) {"""
|
34
|
-
Synvert::Application.configure do
|
35
|
-
end
|
36
|
-
"""}
|
37
|
-
let(:production_rewritten_content) {"""
|
38
|
-
Synvert::Application.configure do
|
39
|
-
config.assets.compress = true
|
40
|
-
config.assets.compile = false
|
41
|
-
config.assets.digest = true
|
42
|
-
end
|
43
|
-
"""}
|
44
|
-
let(:test_content) {"""
|
45
|
-
Synvert::Application.configure do
|
46
|
-
end
|
47
|
-
"""}
|
48
|
-
let(:test_rewritten_content) {'''
|
49
|
-
Synvert::Application.configure do
|
50
|
-
config.serve_static_assets = true
|
51
|
-
config.static_cache_control = "public, max-age=3600"
|
52
|
-
end
|
53
|
-
'''}
|
54
|
-
let(:wrap_parameters_rewritten_content) {"""
|
55
|
-
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
56
|
-
ActiveSupport.on_load(:action_controller) do
|
57
|
-
wrap_parameters format: [:json]
|
58
|
-
end
|
59
|
-
|
60
|
-
# Disable root element in JSON by default.
|
61
|
-
ActiveSupport.on_load(:active_record) do
|
62
|
-
self.include_root_in_json = false
|
63
|
-
end
|
64
|
-
""".strip}
|
65
|
-
let(:session_store_content) {"""
|
66
|
-
Synvert::Application.config.session_store :cookie_store, key: 'somethingold'
|
67
|
-
"""}
|
68
|
-
let(:session_store_rewritten_content) {"""
|
69
|
-
Synvert::Application.config.session_store :cookie_store, key: '_synvert-session'
|
70
|
-
"""}
|
71
|
-
|
72
|
-
it 'process' do
|
73
|
-
FileUtils.mkdir_p 'config/environments'
|
74
|
-
FileUtils.mkdir_p 'config/initializers'
|
75
|
-
File.write 'config/application.rb', application_content
|
76
|
-
File.write 'config/environments/development.rb', development_content
|
77
|
-
File.write 'config/environments/production.rb', production_content
|
78
|
-
File.write 'config/environments/test.rb', test_content
|
79
|
-
File.write 'config/initializers/session_store.rb', session_store_content
|
80
|
-
@rewriter.process
|
81
|
-
expect(File.read 'config/application.rb').to eq application_rewritten_content
|
82
|
-
expect(File.read 'config/environments/production.rb').to eq production_rewritten_content
|
83
|
-
expect(File.read 'config/environments/test.rb').to eq test_rewritten_content
|
84
|
-
expect(File.read 'config/initializers/wrap_parameters.rb').to eq wrap_parameters_rewritten_content
|
85
|
-
expect(File.read 'config/initializers/session_store.rb').to eq session_store_rewritten_content
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Upgrade rails from 3.1 to 3.2' do
|
4
|
-
before do
|
5
|
-
Synvert::Configuration.instance.set :path, '.'
|
6
|
-
rewriter_path = File.join(File.dirname(__FILE__), '../../../../lib/synvert/snippets/rails/upgrade_3_1_to_3_2.rb')
|
7
|
-
@rewriter = eval(File.read(rewriter_path))
|
8
|
-
allow_any_instance_of(Synvert::Rewriter::GemSpec).to receive(:match?).and_return(true)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'with fakefs', fakefs: true do
|
12
|
-
let(:development_content) {'''
|
13
|
-
Synvert::Application.configure do
|
14
|
-
end
|
15
|
-
'''}
|
16
|
-
let(:development_rewritten_content) {'''
|
17
|
-
Synvert::Application.configure do
|
18
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
19
|
-
config.active_record.auto_explain_threshold_in_seconds = 0.5
|
20
|
-
end
|
21
|
-
'''}
|
22
|
-
let(:test_content) {'''
|
23
|
-
Synvert::Application.configure do
|
24
|
-
end
|
25
|
-
'''}
|
26
|
-
let(:test_rewritten_content) {'''
|
27
|
-
Synvert::Application.configure do
|
28
|
-
config.active_record.mass_assignment_sanitizer = :strict
|
29
|
-
end
|
30
|
-
'''}
|
31
|
-
|
32
|
-
it 'process' do
|
33
|
-
FileUtils.mkdir_p 'config/environments'
|
34
|
-
File.write 'config/environments/development.rb', development_content
|
35
|
-
File.write 'config/environments/test.rb', test_content
|
36
|
-
@rewriter.process
|
37
|
-
expect(File.read 'config/environments/development.rb').to eq development_rewritten_content
|
38
|
-
expect(File.read 'config/environments/test.rb').to eq test_rewritten_content
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|