Class: Jets::Commands::Upgrade
- Inherits:
-
Object
- Object
- Jets::Commands::Upgrade
- Defined in:
- lib/jets/commands/upgrade.rb
Instance Method Summary collapse
- #environment_configs ⇒ Object
-
#initialize(options) ⇒ Upgrade
constructor
A new instance of Upgrade.
- #remove_ruby_lazy_load ⇒ Object
- #remove_ruby_lazy_load_for(path) ⇒ Object
- #run ⇒ Object
- #update_config_ru ⇒ Object
- #update_mode_setting ⇒ Object
- #update_routes ⇒ Object
- #update_webpack_binstubs ⇒ Object
Constructor Details
#initialize(options) ⇒ Upgrade
Returns a new instance of Upgrade.
6 7 8 |
# File 'lib/jets/commands/upgrade.rb', line 6 def initialize() @options = end |
Instance Method Details
#environment_configs ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/jets/commands/upgrade.rb', line 21 def environment_configs path = File.("templates/skeleton/config/environments", File.dirname(__FILE__)) puts "path #{path}" Dir.glob("#{path}/*").each do |src| config_file = "config/environments/#{File.basename(src)}" dest = "#{Jets.root}#{config_file}" puts "src #{src}" puts "dest #{dest}" unless File.exist?(dest) puts "Create: #{config_file}" FileUtils.mkdir_p(File.dirname(dest)) FileUtils.cp(src, dest) end end end |
#remove_ruby_lazy_load ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/jets/commands/upgrade.rb', line 89 def remove_ruby_lazy_load app_config = "#{Jets.root}config/application.rb" remove_ruby_lazy_load_for(app_config) Dir.glob("#{Jets.root}config/environments/*.rb").each do |env_config| remove_ruby_lazy_load_for(env_config) end end |
#remove_ruby_lazy_load_for(path) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/jets/commands/upgrade.rb', line 97 def remove_ruby_lazy_load_for(path) lines = IO.readlines(path) new_lines = lines.reject do |l| l =~ %r{config.ruby.lazy_load} end return unless lines != new_lines content = new_lines.join("") IO.write(path, content) puts "Update: #{path}" end |
#run ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/jets/commands/upgrade.rb', line 10 def run puts "Upgrading to Jets structure to latest version" environment_configs update_routes update_mode_setting update_config_ru remove_ruby_lazy_load update_webpack_binstubs puts "Upgrade complete." end |
#update_config_ru ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/jets/commands/upgrade.rb', line 79 def update_config_ru config_ru = File.read("#{Jets.root}config.ru") return if config_ru.include?("Jets.boot") src = File.("templates/skeleton/config.ru", File.dirname(__FILE__)) dest = "#{Jets.root}config.ru" puts "Update: config.ru" FileUtils.cp(src, dest) end |
#update_mode_setting ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/jets/commands/upgrade.rb', line 59 def update_mode_setting application_file = "#{Jets.root}config/application.rb" lines = IO.readlines(application_file) deprecated_code = 'config.api_generator' return unless lines.detect { |l| l.include?(deprecated_code) } puts "Update: config/application.rb" lines.map! do |line| if line.include?(deprecated_code) mode = Jets.config.api_generator ? 'api' : 'html' %Q| config.mode = "#{mode}"\n| # assume 2 spaces for simplicity else line end end content = lines.join IO.write(application_file, content) end |
#update_routes ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/jets/commands/upgrade.rb', line 38 def update_routes routes_file = "#{Jets.root}config/routes.rb" return unless File.exist?(routes_file) lines = IO.readlines(routes_file) deprecated_code = 'root "jets/welcome#index"' return unless lines.detect { |l| l.include?(deprecated_code) } puts "Update: config/routes.rb" lines.map! do |line| if line.include?(deprecated_code) %Q| root "jets/public#show"\n| # assume 2 spaces for simplicity else line end end content = lines.join IO.write(routes_file, content) end |
#update_webpack_binstubs ⇒ Object
109 110 111 112 113 114 115 116 117 |
# File 'lib/jets/commands/upgrade.rb', line 109 def update_webpack_binstubs lines = IO.readlines("bin/webpack") already_upgraded = lines.detect { |l| l =~ /WebpackRunner/ } return if already_upgraded update_project_file("bin/webpack") update_project_file("bin/webpack-dev-server") puts "Updated webpack binstubs." end |