Class: OpalWebpackLoader::Installer::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/opal-webpack-loader/installer_cli.rb

Instance Method Summary collapse

Instance Method Details

#flatObject



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/opal-webpack-loader/installer_cli.rb', line 75

def flat
  @application_css = '../styles/application.css'
  @asset_output_directory = File.join('public', 'assets')
  @js_entrypoints_directory = File.join('javascripts')
  @conf_rel_prefix = '..'
  @js_rel_prefix = '..'
  @opal_directory = options[:opal_name]
  @styles_directory = 'styles'
  @webpack_config_directory = 'webpack'
  @dev_default_targets = 'browser'
  @pro_default_targets = 'browser'
  @hmr_hook = ''
  create_common_directories
  install_common_things
  create_file_from_template('application.css.erb', File.join('styles', 'application.css'), {})
  create_file_from_template('initializer.rb.erb', 'owl_init.rb', { opal_load_path: '' })
  create_file_from_template('app_loader.rb.erb', 'app_loader.rb', { opal_directory: @opal_directory })
  add_gem
  print_message
end

#isoObject

Showing directories and files relevant to iso owl:

project_root
  +- config.ru # rack app starter
  +- config # webpack and other config
      +- owl.rb # owl.configuration
  +- isomorfeus
      +- components
      +- imports # javascript entrypoints, import other components etc.
           +- application.js
           +- application_common.js
           +- application_ssr.js
      +- isomorfeus_loader.rb
      +- models
      +- operations
      +- policies
      +- styles
           +- css
  +- log
  +- node_modules
  +- package.json
  +- Procfile
  +- public
       +- assets # compiled assets and other things
  +- spec
  +- tmp


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/opal-webpack-loader/installer_cli.rb', line 34

def iso
  @application_css = '../styles/application.css'
  @asset_output_directory = File.join('public', 'assets')
  @js_entrypoints_directory = File.join('isomorfeus', 'imports')
  @conf_rel_prefix = '..'
  @js_rel_prefix = '..'
  @opal_directory = 'isomorfeus'
  @styles_directory = File.join(@opal_directory, 'styles')
  @webpack_config_directory = 'webpack'
  @dev_default_targets = 'browser'
  @pro_default_targets = 'browser, ssr'
  @hmr_hook = 'Opal.Isomorfeus.$force_render()'
  create_directory(@webpack_config_directory)
  create_directory(@asset_output_directory)
  FileUtils.touch(File.join(@asset_output_directory, '.keep'))
  install_webpack_config
  create_file_from_template('initializer.rb.erb', File.join('owl_init.rb'), { opal_load_path: '' })
  # add_gem
end

#railsObject



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/opal-webpack-loader/installer_cli.rb', line 121

def rails
  @application_css = '../stylesheets/application.css'
  @asset_output_directory = File.join('public', 'assets')
  @js_entrypoints_directory = File.join('app', 'assets', 'javascripts')
  @conf_rel_prefix = File.join('..', '..')
  @js_rel_prefix = File.join('..', '..', '..')
  @opal_directory = File.join('app', options[:opal_name])
  @styles_directory = File.join('app', 'assets', 'stylesheets')
  @webpack_config_directory = File.join('config', 'webpack')
  @dev_default_targets = 'browser'
  @pro_default_targets = 'browser'
  @hmr_hook = ''
  create_directory('app')
  create_common_directories
  install_common_things
  create_file_from_template('initializer.rb.erb', File.join('config', 'initializers', 'opal_webpack_loader.rb'),
                            { opal_load_path: "Opal.append_path(File.realdirpath('#{@opal_directory}'))" })
  add_gem
  print_message
end

#webpackerObject



167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/opal-webpack-loader/installer_cli.rb', line 167

def webpacker
  @application_css = '../stylesheets/application.css'
  @asset_output_directory = File.join('public', 'assets')
  @js_entrypoints_directory = File.join('app', 'assets', 'javascripts')
  @conf_rel_prefix = File.join('..', '..')
  @js_rel_prefix = File.join('..', '..', '..')
  @opal_directory = File.join('app', options[:opal_name])
  @styles_directory = File.join('app', 'assets', 'stylesheets')
  @webpack_config_directory = File.join('config', 'webpack')
  @dev_default_targets = 'browser'
  @pro_default_targets = 'browser'
  @hmr_hook = ''
  create_directory('app')
  create_common_directories
  install_webpacker_config
  install_webpacker_package_json
  install_webpacker_js_entry
  install_opal_entries
  create_file_from_template('initializer.rb.erb', File.join('config', 'initializers', 'opal_webpack_loader.rb'),
                            { opal_load_path: "Opal.append_path(File.realdirpath('#{@opal_directory}'))" })
  add_gem
  print_message
end