Class: Wasmify::Rails::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/wasmify/rails/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wasmify/rails/configuration.rb', line 14

def initialize
  config_path = ENV.fetch("WASMIFY_CONFIG_PATH") { root_dir.join("config", "wasmify.yml") }
  raise "config/wasmify.yml not found" unless File.exist?(config_path)

  config = YAML.load_file(config_path)

  @pack_directories = config["pack_directories"]
  @additional_root_files = config["additional_root_files"]
  @exclude_gems = config["exclude_gems"] || []
  @ignore_gem_extensions = config["ignore_gem_extensions"] || []
  @pack_root = config["pack_root"] || "/rails"
  @ruby_version = config["ruby_version"] || ruby_version_from_file || "3.3"
  @tmp_dir = config["tmp_dir"] || root_dir.join("tmp", "wasmify")
  @output_dir = config["output_dir"] || root_dir.join("dist")
  @skip_assets_precompile = config["skip_assets_precompile"] || false
  @wasm_target = config["wasm_target"] || "wasm32-unknown-wasip1"
end

Instance Attribute Details

#additional_root_filesObject (readonly)

Returns the value of attribute additional_root_files.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def additional_root_files
  @additional_root_files
end

#exclude_gemsObject (readonly)

Returns the value of attribute exclude_gems.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def exclude_gems
  @exclude_gems
end

#ignore_gem_extensionsObject (readonly)

Returns the value of attribute ignore_gem_extensions.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def ignore_gem_extensions
  @ignore_gem_extensions
end

#output_dirObject (readonly)

Returns the value of attribute output_dir.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def output_dir
  @output_dir
end

#pack_directoriesObject (readonly)

Returns the value of attribute pack_directories.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def pack_directories
  @pack_directories
end

#pack_rootObject (readonly)

Returns the value of attribute pack_root.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def pack_root
  @pack_root
end

#ruby_versionObject (readonly)

Returns the value of attribute ruby_version.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def ruby_version
  @ruby_version
end

#skip_assets_precompileObject (readonly)

Returns the value of attribute skip_assets_precompile.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def skip_assets_precompile
  @skip_assets_precompile
end

#tmp_dirObject (readonly)

Returns the value of attribute tmp_dir.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def tmp_dir
  @tmp_dir
end

#wasm_targetObject (readonly)

Returns the value of attribute wasm_target.



8
9
10
# File 'lib/wasmify/rails/configuration.rb', line 8

def wasm_target
  @wasm_target
end

Instance Method Details

#root_dirObject



42
43
44
45
46
# File 'lib/wasmify/rails/configuration.rb', line 42

def root_dir
  return ::Rails.root if defined?(::Rails) && ::Rails.respond_to?(:root)

  Pathname.new(Dir.pwd)
end

#short_ruby_versionObject



32
33
34
35
36
37
38
# File 'lib/wasmify/rails/configuration.rb', line 32

def short_ruby_version
  if (matches = ruby_version.match(/^(\d+\.\d+)/))
    matches[1]
  else
    ruby_version
  end
end