Class: Jets::Commands::Upgrade::V1

Inherits:
Object
  • Object
show all
Defined in:
lib/jets/commands/upgrade/v1.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ V1

Returns a new instance of V1.



6
7
8
# File 'lib/jets/commands/upgrade/v1.rb', line 6

def initialize(options)
  @options = options
end

Instance Method Details

#environment_configsObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/jets/commands/upgrade/v1.rb', line 20

def environment_configs
  path = File.expand_path("../templates/skeleton/config/environments", File.dirname(__FILE__))
  Dir.glob("#{path}/*").each do |src|
    config_file = "config/environments/#{File.basename(src)}"
    dest = "#{Jets.root}#{config_file}"
    unless File.exist?(dest)
      puts "Create: #{config_file}"
      FileUtils.mkdir_p(File.dirname(dest))
      FileUtils.cp(src, dest)
    end
  end
end

#remove_ruby_lazy_loadObject



84
85
86
87
88
89
90
# File 'lib/jets/commands/upgrade/v1.rb', line 84

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



92
93
94
95
96
97
98
99
100
101
102
# File 'lib/jets/commands/upgrade/v1.rb', line 92

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

#runObject



10
11
12
13
14
15
16
17
18
# File 'lib/jets/commands/upgrade/v1.rb', line 10

def run
  puts "Upgrading to Jets v1..."
  environment_configs
  update_routes
  update_mode_setting
  update_config_ru
  remove_ruby_lazy_load
  puts "Upgrade complete."
end

#update_config_ruObject



74
75
76
77
78
79
80
81
82
# File 'lib/jets/commands/upgrade/v1.rb', line 74

def update_config_ru
  config_ru = File.read("#{Jets.root}config.ru")
  return if config_ru.include?("Jets.boot")

  src = File.expand_path("../templates/skeleton/config.ru", File.dirname(__FILE__))
  dest = "#{Jets.root}config.ru"
  puts "Update: config.ru"
  FileUtils.cp(src, dest)
end

#update_mode_settingObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/jets/commands/upgrade/v1.rb', line 54

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_routesObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/jets/commands/upgrade/v1.rb', line 33

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