Class: Volt::ComponentCode

Inherits:
Object show all
Defined in:
lib/volt/server/rack/component_code.rb

Instance Method Summary collapse

Constructor Details

#initialize(volt_app, component_name, component_paths, client = true) ⇒ ComponentCode

Returns a new instance of ComponentCode.



9
10
11
12
13
14
# File 'lib/volt/server/rack/component_code.rb', line 9

def initialize(volt_app, component_name, component_paths, client = true)
  @volt_app        = volt_app
  @component_name  = component_name
  @component_paths = component_paths
  @client          = client
end

Instance Method Details

#codeObject

The client argument is for if this code is being generated for the client



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/volt/server/rack/component_code.rb', line 17

def code
  # Start with config code
  initializer_code = @client ? generate_config_code : ''
  component_code = ''

  asset_files = AssetFiles.from_cache(@volt_app.app_url, @component_name, @component_paths)
  asset_files.component_paths.each do |component_path, component_name|
    comp_template = ComponentTemplates.new(component_path, component_name, @client)
    initializer_code << comp_template.initializer_code + "\n\n"
    component_code << comp_template.component_code + "\n\n"
  end

  initializer_code + component_code
end

#generate_config_codeObject



32
33
34
35
# File 'lib/volt/server/rack/component_code.rb', line 32

def generate_config_code
  # Setup Volt.config on the client
  "\nVolt.setup_client_config(#{Volt.config.public.to_h.inspect})\n"
end