Sha256: 5d059e6d9a61a79a851a5965c42b33729f7f90a9f952e6aa61ec250cf58afeeb

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

class DevSystem::RequestGenerator < DevSystem::Generator
  main_dsl

  FOLDER = "app/web/requests"

  generate :controller do
    folder "app/web/requests"
    filename "#{name}_request.rb"
    content request_content name
  end

  generate :controller_test do
    folder "app/web/requests"
    filename "#{name}_request_test.rb"
    content request_test_content name
  end

  # helper methods

  def request_content name
    <<~CODE
class #{name.camelize}Request < Liza::Request

  def self.call env
    path = env["REQUEST_PATH"]
    log "args = #{args.inspect}"

    #

    status = 200
    headers = {
      "Framework" => "Liza \#{Lizarb::VERSION}"
    }
    body = "It works!"

    #

    log status
    [status, headers, [body]]
  end

end
    CODE
  end

  def request_test_content name
    <<~CODE
class #{name.camelize}RequestTest < Liza::RequestTest

  test :subject_class do
    assert subject_class == #{name.camelize}Request
  end

  test :settings do
    assert subject_class.log_level == :normal
    assert subject_class.log_color == :blue
  end

end
    CODE
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lizarb-1.0.4 lib/dev_system/dev/controllers/generators/request_generator.rb