Sha256: 0ef4ae9296a465185743b10093dd627089ed555fa600a8f7d112111c9db4814e

Contents?: true

Size: 971 Bytes

Versions: 3

Compression:

Stored size: 971 Bytes

Contents

class ComponentGenerator < Rails::Generators::NamedBase
  source_root File.expand_path('templates', __dir__)

  def add_component
    segments = name.underscore.split('/')
    fail("NAME must be of the form Family::ComponentName or family/component_name but got #{name.inspect}") if segments.size != 2
    @family, @comp = segments
    @family = @family.pluralize # Force plural
    @family_cst = @family.camelize.pluralize # Force plural
    @comp_cst = @comp.camelize # Tolerate singular and plural

    case @comp_cst
    when 'Destroy'
      template 'destroy.rb.erb', "app/components/#{@family}/#{@comp}.rb"
    when 'Edit'
      template 'edit.rb.erb', "app/components/#{@family}/#{@comp}.rb"
    when 'Form'
      template 'form.rb.erb', "app/components/#{@family}/#{@comp}.rb"
    when 'New'
      template 'new.rb.erb', "app/components/#{@family}/#{@comp}.rb"
    else
      template 'component.rb.erb', "app/components/#{@family}/#{@comp}.rb"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
compony-0.0.7 lib/generators/component/component_generator.rb
compony-0.0.6 lib/generators/component/component_generator.rb
compony-0.0.5 lib/generators/component/component_generator.rb