<!DOCTYPE html> <html lang=“en”>

<head>
  <meta charset="utf-8">

<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-eb63b5ca175f20151e478297e2205d5d6ac5acc8068a83c1d838e50e91689df4.css" integrity="sha256-62O1yhdfIBUeR4KX4iBdXWrFrMgGioPB2DjlDpFonfQ=" media="all" rel="stylesheet" />
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github-ce0c4ea874809df80d4e80fd270d0e13ea4f011c06ef9875b89fe1725aedff36.css" integrity="sha256-zgxOqHSAnfgNToD9Jw0OE+pPARwG75h1uJ/hclrt/zY=" media="all" rel="stylesheet" />

<meta name="viewport" content="width=device-width">

<title>grape-on-rack/rack-logo.png at master · ruby-grape/grape-on-rack</title>
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">

<link rel="assets" href="https://assets-cdn.github.com/">
<link rel="web-socket" href="wss://live.github.com/_sockets/VjI6MTU2OTc5NTAyOmRhZTE1MTcxNTA2OGFmNjVjZjY1Njk2MTJkY2UzNmRmM2Y5NjdkY2NhZDBjZGJiNDE5Y2QzYmEyYWQ2ZjRjOWU=--57d48a32579795cde09904a02b6d5e15829dd2af">
<meta name="pjax-timeout" content="1000">
<link rel="sudo-modal" href="/sessions/sudo_modal">
<meta name="request-id" content="96C8:67F9:5B9F9C:8FF140:58B7CE53" data-pjax-transient>

<meta name="selected-link" value="repo_source" data-pjax-transient>

<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">

<meta name=“google-site-verification” content=“ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA”>

<meta name="google-analytics" content="UA-3769691-2">

<meta content=“collector.githubapp.com” name=“octolytics-host” /><meta content=“github” name=“octolytics-app-id” /><meta content=“collector.githubapp.com/github-external/browser_event” name=“octolytics-event-url” /><meta content=“96C8:67F9:5B9F9C:8FF140:58B7CE53” name=“octolytics-dimension-request_id” /><meta content=“477395” name=“octolytics-actor-id” /><meta content=“Kris-LIBIS” name=“octolytics-actor-login” /><meta content=“32117f5e5db782c99287751d910df58bea6a70f9d0c9648251c827c5cf23c4ac” name=“octolytics-actor-hash” /> <meta content=“/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show” data-pjax-transient=“true” name=“analytics-location” />

<meta class="js-ga-set" name="dimension1" content="Logged In">

    <meta name="hostname" content="github.com">
<meta name="user-login" content="Kris-LIBIS">

    <meta name="expected-hostname" content="github.com">
  <meta name="js-proxy-site-detection-payload" content="MTMxZGEwYjQwNmMwNGRlOTM2ZGYxYmRmZTEzMzUxODEwNTRiOGRkNTIxODQwNzgyYmFmNTVjMDBjYzRlODk5N3x7InJlbW90ZV9hZGRyZXNzIjoiMTM0LjU4LjI1My41NiIsInJlcXVlc3RfaWQiOiI5NkM4OjY3Rjk6NUI5RjlDOjhGRjE0MDo1OEI3Q0U1MyIsInRpbWVzdGFtcCI6MTQ4ODQ0MDkxNSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">

<meta name="html-safe-nonce" content="762a2485ae8dc53ac32015362a56af7dd790db80">

<meta http-equiv="x-pjax-version" content="e43befffed903825e51be774232c9c58">

<meta name="description" content="grape-on-rack - A demo Grape API mounted on RACK.">
<meta name="go-import" content="github.com/ruby-grape/grape-on-rack git https://github.com/ruby-grape/grape-on-rack.git">

<meta content="13624553" name="octolytics-dimension-user_id" /><meta content="ruby-grape" name="octolytics-dimension-user_login" /><meta content="3306052" name="octolytics-dimension-repository_id" /><meta content="ruby-grape/grape-on-rack" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="3306052" name="octolytics-dimension-repository_network_root_id" /><meta content="ruby-grape/grape-on-rack" name="octolytics-dimension-repository_network_root_nwo" />
<link href="https://github.com/ruby-grape/grape-on-rack/commits/master.atom" rel="alternate" title="Recent Commits to grape-on-rack:master" type="application/atom+xml">

  <link rel="canonical" href="https://github.com/ruby-grape/grape-on-rack/blob/master/public/images/rack-logo.png" data-pjax-transient>

<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">

<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

<link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#000000">
<link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">

<meta name=“theme-color” content=“#1e2327”>

<meta name="u2f-support" content="true">

</head>

<body class="logged-in env-production linux vis-public page-blob">

<div class="position-relative js-header-wrapper ">
  <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
  <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>

      <div class="header" role="banner">
<div class="container clearfix">

  <a class="header-logo-invertocat" href="https://github.com/" data-hotkey="g d" aria-label="Homepage" data-ga-click="Header, go to dashboard, icon:logo">
<svg aria-hidden="true" class="octicon octicon-mark-github" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>

</a>

      <div class="header-search scoped-search site-scoped-search js-site-search" role="search">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/ruby-grape/grape-on-rack/search" class="js-site-search-form" data-scoped-search-url="/ruby-grape/grape-on-rack/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
  <label class="form-control header-search-wrapper js-chromeless-input-container">
    <div class="header-search-scope">This repository</div>
    <input type="text"
      class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
      data-hotkey="s"
      name="q"
      placeholder="Search"
      aria-label="Search this repository"
      data-unscoped-placeholder="Search GitHub"
      data-scoped-placeholder="Search"
      autocapitalize="off">
  </label>

</form></div>

<ul class="header-nav float-left" role="navigation">
  <li class="header-nav-item">
    <a href="/pulls" aria-label="Pull requests you created" class="js-selected-navigation-item header-nav-link" data-ga-click="Header, click, Nav menu - item:pulls context:user" data-hotkey="g p" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls">
      Pull requests

</a> </li>

<li class="header-nav-item">
  <a href="/issues" aria-label="Issues you created" class="js-selected-navigation-item header-nav-link" data-ga-click="Header, click, Nav menu - item:issues context:user" data-hotkey="g i" data-selected-links="/issues /issues/assigned /issues/mentioned /issues">
    Issues

</a> </li>

    <li class="header-nav-item">
      <a class="header-nav-link" href="https://gist.github.com/" data-ga-click="Header, go to gist, text:gist">Gist</a>
    </li>
</ul>

<ul class=“header-nav user-nav float-right” id=“user-links”>

<li class="header-nav-item">

  <a href="/notifications" aria-label="You have unread notifications" class="header-nav-link notification-indicator tooltipped tooltipped-s js-socket-channel js-notification-indicator" data-channel="tenant:1:notification-changed:477395" data-ga-click="Header, go to notifications, icon:unread" data-hotkey="g n">
      <span class="mail-status unread"></span>
      <svg aria-hidden="true" class="octicon octicon-bell float-left" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"/></svg>

</a>

</li>

<li class="header-nav-item dropdown js-menu-container">
  <a class="header-nav-link tooltipped tooltipped-s js-menu-target" href="/new"
     aria-label="Create new…"
     data-ga-click="Header, create new, icon:add">
    <svg aria-hidden="true" class="octicon octicon-plus float-left" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 9H7v5H5V9H0V7h5V2h2v5h5z"/></svg>
    <span class="dropdown-caret"></span>
  </a>

  <div class="dropdown-menu-content js-menu-content">
    <ul class="dropdown-menu dropdown-menu-sw">

<a class=“dropdown-item” href=“/new” data-ga-click=“Header, create new repository”>

New repository

</a>

<a class="dropdown-item" href="/new/import" data-ga-click="Header, import a repository">
  Import repository
</a>

<a class=“dropdown-item” href=“gist.github.com/” data-ga-click=“Header, create new gist”>

New gist

</a>

<a class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization">
  New organization
</a>

<div class="dropdown-divider"></div>
<div class="dropdown-header">
  <span title="ruby-grape/grape-on-rack">This repository</span>
</div>
  <a class="dropdown-item" href="/ruby-grape/grape-on-rack/issues/new" data-ga-click="Header, create new issue">
    New issue
  </a>

    </ul>
  </div>
</li>

<li class="header-nav-item dropdown js-menu-container">
  <a class="header-nav-link name tooltipped tooltipped-sw js-menu-target" href="/Kris-LIBIS"
     aria-label="View profile and more"
     data-ga-click="Header, show menu, icon:avatar">
    <img alt="@Kris-LIBIS" class="avatar" height="20" src="https://avatars2.githubusercontent.com/u/477395?v=3&amp;s=40" width="20" />
    <span class="dropdown-caret"></span>
  </a>

  <div class="dropdown-menu-content js-menu-content">
    <div class="dropdown-menu dropdown-menu-sw">
      <div class="dropdown-header header-nav-current-user css-truncate">
        Signed in as <strong class="css-truncate-target">Kris-LIBIS</strong>
      </div>

      <div class="dropdown-divider"></div>

      <a class="dropdown-item" href="/Kris-LIBIS" data-ga-click="Header, go to profile, text:your profile">
        Your profile
      </a>
      <a class="dropdown-item" href="/Kris-LIBIS?tab=stars" data-ga-click="Header, go to starred repos, text:your stars">
        Your stars
      </a>
      <a class="dropdown-item" href="/explore" data-ga-click="Header, go to explore, text:explore">
        Explore
      </a>
        <a class="dropdown-item" href="/integrations" data-ga-click="Header, go to integrations, text:integrations">
          Integrations
        </a>
      <a class="dropdown-item" href="https://help.github.com" data-ga-click="Header, go to help, text:help">
        Help
      </a>

      <div class="dropdown-divider"></div>

      <a class="dropdown-item" href="/settings/profile" data-ga-click="Header, go to settings, icon:settings">
        Settings
      </a>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/logout" class="logout-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="EfnmQuep1RIrtIyke4UxqxoaJ9DIsWDLfCxkA48kapGv2yiOcTL1WPs6Y4M90kuRxXzfUIL+L8pgQsXD3oiK7w==" /></div>
        <button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout">
          Sign out
        </button>

</form> </div>

  </div>
</li>

</ul>

<!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/logout" class="sr-only right-0" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="MiVbU5hQLEV48eCkgdRWj3ciMHcPjIxYoI3IVF8aiUqMB5WfDssMD6h/D4PHgyy1qETI90XDw1m842mUDrZpNA==" /></div>
  <button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout">
    Sign out
  </button>

</form>

</div>

</div>

</div>

<div id="start-of-content" class="accessibility-aid"></div>

  <div id="js-flash-container">

</div>

<div role="main">
    <div itemscope itemtype="http://schema.org/SoftwareSourceCode">
  <div id="js-repo-pjax-container" data-pjax-container>

<div class=“pagehead repohead instapaper_ignore readability-menu experiment-repo-nav”>

<div class="container repohead-details-container">

<ul class=“pagehead-actions”>

<li>
      <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="/bDFsBUVKt6dFD2PFIP5CYfxh8ife+ARH4BY1uV0vbrAr5zoTGqQmlODqsgbLWZ6StMjWIFuC8s+MW6HAkEkjw==" /></div>      <input class="form-control" id="repository_id" name="repository_id" type="hidden" value="3306052" />

      <div class="select-menu js-menu-container js-select-menu">
        <a href="/ruby-grape/grape-on-rack/subscription"
          class="btn btn-sm btn-with-count select-menu-button js-menu-target" role="button" tabindex="0" aria-haspopup="true"
          data-ga-click="Repository, click Watch settings, action:blob#show">
          <span class="js-select-button">
            <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
            Watch
          </span>
        </a>
        <a class="social-count js-social-count"
          href="/ruby-grape/grape-on-rack/watchers"
          aria-label="17 users are watching this repository">
          17
        </a>

      <div class="select-menu-modal-holder">
        <div class="select-menu-modal subscription-menu-modal js-menu-content" aria-hidden="true">
          <div class="select-menu-header js-navigation-enable" tabindex="-1">
            <svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
            <span class="select-menu-title">Notifications</span>
          </div>

            <div class="select-menu-list js-navigation-container" role="menu">

              <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0">
                <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                <div class="select-menu-item-text">
                  <input checked="checked" id="do_included" name="do" type="radio" value="included" />
                  <span class="select-menu-item-heading">Not watching</span>
                  <span class="description">Be notified when participating or @mentioned.</span>
                  <span class="js-select-button-text hidden-select-button-text">
                    <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                    Watch
                  </span>
                </div>
              </div>

              <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
                <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                <div class="select-menu-item-text">
                  <input id="do_subscribed" name="do" type="radio" value="subscribed" />
                  <span class="select-menu-item-heading">Watching</span>
                  <span class="description">Be notified of all conversations.</span>
                  <span class="js-select-button-text hidden-select-button-text">
                    <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                    Unwatch
                  </span>
                </div>
              </div>

              <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
                <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                <div class="select-menu-item-text">
                  <input id="do_ignore" name="do" type="radio" value="ignore" />
                  <span class="select-menu-item-heading">Ignoring</span>
                  <span class="description">Never be notified.</span>
                  <span class="js-select-button-text hidden-select-button-text">
                    <svg aria-hidden="true" class="octicon octicon-mute" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
                    Stop ignoring
                  </span>
                </div>
              </div>

            </div>

          </div>
        </div>
      </div>

</form>

</li>

<li>
    <div class="js-toggler-container js-social-container starring-container ">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/ruby-grape/grape-on-rack/unstar" class="starred" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="Vgj0FcfqTOWI+pOWhtf1EQ5u0nqNjbmTYo7Ab0GEdOIhhXkFtWeZrykl/u7AqfxYehSrZXCOk2Zv5GfWmA9fjQ==" /></div>
    <button
      type="submit"
      class="btn btn-sm btn-with-count js-toggler-target"
      aria-label="Unstar this repository" title="Unstar ruby-grape/grape-on-rack"
      data-ga-click="Repository, click unstar button, action:blob#show; text:Unstar">
      <svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"/></svg>
      Unstar
    </button>
      <a class="social-count js-social-count" href="/ruby-grape/grape-on-rack/stargazers"
         aria-label="236 users starred this repository">
        236
      </a>

</form>

<!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/ruby-grape/grape-on-rack/star" class="unstarred" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="DUN2NmLbAAqqwQvpiIDTzsrTW0NAzI7DetAWiPEhvhJYW/iAN9FGVcIR9VqNgaCodSTGMHPW5akQIE1c1hv7Qw==" /></div>
  <button
    type="submit"
    class="btn btn-sm btn-with-count js-toggler-target"
    aria-label="Star this repository" title="Star ruby-grape/grape-on-rack"
    data-ga-click="Repository, click star button, action:blob#show; text:Star">
    <svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"/></svg>
    Star
  </button>
    <a class="social-count js-social-count" href="/ruby-grape/grape-on-rack/stargazers"
       aria-label="236 users starred this repository">
      236
    </a>

</form> </div>

</li>

<li>
        <a href="#fork-destination-box" class="btn btn-sm btn-with-count"
            title="Fork your own copy of ruby-grape/grape-on-rack to your account"
            aria-label="Fork your own copy of ruby-grape/grape-on-rack to your account"
            rel="facebox"
            data-ga-click="Repository, show fork modal, action:blob#show; text:Fork">
            <svg aria-hidden="true" class="octicon octicon-repo-forked" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
          Fork
        </a>

        <div id="fork-destination-box" style="display: none;">
          <h2 class="facebox-header" data-facebox-id="facebox-header">Where should we fork this repository?</h2>
          <include-fragment src=""
              class="js-fork-select-fragment fork-select-fragment"
              data-url="/ruby-grape/grape-on-rack/fork?fragment=1">
            <img alt="Loading" height="64" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-128.gif" width="64" />
          </include-fragment>
        </div>

  <a href="/ruby-grape/grape-on-rack/network" class="social-count"
     aria-label="67 users forked this repository">
    67
  </a>
</li>

</ul>

  <h1 class="public ">
<svg aria-hidden="true" class="octicon octicon-repo" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<span class="author" itemprop="author"><a href="/ruby-grape" class="url fn" rel="author">ruby-grape</a></span><!--

–><span class=“path-divider”>/</span><!– –><strong itemprop=“name”><a href=“/ruby-grape/grape-on-rack” data-pjax=“#js-repo-pjax-container”>grape-on-rack</a></strong>

</h1>

</div>
<div class="container">

<nav class=“reponav js-repo-nav js-sidenav-container-pjax”

   itemscope
   itemtype="http://schema.org/BreadcrumbList"
   role="navigation"
   data-pjax="#js-repo-pjax-container">

<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
  <a href="/ruby-grape/grape-on-rack" class="js-selected-navigation-item selected reponav-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /ruby-grape/grape-on-rack" itemprop="url">
    <svg aria-hidden="true" class="octicon octicon-code" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
    <span itemprop="name">Code</span>
    <meta itemprop="position" content="1">

</a> </span>

<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
  <a href="/ruby-grape/grape-on-rack/issues" class="js-selected-navigation-item reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /ruby-grape/grape-on-rack/issues" itemprop="url">
    <svg aria-hidden="true" class="octicon octicon-issue-opened" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
    <span itemprop="name">Issues</span>
    <span class="counter">0</span>
    <meta itemprop="position" content="2">

</a> </span>

<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
  <a href="/ruby-grape/grape-on-rack/pulls" class="js-selected-navigation-item reponav-item" data-hotkey="g p" data-selected-links="repo_pulls /ruby-grape/grape-on-rack/pulls" itemprop="url">
    <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
    <span itemprop="name">Pull requests</span>
    <span class="counter">2</span>
    <meta itemprop="position" content="3">

</a> </span>

<a href="/ruby-grape/grape-on-rack/projects" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /ruby-grape/grape-on-rack/projects">
  <svg aria-hidden="true" class="octicon octicon-project" height="16" version="1.1" viewBox="0 0 15 16" width="15"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
  Projects
  <span class="counter">0</span>

</a>

<a href="/ruby-grape/grape-on-rack/pulse" class="js-selected-navigation-item reponav-item" data-selected-links="pulse /ruby-grape/grape-on-rack/pulse">
  <svg aria-hidden="true" class="octicon octicon-pulse" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8z"/></svg>
  Pulse

</a>

<a href="/ruby-grape/grape-on-rack/graphs" class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors /ruby-grape/grape-on-rack/graphs">
  <svg aria-hidden="true" class="octicon octicon-graph" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
  Graphs

</a>

</nav>

</div>

</div>

<div class=“container new-discussion-timeline experiment-repo-nav”>

<div class="repository-content">

<a href=“/ruby-grape/grape-on-rack/blob/9acf176bc2dbdc88c55aa825a133ac0180553f5e/public/images/rack-logo.png” class=“d-none js-permalink-shortcut” data-hotkey=“y”>Permalink</a>

<!– blob contrib key: blob_contributors:v21:40a47b4b6ca35e425298629fa851eb57 –>

<div class=“file-navigation js-zeroclipboard-container”>

<div class=“select-menu branch-select-menu js-menu-container js-select-menu float-left”>

<button class="btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"

  type="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
  <i>Branch:</i>
  <span class="js-select-button css-truncate-target">master</span>
</button>

<div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">

  <div class="select-menu-modal">
    <div class="select-menu-header">
      <svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
      <span class="select-menu-title">Switch branches/tags</span>
    </div>

    <div class="select-menu-filters">
      <div class="select-menu-text-filter">
        <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
      </div>
      <div class="select-menu-tabs">
        <ul>
          <li class="select-menu-tab">
            <a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
          </li>
          <li class="select-menu-tab">
            <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
          </li>
        </ul>
      </div>
    </div>

    <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">

      <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">

          <a class="select-menu-item js-navigation-item js-navigation-open selected"
             href="/ruby-grape/grape-on-rack/blob/master/public/images/rack-logo.png"
             data-name="master"
             data-skip-pjax="true"
             rel="nofollow">
            <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
            <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
              master
            </span>
          </a>
          <a class="select-menu-item js-navigation-item js-navigation-open "
             href="/ruby-grape/grape-on-rack/blob/use-warden-in-tests/public/images/rack-logo.png"
             data-name="use-warden-in-tests"
             data-skip-pjax="true"
             rel="nofollow">
            <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
            <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
              use-warden-in-tests
            </span>
          </a>
      </div>

        <div class="select-menu-no-results">Nothing to show</div>
    </div>

    <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
      <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">

      </div>

      <div class="select-menu-no-results">Nothing to show</div>
    </div>

  </div>
</div>

</div>

<div class="BtnGroup float-right">
  <a href="/ruby-grape/grape-on-rack/find/master"
        class="js-pjax-capture-input btn btn-sm BtnGroup-item"
        data-pjax
        data-hotkey="t">
    Find file
  </a>
  <button aria-label="Copy file path to clipboard" class="js-zeroclipboard btn btn-sm BtnGroup-item tooltipped tooltipped-s" data-copied-hint="Copied!" type="button">Copy path</button>
</div>
<div class="breadcrumb js-zeroclipboard-target">
  <span class="repo-root js-repo-root"><span class="js-path-segment"><a href="/ruby-grape/grape-on-rack"><span>grape-on-rack</span></a></span></span><span class="separator">/</span><span class="js-path-segment"><a href="/ruby-grape/grape-on-rack/tree/master/public"><span>public</span></a></span><span class="separator">/</span><span class="js-path-segment"><a href="/ruby-grape/grape-on-rack/tree/master/public/images"><span>images</span></a></span><span class="separator">/</span><strong class="final-path">rack-logo.png</strong>
</div>

</div>

<div class="commit-tease">
    <span class="float-right">
      <a class="commit-tease-sha" href="/ruby-grape/grape-on-rack/commit/f998058cc34c03ad8b035a64799b44359937f538" data-pjax>
        f998058
      </a>
      <relative-time datetime="2012-01-30T15:35:14Z">Jan 30, 2012</relative-time>
    </span>
    <div>
      <img alt="@dblock" class="avatar" height="20" src="https://avatars2.githubusercontent.com/u/542335?v=3&amp;s=40" width="20" />
      <a href="/dblock" class="user-mention" rel="contributor">dblock</a>
        <a href="/ruby-grape/grape-on-rack/commit/f998058cc34c03ad8b035a64799b44359937f538" class="message" data-pjax="true" title="A basic Grape API mounted on RACK.">A basic Grape API mounted on RACK.</a>
    </div>

  <div class="commit-tease-contributors">
    <button type="button" class="btn-link muted-link contributors-toggle" data-facebox="#blob_contributors_box">
      <strong>1</strong>
       contributor
    </button>

  </div>

  <div id="blob_contributors_box" style="display:none">
    <h2 class="facebox-header" data-facebox-id="facebox-header">Users who have contributed to this file</h2>
    <ul class="facebox-user-list" data-facebox-id="facebox-description">
        <li class="facebox-user-list-item">
          <img alt="@dblock" height="24" src="https://avatars0.githubusercontent.com/u/542335?v=3&amp;s=48" width="24" />
          <a href="/dblock">dblock</a>
        </li>
    </ul>
  </div>
</div>

<div class=“file”>

<div class="file-header">
<div class="file-actions">

  <div class="BtnGroup">
    <a href="/ruby-grape/grape-on-rack/raw/master/public/images/rack-logo.png" class="btn btn-sm BtnGroup-item" id="raw-url">Download</a>
    <a href="/ruby-grape/grape-on-rack/commits/master/public/images/rack-logo.png" class="btn btn-sm BtnGroup-item" rel="nofollow">History</a>
  </div>

      <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/ruby-grape/grape-on-rack/delete/master/public/images/rack-logo.png" class="inline-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="ocn7uK9qx/qIeFEBaFEgnAvk1g+B3msK0QA0mtlJRA5fy6ggt3Dg4tM7DDPa+NnXakmK6T8eeUECqHXg8mG1bw==" /></div>
        <button class="btn-octicon btn-octicon-danger tooltipped tooltipped-nw" type="submit"
          aria-label="Fork this project and delete the file" data-disable-with>
          <svg aria-hidden="true" class="octicon octicon-trashcan" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"/></svg>
        </button>

</form> </div>

<div class="file-info">
  25.9 KB
</div>

</div>

<div itemprop="text" class="blob-wrapper data type-text">
    <div class="image">
        <span class="border-wrap"><img src="/ruby-grape/grape-on-rack/blob/master/public/images/rack-logo.png?raw=true" alt="rack-logo.png"></span>
    </div>
</div>

</div>

<button type=“button” data-facebox=“#jump-to-line” data-facebox-class=“linejump” data-hotkey=“l” class=“d-none”>Jump to Line</button> <div id=“jump-to-line” style=“display:none”>

<!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="" class="js-jump-to-line-form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
  <input class="form-control linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" aria-label="Jump to line" autofocus>
  <button type="submit" class="btn">Go</button>

</form></div>

</div>
<div class="modal-backdrop js-touch-events"></div>

</div>

  </div>
</div>

</div>

    <div class="container site-footer-container">
<div class="site-footer" role="contentinfo">
  <ul class="site-footer-links float-right">
      <li><a href="https://github.com/contact" data-ga-click="Footer, go to contact, text:contact">Contact GitHub</a></li>
    <li><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
    <li><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
    <li><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
      <li><a href="https://github.com/blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
      <li><a href="https://github.com/about" data-ga-click="Footer, go to about, text:about">About</a></li>

  </ul>

  <a href="https://github.com" aria-label="Homepage" class="site-footer-mark" title="GitHub">
    <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>

</a>

  <ul class="site-footer-links">
    <li>&copy; 2017 <span title="0.10776s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
      <li><a href="https://github.com/site/terms" data-ga-click="Footer, go to terms, text:terms">Terms</a></li>
      <li><a href="https://github.com/site/privacy" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li>
      <li><a href="https://github.com/security" data-ga-click="Footer, go to security, text:security">Security</a></li>
      <li><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
      <li><a href="https://help.github.com" data-ga-click="Footer, go to help, text:help">Help</a></li>
  </ul>
</div>

</div>

<div id="ajax-error-message" class="ajax-error-message flash flash-error">
  <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
  <button type="button" class="flash-close js-flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
    <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
  </button>
  You can't perform that action at this time.
</div>

  <script crossorigin="anonymous" integrity="sha256-UGFpyy/nYlS5IejJRN1AblyrLXGeZX6s6K2phIYjFHI=" src="https://assets-cdn.github.com/assets/frameworks-506169cb2fe76254b921e8c944dd406e5cab2d719e657eace8ada98486231472.js"></script>
  <script async="async" crossorigin="anonymous" integrity="sha256-i27dVdFxKeJquexWC35e0pCOS6u4HQL4wilBne5YwME=" src="https://assets-cdn.github.com/assets/github-8b6edd55d17129e26ab9ec560b7e5ed2908e4babb81d02f8c229419dee58c0c1.js"></script>

<div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner d-none">
  <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
  <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
  <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
</div>
<div class="facebox" id="facebox" style="display:none;">
<div class="facebox-popup">
  <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
  </div>
  <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
    <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
  </button>
</div>

</div>

</body>

</html>