synvert 0.0.17 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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