wize_upgrader 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/wize_upgrader.rb +62 -16
  2. metadata +1 -1
data/lib/wize_upgrader.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'active_support/inflector'
3
+ require 'debugger'
3
4
 
4
5
  module Wize
5
6
  class Upgrader
@@ -8,6 +9,8 @@ module Wize
8
9
  "app" => "app",
9
10
  "script" => "bin",
10
11
  "db" => "db",
12
+ "lib" => "lib",
13
+ "spec" => "spec",
11
14
  "vendor" => "vendor"
12
15
  }
13
16
  HARD_DIR_MAPPINGS = {
@@ -18,6 +21,7 @@ module Wize
18
21
  "gem 'jquery-rails'",
19
22
  "gem 'pg'",
20
23
  "gem 'sqlite3'",
24
+ "gem 'rspec-rails'",
21
25
  "gem 'rails', '3.2.10'",
22
26
  "gem 'rails', '3.2.11'",
23
27
  "gem 'rails', '3.2.12'",
@@ -28,7 +32,8 @@ module Wize
28
32
  COMMON_FILES = [
29
33
  "config/application.yml",
30
34
  "config/database.yml",
31
- "config/routes.rb"
35
+ "config/routes.rb",
36
+ "README.md"
32
37
  ]
33
38
 
34
39
  def initialize(old_app_name)
@@ -42,17 +47,28 @@ module Wize
42
47
  begin
43
48
  rename_old
44
49
  rails_gen_new
50
+ upgrade_gemfile("#{ @old_name }/Gemfile", "#{ @new_name }/Gemfile")
51
+ install_rspec
45
52
  copy_common_dirs
46
53
  copy_special_files
47
- upgrade_gemfile("#{ @old_name }/Gemfile", "#{ @new_name }/Gemfile")
54
+ fix_models
55
+ fix_controllers
48
56
  rescue => e
49
57
  puts e.message
58
+ puts e.backtrace
50
59
  puts "something went wrong!"
51
60
  ensure
52
61
  end
53
62
  puts "------ DONE UPGRADING! HAVE FUN ------"
54
63
  end
55
64
 
65
+ def install_rspec
66
+ `cd #{ @new_name }`
67
+ `bundle install`
68
+ `rails g rspec:install`
69
+ `cd ..`
70
+ end
71
+
56
72
  def attr_accessibles
57
73
  @attr_accessibles ||= Hash.new { [] }
58
74
  end
@@ -62,6 +78,7 @@ module Wize
62
78
  end
63
79
 
64
80
  def fix_controller(file)
81
+ puts "fixing #{ file }"
65
82
  model = File.basename(file).gsub("_controller.rb", "").singularize
66
83
  return if attr_accessibles[model].empty?
67
84
 
@@ -93,11 +110,12 @@ module Wize
93
110
  end
94
111
 
95
112
  def fix_model(file)
113
+ lower_model = file.gsub(".rb", "")
114
+ puts "fixing #{ lower_model }"
96
115
  File.open("#{ @new_name }/app/models/#{ file }", "r") do |old|
97
116
  File.open("#{ @new_name }/app/models/#{ file }.tmp", "w") do |n|
98
117
  old.each_line do |line|
99
118
  if line.strip.start_with?("attr_accessible")
100
- lower_model = file.gsub(".rb", "")
101
119
  attr_accessibles[lower_model] += line
102
120
  .strip
103
121
  .gsub("attr_accessible", "")
@@ -109,21 +127,23 @@ module Wize
109
127
  end
110
128
  end
111
129
  end
130
+ puts "Found attr_accessible #{ attr_accessibles[lower_model].join(", ") }"
112
131
  `mv #{ @new_name }/app/models/#{ file }.tmp #{ @new_name }/app/models/#{ file }`
113
132
  end
114
133
 
115
134
  def files_for(dir)
116
- [].tap do |files|
117
- Dir.foreach(dir) do |node|
118
- next if node.start_with?(".")
119
- files << node if node.end_with?(".rb")
120
- if File.directory?("#{ dir }/#{ node }")
121
- sub_files = files_for("#{ dir }/#{ node }")
122
- sub_files.map! { |f| "#{ node }/#{ f }" }
123
- files += sub_files
124
- end
135
+ puts "Files for: #{ dir }"
136
+ files = []
137
+ Dir.foreach(dir) do |node|
138
+ next if node.start_with?(".")
139
+ files << node if node.end_with?(".rb")
140
+ if File.directory?("#{ dir }/#{ node }")
141
+ sub_files = files_for("#{ dir }/#{ node }")
142
+ sub_files.map! { |f| "#{ node }/#{ f }" }
143
+ files += sub_files
125
144
  end
126
145
  end
146
+ p files
127
147
  end
128
148
 
129
149
  def downgrade
@@ -137,6 +157,12 @@ module Wize
137
157
  unusual_gems(from).each do |gem|
138
158
  f.write(gem)
139
159
  end
160
+
161
+ f.write(<<-rb)
162
+ group :development, :test do
163
+ gem 'rspec-rails'
164
+ end
165
+ rb
140
166
  end
141
167
  end
142
168
 
@@ -150,21 +176,41 @@ module Wize
150
176
  end
151
177
 
152
178
  def rails_gen_new
153
- `rails new #{ @new_name } -T`
154
- `mkdir #{ @new_name }/.git`
179
+ puts "Generating new rails app <#{ app_name }>"
180
+ `rails new #{ app_name } -T`
181
+ puts "Renaming #{ app_name } to #{ @new_name }"
182
+ `mv #{ app_name } #{ @new_name }`
183
+ `rm #{ @new_name }/README.rdoc`
155
184
  end
156
185
 
157
186
  def rename_old
187
+ puts "Renaming #{ @new_name } to #{ @old_name }"
158
188
  `mv #{ @new_name } #{ @old_name }`
159
189
  end
160
190
 
191
+ def app_name
192
+ @app_name ||= begin
193
+ lines = File.readlines("#{ @old_name }/config/application.rb")
194
+ lines.select! { |l| l.start_with?("module") }
195
+ lines.first.gsub("module", "").strip
196
+ end
197
+ end
198
+
161
199
  def copy_common_dirs
162
200
  SOFT_DIR_MAPPINGS.each do |src, dest|
163
- `cp -rn #{ @old_name }/#{ src }/* #{ @new_name }/#{ dest }/`
201
+ if Dir.exists?("#{ @new_name }/#{ dest }")
202
+ `cp -rn #{ @old_name }/#{ src }/* #{ @new_name }/#{ dest }/`
203
+ else
204
+ `cp -r #{ @old_name }/#{ src } #{ @new_name }`
205
+ end
164
206
  end
165
207
  HARD_DIR_MAPPINGS.each do |src, dest|
166
208
  next if src.include?("wrap_parameters")
167
- `cp -r #{ @old_name }/#{ src }/* #{ @new_name }/#{ dest }/`
209
+ if Dir.exists?("#{ @new_name }/#{ dest }")
210
+ `cp -r #{ @old_name }/#{ src }/* #{ @new_name }/#{ dest }/`
211
+ else
212
+ `cp -r #{ @old_name }/#{ src } #{ @new_name }`
213
+ end
168
214
  end
169
215
  end
170
216
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wize_upgrader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: