class ComposerGenerator

Public Instance Methods

install() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 7
def install
  gen_route if yes?("gen route?")
  gen_model if yes?("gen model?")
  gen_controller if yes?("gen controller?")  
  gen_view if yes?("gen view?")
  gen_pundit if yes?("gen pundit?")
  gen_serializer if yes?("gen serializer?")
end

Private Instance Methods

gen_controller() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 35
def gen_controller
  if yes?("does it need a namespace?")
    @namespace = ask("pls, input namespace name:")
    @namespace = @namespace.split('::').map(&:camelize).join("::")
    template 'controllers/namespace_controller.rb.erb', File.join("app/controllers", @namespace.underscore, "#{singular_name}.rb")
  else
    template 'controllers/controller.rb.erb', File.join("app/controllers", "#{singular_name}.rb")
  end
end
gen_model() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 31
def gen_model
  template 'models/model.rb.erb', File.join("app/models", "#{singular_name}.rb")
end
gen_pundit() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 76
def gen_pundit
  if yes?("does it need a namespace?")
    @namespace = ask("pls, input namespace name:")
    @namespace = @namespace.split('::').map(&:camelize).join("::")
    template 'policies/pundit.rb.erb', File.join("app/policies", @namespace.underscore, "#{singular_name.underscore}_policy.rb")
  else
    template 'policies/pundit.rb.erb', File.join("app/policies", "#{singular_name.underscore}_policy.rb")
  end
end
gen_route() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 18
  def gen_route
    inject_into_file 'config/routes.rb', after: "# composer flag\n" do <<-RUBY

  resources :#{plural_name}
  resources :#{plural_name} do
    get :foo
    get :bar, on: :collection
  end

    RUBY
    end
  end
gen_serializer() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 86
def gen_serializer
  if yes?("does it need a namespace?")
    @namespace = ask("pls, input namespace name:")
    @namespace = @namespace.split('::').map(&:camelize).join("::")
    template 'serializers/namespace_serializer.rb.erb', File.join("app/serializers", @namespace.underscore, "#{singular_name}_serializer.rb")
  else
    template 'serializers/serializer.rb.erb', File.join("app/serializers", "#{singular_name}_serializer.rb")
  end
end
gen_view() click to toggle source
# File lib/generators/composer/composer_generator.rb, line 45
def gen_view
  actions = "index show new edit destory _form _record"
  if yes?("does it need a namespace?")
    @namespace = ask("pls, input namespace name:")
    @namespace = @namespace.split('::').map(&:camelize).join("::")
    actions.split(" ").each do |action|
      case action
      when 'destory'
        template "views/destroy.html.erb", File.join("app/views", @namespace.underscore, "destroy.turbo_stream.haml")
      when '_record'
        filename = "_#{singular_name}.html.haml"
        template "views/_record.html.erb", File.join("app/views", @namespace.underscore, filename)
      else
        template "views/#{action}.html.erb", File.join("app/views", @namespace.underscore, "#{action}.html.haml")
      end
    end
  else
    actions.split(" ").each do |action|
      case action
      when 'destory'
        template "views/destroy.html.erb", File.join("app/views", "destroy.turbo_stream.haml")
      when '_record'
        filename = "_#{singular_name}.html.haml"
        template "views/_record.html.erb", File.join("app/views", filename)
      else
        template "views/#{action}.html.erb", File.join("app/views", "#{action}.html.haml")
      end
    end
  end
end