synvert 0.0.17 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +7 -26
  5. data/bin/synvert +0 -1
  6. data/lib/synvert/cli.rb +26 -14
  7. data/lib/synvert/snippet.rb +17 -0
  8. data/lib/synvert/version.rb +1 -1
  9. data/lib/synvert.rb +3 -11
  10. data/synvert.gemspec +2 -3
  11. metadata +6 -85
  12. data/lib/synvert/configuration.rb +0 -25
  13. data/lib/synvert/exceptions.rb +0 -13
  14. data/lib/synvert/node_ext.rb +0 -319
  15. data/lib/synvert/rewriter/action.rb +0 -224
  16. data/lib/synvert/rewriter/condition.rb +0 -56
  17. data/lib/synvert/rewriter/gem_spec.rb +0 -42
  18. data/lib/synvert/rewriter/instance.rb +0 -185
  19. data/lib/synvert/rewriter/scope.rb +0 -46
  20. data/lib/synvert/rewriter.rb +0 -200
  21. data/lib/synvert/snippets/check_syntax.rb +0 -5
  22. data/lib/synvert/snippets/factory_girl/syntax_methods.rb +0 -98
  23. data/lib/synvert/snippets/rails/convert_dynamic_finders.rb +0 -93
  24. data/lib/synvert/snippets/rails/strong_parameters.rb +0 -93
  25. data/lib/synvert/snippets/rails/upgrade_3_0_to_3_1.rb +0 -135
  26. data/lib/synvert/snippets/rails/upgrade_3_1_to_3_2.rb +0 -42
  27. data/lib/synvert/snippets/rails/upgrade_3_2_to_4_0.rb +0 -230
  28. data/lib/synvert/snippets/rspec/be_close_to_be_within.rb +0 -18
  29. data/lib/synvert/snippets/rspec/block_to_expect.rb +0 -22
  30. data/lib/synvert/snippets/rspec/boolean_matcher.rb +0 -20
  31. data/lib/synvert/snippets/rspec/collection_matcher.rb +0 -34
  32. data/lib/synvert/snippets/rspec/its_to_it.rb +0 -89
  33. data/lib/synvert/snippets/rspec/message_expectation.rb +0 -41
  34. data/lib/synvert/snippets/rspec/method_stub.rb +0 -84
  35. data/lib/synvert/snippets/rspec/negative_error_expectation.rb +0 -21
  36. data/lib/synvert/snippets/rspec/new_syntax.rb +0 -18
  37. data/lib/synvert/snippets/rspec/one_liner_expectation.rb +0 -71
  38. data/lib/synvert/snippets/rspec/should_to_expect.rb +0 -50
  39. data/lib/synvert/snippets/rspec/stub_and_mock_to_double.rb +0 -22
  40. data/lib/synvert/snippets/ruby/new_hash_syntax.rb +0 -21
  41. data/lib/synvert/snippets/ruby/new_lambda_syntax.rb +0 -20
  42. data/spec/spec_helper.rb +0 -26
  43. data/spec/support/parser_helper.rb +0 -5
  44. data/spec/synvert/node_ext_spec.rb +0 -201
  45. data/spec/synvert/rewriter/action_spec.rb +0 -225
  46. data/spec/synvert/rewriter/condition_spec.rb +0 -106
  47. data/spec/synvert/rewriter/gem_spec_spec.rb +0 -52
  48. data/spec/synvert/rewriter/instance_spec.rb +0 -163
  49. data/spec/synvert/rewriter/scope_spec.rb +0 -42
  50. data/spec/synvert/rewriter_spec.rb +0 -153
  51. data/spec/synvert/snippets/factory_girl/syntax_methods_spec.rb +0 -154
  52. data/spec/synvert/snippets/rails/convert_dynamic_finders_spec.rb +0 -83
  53. data/spec/synvert/snippets/rails/strong_parameters_spec.rb +0 -132
  54. data/spec/synvert/snippets/rails/upgrade_3_0_to_3_1_spec.rb +0 -88
  55. data/spec/synvert/snippets/rails/upgrade_3_1_to_3_2_spec.rb +0 -41
  56. data/spec/synvert/snippets/rails/upgrade_3_2_to_4_0_spec.rb +0 -299
  57. data/spec/synvert/snippets/rspec/new_syntax_spec.rb +0 -183
  58. data/spec/synvert/snippets/ruby/new_hash_syntax_spec.rb +0 -27
  59. 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