class Svelte::InstallGenerator

Constants

TEMPLATE_DIR

Public Instance Methods

copy_templates() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 16
def copy_templates
  copy_template(webpack_dir, 'environment.js')
  copy_template(webpack_dir, 'development.js')
  copy_template(webpack_dir, 'production.js')
  copy_template(webpack_dir, 'test.js')

  copy_template(webpack_dir, 'loaders', 'svelte.js')
  copy_template(webpack_dir, 'loaders', 'svelte-ssr.js')

  copy_template(packs_dir, 'server_rendering.js')
  copy_template(components_dir, 'Hello.svelte')
end
create_directories() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 11
def create_directories
  empty_directory components_dir
  create_file File.join(components_dir, '.keep')
end
install_svelte_ujs() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 40
def install_svelte_ujs
  `yarn add svelte_ujs_ng svelte-preprocess`
end
update_application_entry() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 29
def update_application_entry
  path = Pathname.new('app/javascript/packs/application.js')
  content = File.read(File.join(TEMPLATE_DIR, path))

  if path.exist?
    append_file(path, content)
  else
    create_file(path, content)
  end
end

Private Instance Methods

components_dir() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 58
def components_dir
  File.join(js_dir, 'components')
end
copy_template(*path_segments) click to toggle source
# File lib/svelte/rails/install_generator.rb, line 66
def copy_template(*path_segments)
  source = File.join(*path_segments)
  template(source, ::Rails.root.join(source))
end
js_dir() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 54
def js_dir
  packs_dir.parent
end
packs_dir() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 50
def packs_dir
  Webpacker.config.source_entry_path.relative_path_from(::Rails.root)
end
rails_dir() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 46
def rails_dir
  Pathname.new(destination_root).relative_path_from(::Rails.root)
end
webpack_dir() click to toggle source
# File lib/svelte/rails/install_generator.rb, line 62
def webpack_dir
  File.join(rails_dir, 'config', 'webpack')
end