class Rails::ComponentGenerator

Public Instance Methods

copy_components() click to toggle source
# File lib/generators/rails/component_generator.rb, line 13
def copy_components
  path = File.join('app', 'components', class_path, "#{file_name}_component.rb")
  template('component.rb.tt', path)
end
copy_javascripts() click to toggle source
# File lib/generators/rails/component_generator.rb, line 25
def copy_javascripts
  return if options['skip_js']

  path = File.join('app', 'assets', 'javascripts', 'components', class_path, "#{file_name}.js")
  template('component.js', path)
end
copy_stylesheets() click to toggle source

rubocop:disable Layout/LineLength

# File lib/generators/rails/component_generator.rb, line 33
def copy_stylesheets
  return if options['skip_css']

  path = File.join('app', 'assets', 'stylesheets', 'components', class_path, "#{file_name}.scss")
  template('component.scss', path)
end
create_erbs() click to toggle source
# File lib/generators/rails/component_generator.rb, line 18
def create_erbs
  return if options['skip_erb']

  path = File.join('app', 'views', 'components', class_path, "_#{file_name}.html.erb")
  create_file(path)
end

Private Instance Methods

file_name() click to toggle source

rubocop:enable Layout/LineLength

Calls superclass method
# File lib/generators/rails/component_generator.rb, line 43
def file_name
  @_file_name ||= remove_possible_suffix(super)
end
remove_possible_suffix(name) click to toggle source
# File lib/generators/rails/component_generator.rb, line 47
def remove_possible_suffix(name)
  name.sub(/_?component$/i, '')
end