rails_renamer 0.0.1 → 0.0.2
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.
- data/README.md +6 -5
- data/lib/rails_renamer.rb +0 -3
- data/lib/rails_renamer/content_replacer.rb +11 -5
- data/lib/rails_renamer/version.rb +1 -1
- data/spec/content_replacer_spec.rb +5 -4
- data/spec/integrations/rails_renamer_spec.rb +46 -0
- metadata +3 -1
data/README.md
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
rails_renamer
|
2
|
-
=============
|
3
|
-
=======
|
4
1
|
# RailsRenamer
|
5
2
|
|
6
|
-
|
3
|
+
A gem to help you rename your Rails application after creating it.
|
7
4
|
|
8
5
|
## Installation
|
9
6
|
|
@@ -21,7 +18,11 @@ Or install it yourself as:
|
|
21
18
|
|
22
19
|
## Usage
|
23
20
|
|
24
|
-
|
21
|
+
The easiest way to use the gem is to do the following:
|
22
|
+
|
23
|
+
1. Add it to your application's Gemfile.
|
24
|
+
2. Open the Rails console (rails c).
|
25
|
+
3. Run the following command: `RailsRenamer.rename_current_application('./', new_application_name)` where `new_application_name` is your new desired app name.
|
25
26
|
|
26
27
|
## Contributing
|
27
28
|
|
data/lib/rails_renamer.rb
CHANGED
@@ -5,9 +5,6 @@ require 'rails_renamer/file_repository'
|
|
5
5
|
require 'rails_renamer/file_iterator'
|
6
6
|
require 'rails_renamer/content_replacer'
|
7
7
|
|
8
|
-
require 'pry'
|
9
|
-
|
10
|
-
|
11
8
|
module RailsRenamer
|
12
9
|
def self.rename_current_application(application_root, new_app_name)
|
13
10
|
application_file = application_root + RailsRenamer::FileRepository.application_file
|
@@ -2,20 +2,26 @@ module RailsRenamer
|
|
2
2
|
class ContentReplacer
|
3
3
|
def self.find_and_replace_application_name(file_name, current_name, new_app_name)
|
4
4
|
begin
|
5
|
-
file_stream = File.open(file_name, 'r
|
6
|
-
rescue Errno::ENOENT
|
5
|
+
file_stream = File.open(file_name, 'r')
|
6
|
+
rescue Errno::ENOENT
|
7
7
|
puts "The specified file does not exist: #{file_name}"
|
8
8
|
return
|
9
9
|
end
|
10
10
|
|
11
11
|
contents = file_stream.read
|
12
|
-
|
13
12
|
contents.gsub!(current_name, new_app_name)
|
14
13
|
|
15
|
-
File.
|
14
|
+
File.delete(file_name)
|
15
|
+
write_new_file(file_name, contents)
|
16
|
+
contents
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def self.write_new_file(file_name, contents)
|
22
|
+
file_stream = File.open(file_name, 'w')
|
16
23
|
file_stream.write(contents)
|
17
24
|
file_stream.close
|
18
|
-
contents
|
19
25
|
end
|
20
26
|
end
|
21
27
|
end
|
@@ -7,8 +7,9 @@ describe RailsRenamer::ContentReplacer do
|
|
7
7
|
let(:file) { double(:file, read: file_contents, write: nil, close: nil) }
|
8
8
|
|
9
9
|
before do
|
10
|
-
File.stub(:open).with('file/to/parse', 'r
|
11
|
-
File.stub(:
|
10
|
+
File.stub(:open).with('file/to/parse', 'r') { file }
|
11
|
+
File.stub(:open).with('file/to/parse', 'w') { file }
|
12
|
+
File.stub(:delete)
|
12
13
|
end
|
13
14
|
|
14
15
|
it "replaces the existing file name with the given name" do
|
@@ -25,8 +26,8 @@ describe RailsRenamer::ContentReplacer do
|
|
25
26
|
new_contents.should == "BAZ baz foo FOO Bar"
|
26
27
|
end
|
27
28
|
|
28
|
-
it "
|
29
|
-
File.should_receive(:
|
29
|
+
it "deletes the file" do
|
30
|
+
File.should_receive(:delete)
|
30
31
|
RailsRenamer::ContentReplacer.
|
31
32
|
find_and_replace_application_name('file/to/parse', 'Foo', 'Bar')
|
32
33
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "RailsRenamer" do
|
4
|
+
let(:files_to_check) { ['config/application.rb',
|
5
|
+
'config/environment.rb',
|
6
|
+
'config/environments/development.rb',
|
7
|
+
'config/environments/production.rb',
|
8
|
+
'config/environments/test.rb',
|
9
|
+
'config/initializers/secret_token.rb',
|
10
|
+
'config/initializers/session_store.rb',
|
11
|
+
'config/mongoid.yml',
|
12
|
+
'config/routes.rb',
|
13
|
+
'config.ru',
|
14
|
+
'Rakefile',
|
15
|
+
'app/views/layouts/application.html.erb']
|
16
|
+
}
|
17
|
+
|
18
|
+
after do
|
19
|
+
replace_test_rails_application
|
20
|
+
end
|
21
|
+
|
22
|
+
it "renames the classes and references in a rails application" do
|
23
|
+
application_root = 'spec/integrations/test_rails_app/'
|
24
|
+
new_application_name = 'NewApplication'
|
25
|
+
|
26
|
+
RailsRenamer.rename_current_application(application_root, new_application_name)
|
27
|
+
|
28
|
+
files_to_check.each do |file_name|
|
29
|
+
begin
|
30
|
+
file_contents = File.open("#{Dir.pwd + '/'}#{application_root}#{file_name}", 'r').read
|
31
|
+
rescue Errno::ENOENT => e
|
32
|
+
puts "Skipping unused file: #{file_name}"
|
33
|
+
next
|
34
|
+
end
|
35
|
+
|
36
|
+
file_contents.should be
|
37
|
+
file_contents.should_not include("DefaultApp")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def replace_test_rails_application
|
42
|
+
`rm -rf spec/integrations/test_rails_app`
|
43
|
+
`cp -r spec/integrations/original_rails_app/ spec/integrations/test_rails_app`
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_renamer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- spec/application_file_parser_spec.rb
|
69
69
|
- spec/content_replacer_spec.rb
|
70
70
|
- spec/file_iterator_spec.rb
|
71
|
+
- spec/integrations/rails_renamer_spec.rb
|
71
72
|
- spec/original_name_locator_spec.rb
|
72
73
|
- spec/spec_helper.rb
|
73
74
|
homepage: https://github.com/joeletizia/rails_renamer
|
@@ -99,5 +100,6 @@ test_files:
|
|
99
100
|
- spec/application_file_parser_spec.rb
|
100
101
|
- spec/content_replacer_spec.rb
|
101
102
|
- spec/file_iterator_spec.rb
|
103
|
+
- spec/integrations/rails_renamer_spec.rb
|
102
104
|
- spec/original_name_locator_spec.rb
|
103
105
|
- spec/spec_helper.rb
|