Class: Serviceworker::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/serviceworker/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_offline_htmlObject



40
41
42
# File 'lib/generators/serviceworker/install_generator.rb', line 40

def add_offline_html
  template "offline.html", public_dir("offline.html")
end

#create_assetsObject



12
13
14
15
16
# File 'lib/generators/serviceworker/install_generator.rb', line 12

def create_assets
  template "manifest.json", javascripts_dir("manifest.json.erb")
  template "serviceworker.js", javascripts_dir("serviceworker.js.erb")
  template "serviceworker-companion.js", javascripts_dir("serviceworker-companion.js")
end

#create_initializerObject



18
19
20
# File 'lib/generators/serviceworker/install_generator.rb', line 18

def create_initializer
  template "serviceworker.rb", initializers_dir("serviceworker.rb")
end

#update_application_layoutObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/serviceworker/install_generator.rb', line 29

def update_application_layout
  layout = detect_layout
  snippet = %(<link rel="manifest" href="/manifest.json" />)
  snippet += %(\n<meta name="apple-mobile-web-app-capable" content="yes">)
  unless layout
    conditional_warn "Could not locate application layout. To insert manifest tags manually, use:\n\n#{snippet}\n"
    return
  end
  insert_into_file layout, snippet, before: "</head>\n"
end

#update_precompiled_assetsObject



22
23
24
25
26
27
# File 'lib/generators/serviceworker/install_generator.rb', line 22

def update_precompiled_assets
  snippet = "Rails.configuration.assets.precompile += %w[serviceworker.js manifest.json]\n"
  file_path = initializers_dir("assets.rb")
  FileUtils.touch file_path
  append_to_file file_path, snippet
end