Module: RailsVite

Defined in:
lib/rails_vite.rb,
lib/rails_vite/tasks.rb,
lib/rails_vite/config.rb,
lib/rails_vite/engine.rb,
lib/rails_vite/errors.rb,
lib/rails_vite/version.rb,
lib/rails_vite/manifest.rb,
lib/rails_vite/auto_build.rb,
lib/rails_vite/tag_helper.rb,
lib/generators/rails_vite/install/install_generator.rb

Defined Under Namespace

Modules: Generators, TagHelper, Tasks Classes: AutoBuild, Config, Engine, Error, Manifest, MissingEntryError, MissingManifestError

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.configObject



15
16
17
# File 'lib/rails_vite.rb', line 15

def config
  @config ||= Config.new
end

.dev_server_csp_source(websocket: false) ⇒ Object

A Content Security Policy source for the running Vite dev server. Returns a lambda so the URL resolves per request: it tracks the dev server’s real (possibly auto-incremented) port and contributes nothing when the server isn’t running. Pass websocket: true for the HMR socket (http -> ws).

RailsVite.config is qualified explicitly because Rails resolves CSP Proc sources via instance_exec, which rebinds self to the controller.



34
35
36
37
38
39
# File 'lib/rails_vite.rb', line 34

def dev_server_csp_source(websocket: false)
  -> {
    url = RailsVite.config.dev_server_url
    url && (websocket ? url.sub(/\Ahttp/, "ws") : url)
  }
end

.digestObject



23
24
25
# File 'lib/rails_vite.rb', line 23

def digest
  manifest.digest
end

.manifestObject



19
20
21
# File 'lib/rails_vite.rb', line 19

def manifest
  @manifest ||= Manifest.new(config.manifest_path)
end

.reset!Object



41
42
43
44
# File 'lib/rails_vite.rb', line 41

def reset!
  @config = nil
  @manifest = nil
end