class Serviceworker::Generators::InstallGenerator
Public Instance Methods
add_offline_html()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 46 def add_offline_html template "offline.html", public_dir("offline.html") end
create_assets()
click to toggle source
# 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_initializer()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 18 def create_initializer template "serviceworker.rb", initializers_dir("serviceworker.rb") end
update_application_js()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 22 def update_application_js ext, directive = detect_js_format snippet = "#{directive} require serviceworker-companion\n" append_to_file application_js_path(ext), snippet end
update_application_layout()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 35 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_assets()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 28 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
Private Instance Methods
application_js_path(ext)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 52 def application_js_path(ext) javascripts_dir("application#{ext}") end
conditional_warn(warning)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 92 def conditional_warn(warning) silenced? or warn warning end
detect_js_format()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 56 def detect_js_format %w[.js .js.erb .coffee .coffee.erb .js.coffee .js.coffee.erb].each do |ext| next unless File.exist?(javascripts_dir("application#{ext}")) return [ext, "#="] if ext.include?(".coffee") return [ext, "//="] end end
detect_layout()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 65 def detect_layout layouts = %w[.html.erb .html.haml .html.slim .erb .haml .slim].map do |ext| layouts_dir("application#{ext}") end layouts.find { |layout| File.exist?(layout) } end
initializers_dir(*paths)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 76 def initializers_dir(*paths) join("config", "initializers", *paths) end
javascripts_dir(*paths)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 72 def javascripts_dir(*paths) join("app", "assets", "javascripts", *paths) end
join(*paths)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 88 def join(*paths) File.expand_path(File.join(*paths), destination_root) end
layouts_dir(*paths)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 80 def layouts_dir(*paths) join("app", "views", "layouts", *paths) end
public_dir(*paths)
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 84 def public_dir(*paths) join("public", *paths) end
silenced?()
click to toggle source
# File lib/generators/serviceworker/install_generator.rb, line 96 def silenced? ENV["RAILS_ENV"] == "test" end