wize_upgrader 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.
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: