rename 1.0.3 → 1.0.5
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d491da7b4f286f0a39f91bc3cd17eeedaadd7cda
|
4
|
+
data.tar.gz: b3f084d31ae1c9fa50d91f2ffcdccf2f3bdd9ea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06cfc9c772360112a4e0c5c102fbd2e9f31812557a78d9dd56bb6d22c904608f3935b0bbb92eaa130f34c9d00d8573fa9ea0f8a232734e8c8a2734d14743c0b2
|
7
|
+
data.tar.gz: 494786f8972e13004f8b97050936a75a18dc650a364d9e539d440a9810d23eb9cc68ffc94c3bd8716af17b24377fbb888f9bf562cb21547d5f28fbbb57e43909
|
@@ -1,19 +1,13 @@
|
|
1
|
-
require File.expand_path('
|
1
|
+
require File.expand_path('../shared/common_methods', File.dirname(__FILE__))
|
2
2
|
|
3
3
|
module Rename
|
4
4
|
module Generators
|
5
|
-
class Error < Thor::Error
|
6
|
-
end
|
7
|
-
|
8
5
|
class AppToGenerator < Rails::Generators::Base
|
9
6
|
include CommonMethods
|
10
7
|
|
11
8
|
def app_to
|
12
|
-
warn
|
13
|
-
|
14
|
-
valid?
|
15
|
-
new_app_module
|
16
|
-
new_app_directory
|
9
|
+
warn '[DEPRECATION] `app_to` is deprecated. Please use `into` instead.'
|
10
|
+
perform
|
17
11
|
end
|
18
12
|
end
|
19
13
|
end
|
@@ -1,17 +1,12 @@
|
|
1
|
-
require File.expand_path('
|
1
|
+
require File.expand_path('../shared/common_methods', File.dirname(__FILE__))
|
2
2
|
|
3
3
|
module Rename
|
4
4
|
module Generators
|
5
|
-
class Error < Thor::Error
|
6
|
-
end
|
7
|
-
|
8
5
|
class IntoGenerator < Rails::Generators::Base
|
9
6
|
include CommonMethods
|
10
7
|
|
11
8
|
def into
|
12
|
-
|
13
|
-
new_app_module
|
14
|
-
new_app_directory
|
9
|
+
perform
|
15
10
|
end
|
16
11
|
end
|
17
12
|
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module CommonMethods
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
desc 'Rename your Rails application'
|
8
|
+
|
9
|
+
argument :new_name, :type => :string, :default => ''
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def perform
|
15
|
+
prepare_app_vars
|
16
|
+
validate_name_and_path?
|
17
|
+
apply_new_module_name
|
18
|
+
change_app_directory
|
19
|
+
end
|
20
|
+
|
21
|
+
def prepare_app_vars
|
22
|
+
@new_key = new_name.gsub(/\W/, '_')
|
23
|
+
@old_module_name = Rails.application.class.parent.to_s
|
24
|
+
@new_module_name = @new_key.squeeze('_').camelize
|
25
|
+
@new_dir = new_name.gsub(/[&%*@()!{}\[\]'\\\/"]+/, '')
|
26
|
+
@new_path = Rails.root.to_s.split('/')[0...-1].push(@new_dir).join('/')
|
27
|
+
end
|
28
|
+
|
29
|
+
def validate_name_and_path?
|
30
|
+
if new_name.blank?
|
31
|
+
raise Thor::Error, "[Error] Application name can't be blank."
|
32
|
+
elsif new_name =~ /^\d/
|
33
|
+
raise Thor::Error, '[Error] Please give a name which does not start with numbers.'
|
34
|
+
elsif @new_module_name.size < 1
|
35
|
+
raise Thor::Error, '[Error] Please enter at least one alphabet.'
|
36
|
+
elsif reserved_names.include?(@new_module_name.downcase)
|
37
|
+
raise Thor::Error, '[Error] Please give a name which does not match any of the reserved Rails keywords.'
|
38
|
+
elsif Object.const_defined?(@new_module_name)
|
39
|
+
raise Thor::Error, "[Error] Constant #{@new_module_name} is already in use, please choose another name."
|
40
|
+
elsif File.exists?(@new_path)
|
41
|
+
raise Thor::Error, '[Error] Already in use, please choose another name.'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# rename_app_to_new_app_module
|
46
|
+
def apply_new_module_name
|
47
|
+
in_root do
|
48
|
+
puts 'Search and replace module in...'
|
49
|
+
|
50
|
+
#Search and replace module in to file
|
51
|
+
Dir['*', 'config/**/**/*.rb', '.{rvmrc}'].each do |file|
|
52
|
+
# file = File.join(Dir.pwd, file)
|
53
|
+
replace_into_file(file, /(#{@old_module_name}*)/m, @new_module_name)
|
54
|
+
end
|
55
|
+
|
56
|
+
#Rename session key
|
57
|
+
replace_into_file('config/initializers/session_store.rb', /(('|")_.*_session('|"))/i, "'_#{@new_key}_session'")
|
58
|
+
#Rename database
|
59
|
+
replace_into_file('config/database.yml', /#{@old_module_name.underscore}/i, @new_name.underscore)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# rename_app_to_new_app_directory
|
64
|
+
def change_app_directory
|
65
|
+
rename_references
|
66
|
+
rename_directory
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def reserved_names
|
72
|
+
@reserved_names = %w[application destroy benchmarker profiler plugin runner test]
|
73
|
+
end
|
74
|
+
|
75
|
+
def rename_references
|
76
|
+
puts 'Renaming references...'
|
77
|
+
old_basename = File.basename(Dir.getwd)
|
78
|
+
|
79
|
+
in_root do
|
80
|
+
Dir.glob('.idea/*', File::FNM_DOTMATCH).each do |file|
|
81
|
+
replace_into_file(file, old_basename, @new_dir)
|
82
|
+
end
|
83
|
+
|
84
|
+
gem_set_file = '.ruby-gemset'
|
85
|
+
replace_into_file(gem_set_file, old_basename, @new_dir) if File.exist?(gem_set_file)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def rename_directory
|
90
|
+
print 'Renaming directory...'
|
91
|
+
|
92
|
+
begin
|
93
|
+
# FileUtils.mv Dir.pwd, app_path
|
94
|
+
File.rename(Rails.root.to_s, @new_path)
|
95
|
+
puts 'Done!'
|
96
|
+
puts "New application path is '#{@new_path}'"
|
97
|
+
rescue Exception => ex
|
98
|
+
puts "Error:#{ex.inspect}"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def replace_into_file(file, search_exp, replace)
|
103
|
+
return if File.directory?(file)
|
104
|
+
|
105
|
+
begin
|
106
|
+
gsub_file file, search_exp, replace
|
107
|
+
rescue Exception => ex
|
108
|
+
puts "Error: #{ex.message}"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
data/lib/rename/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rename
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Morshed Alam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -69,8 +69,8 @@ files:
|
|
69
69
|
- lib/generators/rename/app_to/app_to_generator.rb
|
70
70
|
- lib/generators/rename/into/USAGE
|
71
71
|
- lib/generators/rename/into/into_generator.rb
|
72
|
+
- lib/generators/rename/shared/common_methods.rb
|
72
73
|
- lib/rename.rb
|
73
|
-
- lib/rename/common_methods.rb
|
74
74
|
- lib/rename/version.rb
|
75
75
|
- rename.gemspec
|
76
76
|
- tests/rename_test.rb
|
@@ -1,121 +0,0 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
|
3
|
-
module CommonMethods
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
desc 'Rename your Rails application'
|
8
|
-
|
9
|
-
argument :new_name, :type => :string, :default => ''
|
10
|
-
end
|
11
|
-
|
12
|
-
protected
|
13
|
-
|
14
|
-
def app_name
|
15
|
-
@app_name = new_name.gsub(/\W/, '_').squeeze('_').camelize
|
16
|
-
end
|
17
|
-
|
18
|
-
def app_key
|
19
|
-
@app_key = new_name.gsub(/\W/, '_').downcase
|
20
|
-
end
|
21
|
-
|
22
|
-
def app_dir
|
23
|
-
@app_dir = new_name.gsub(/[&%*@()!{}\[\]'\\\/"]+/, '')
|
24
|
-
end
|
25
|
-
|
26
|
-
def app_path
|
27
|
-
@app_path = Rails.root.to_s.split('/')[0...-1].push(app_dir).join('/')
|
28
|
-
end
|
29
|
-
|
30
|
-
def reserved_names
|
31
|
-
@reserved_names = %w[application destroy benchmarker profiler plugin runner test]
|
32
|
-
end
|
33
|
-
|
34
|
-
def valid?
|
35
|
-
if new_name.blank?
|
36
|
-
raise Error, "Application name can't be blank."
|
37
|
-
elsif new_name =~ /^\d/
|
38
|
-
raise Error, "Invalid application name #{new_name}. Please give a name which does not start with numbers."
|
39
|
-
end
|
40
|
-
|
41
|
-
valid_new_app_name?
|
42
|
-
valid_new_app_dir?
|
43
|
-
end
|
44
|
-
|
45
|
-
def valid_new_app_name?
|
46
|
-
if app_name.size < 1
|
47
|
-
raise Error, "Invalid application name #{app_name}. Please enter at least one alphabet."
|
48
|
-
elsif reserved_names.include?(app_name.downcase)
|
49
|
-
raise Error, "Invalid application name #{app_name}. Please give a name which does not match one of the reserved Rails keywords."
|
50
|
-
elsif Object.const_defined?(app_name)
|
51
|
-
raise Error, "Invalid application name #{app_name}, constant #{app_name} is already in use. Please choose another application name."
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def valid_new_app_dir?
|
56
|
-
if File.exists?(app_path)
|
57
|
-
raise Error, "Invalid application name #{app_dir}, already in use. Please choose another application name."
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
# rename_app_to_new_app_module
|
62
|
-
def new_app_module
|
63
|
-
mod = "#{Rails.application.class.parent}"
|
64
|
-
|
65
|
-
in_root do
|
66
|
-
puts 'Search and replace module in...'
|
67
|
-
|
68
|
-
#Search and replace module in to file
|
69
|
-
Dir['*', 'config/**/**/*.rb', '.{rvmrc}'].each do |file|
|
70
|
-
replace_into_file(file, /(#{mod}*)/m, app_name)
|
71
|
-
end
|
72
|
-
|
73
|
-
#Rename session key
|
74
|
-
session_key_file = 'config/initializers/session_store.rb'
|
75
|
-
search_exp = /(('|")_.*_session('|"))/i
|
76
|
-
session_key = "'_#{app_key}_session'"
|
77
|
-
replace_into_file(session_key_file, search_exp, session_key)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
# rename_app_to_new_app_directory
|
82
|
-
def new_app_directory
|
83
|
-
rename_references
|
84
|
-
rename_directory
|
85
|
-
end
|
86
|
-
|
87
|
-
def rename_references
|
88
|
-
puts 'Renaming references...'
|
89
|
-
old_basename = File.basename(Dir.getwd)
|
90
|
-
|
91
|
-
in_root do
|
92
|
-
Dir.glob('.idea/*', File::FNM_DOTMATCH).each do |file|
|
93
|
-
replace_into_file(file, old_basename, app_dir)
|
94
|
-
end
|
95
|
-
|
96
|
-
gem_set_file = '.ruby-gemset'
|
97
|
-
replace_into_file(gem_set_file, old_basename, app_dir) if File.exist?(gem_set_file)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def rename_directory
|
102
|
-
print 'Renaming directory...'
|
103
|
-
begin
|
104
|
-
File.rename(Rails.root.to_s, app_path)
|
105
|
-
puts 'Done!'
|
106
|
-
puts "New application path is '#{app_path}'"
|
107
|
-
rescue Exception => ex
|
108
|
-
puts "Error:#{ex.inspect}"
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def replace_into_file(file, search_exp, replace)
|
113
|
-
return if File.directory?(file)
|
114
|
-
|
115
|
-
begin
|
116
|
-
gsub_file file, search_exp, replace
|
117
|
-
rescue Exception => ex
|
118
|
-
puts "Error: #{ex.message}"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|