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