Sha256: 403cffba07354dfe7fc11b97e05a27e419cf8c2b5d5c6e73dc56751380890513

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

class RequestGenerator < Liza::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 :higher, "Called \#{self}.\#{__method__} with path \#{path}"

    #

    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

3 entries across 3 versions & 1 rubygems

Version Path
lizarb-1.0.3 app/dev/generators/request_generator.rb
lizarb-1.0.2 app/dev/generators/request_generator.rb
lizarb-1.0.1 app/dev/generators/request_generator.rb