class ComponentGenerator

Public Instance Methods

create_component_files() click to toggle source
# File lib/generators/component/component_generator.rb, line 18
def create_component_files
  create_view_file
  create_sass_file
  update_base_imports_file
end
set_component_name_variable() click to toggle source
# File lib/generators/component/component_generator.rb, line 10
def set_component_name_variable
  @component_name = component_name
end
set_extension() click to toggle source
# File lib/generators/component/component_generator.rb, line 14
def set_extension
  @extension = validate_extension_format(options[:format])
end

Private Instance Methods

component_name() click to toggle source
# File lib/generators/component/component_generator.rb, line 26
def component_name
  file_name.gsub(/-/, '_')
end
create_sass_file() click to toggle source
# File lib/generators/component/component_generator.rb, line 42
def create_sass_file
  style_dir = options[:block] ? 'sections' : 'blocks'
  template 'component_stylesheet_template.scss', "app/assets/stylesheets/#{style_dir}/_#{component_name}.scss"
end
create_view_file() click to toggle source
# File lib/generators/component/component_generator.rb, line 35
def create_view_file
  created_file_name = "app/views/application/_#{component_name}.html.#{@extension}"
  template_type = options[:block] ? 'block_template' : 'inline_template'

  template "#{@extension}/#{template_type}.html.#{@extension}", created_file_name
end
update_base_imports_file() click to toggle source
# File lib/generators/component/component_generator.rb, line 47
def update_base_imports_file
  FileUtils.touch('app/assets/stylesheets/base.scss')
  style_dir = options[:block] ? 'sections' : 'blocks'
  append_to_file 'app/assets/stylesheets/base.scss', "@import '#{style_dir}/#{component_name}';\n"
end
validate_extension_format(format) click to toggle source
# File lib/generators/component/component_generator.rb, line 30
def validate_extension_format(format)
  whitelist = ['erb', 'slim', 'haml']
  return whitelist.include?(format) ? format : 'erb'
end