<commit_before>homepage: https://github.com/scotty-web/scotty
changelog-type: markdown
hash: 3d39110b2d072aec0d4ec4d898370af795d18e031369c8587c07a8f79a074b57
test-bench-deps:
  bytestring: -any
  wai: -any
  base: -any
  data-default-class: -any
  hspec: ==2.*
  text: -any
  network: -any
  async: -any
  lifted-base: -any
  hspec-wai: ! '>=0.6.3'
  scotty: -any
  http-types: -any
  hpc-coveralls: -any
  directory: -any
maintainer: <NAME> <<EMAIL>>
synopsis: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp
changelog: ! "## 0.11.1 [2018.04.07]\n* Add `MonadThrow` and `MonadCatch` instances
  for `ActionT` [abhinav]\n* Fix `matchAny` so that all methods are matched, not just
  standard ones\n  [taphu]\n\n## 0.11.0\n* IO exceptions are no longer automatically
  turned into ScottyErrors by\n  `liftIO`. Use `liftAndCatchIO` to get that behavior.\n*
  New `finish` function.\n* Text values are now leniently decoded from ByteStrings.\n*
  Added `MonadFail` instance for `ScottyT`\n* Lots of bound bumps on dependencies.\n\n##
  0.10.2\n* Removed debug statement from routes\n\n## 0.10.1\n* `Parsable` instances
  for `Word`, `Word8`, `Word16`, `Word32`, `Word64`\n   [adamflott]\n* `Parsable`
  instances for `Int8`, `Int16`, `Int32`, `Int64`, and `Natural`\n* Removed redundant
  `Monad` constraint on `middleware`\n\n## 0.10.0\n\n* The monad parameters to `ScottyT`
  have been decoupled, causing the type\n  of the `ScottyT` constructor to change.
  As a result, `ScottyT` is no\n  longer a `MonadTrans` instance, and the type signatures
  of`scottyT`,\n  `scottyAppT`, and `scottyOptsT` have been simplified. [ehamberg]\n\n*
  `socketDescription` no longer uses the deprecated `PortNum` constructor.\n  Instead,
  it uses the `Show` instance for `PortNumber`. This changes the\n  bytes from host
  to network order, so the output of `socketDescription`\n  could change. [ehamberg]\n\n*
  `Alternative`, `MonadPlus` instances for `ActionT`\n\n* `scotty` now depends on
  `transformers-compat`. As a result, `ActionT` now\n  uses `ExceptT`, regardless
  of which version of `transformers` is used.\n  As a result, several functions in
  `Web.Scotty.Trans` no longer require a\n  `ScottyError` constraint, since `ExceptT`
  does not require an `Error`\n  constraint (unlike `ErrorT`).\n\n* Added support
  for OPTIONS routes via the `options` function [alvare]\n\n* Add `scottySocket` and
  `scottySocketT`, exposing Warp Unix socket support\n  [hakujin]\n\n* `Parsable`
  instance for lazy `ByteString` [tattsun]\n\n* Added streaming uploads via the `bodyReader`
  function, which retrieves chunks\n  of the request body. [edofic]\n  - `ActionEnv`
  had a `getBodyChunk` field added (in\n    `Web.Scotty.Internal.Types`)\n  - `RequestBodyState`
  and `BodyPartiallyStreamed` added to\n    `Web.Scotty.Internal.Types`\n\n* `jsonData`
  uses `aeson`'s `eitherDecode` instead of just `decode` [k-bx]\n\n## 0.9.1\n\n* text/html/json
  only set Content-Type header when not already set\n\n## 0.9.0\n\n* Add `charset=utf-8`
  to `Content-Type` for `text`, `html` and `json`\n\n* Assume HTTP status 500 for
  `defaultHandler`\n\n* Remove deprecated `source` method.\n\n* No longer depend on
  conduit.\n\n## 0.8.2\n\n* Bump `aeson` upper bound\n\n* Fix `mtl` related deprecation
  warnings\n\n## 0.8.1\n\n* Export internal types\n\n* Added `MonadBase`, `MonadTransControl`
  and `MonadBaseControl` instances for\n  `ActionT`\n\n## 0.8.0\n\n* Upgrade to wai/wai-extra/warp
  3.0\n\n* No longer depend on conduit-extra.\n\n* The `source` response method has
  been deprecated in favor\n  of a new `stream` response, matching changes in WAI
  3.0.\n\n* Removed the deprecated `reqHeader` function.\n\n## 0.7.3\n\n* Bump upper
  bound for case-insensitive, mtl and transformers.\n\n## 0.7.2\n\n* Bump lower bound
  on conduit, add conduit-extra to cabal build depends.\n\n## 0.7.1\n\n* Default warp
  settings now use `setFdCacheDuration 0` to work around a warp\n  issue where file
  changes are not getting picked up.\n\n## 0.7.0\n\n* Renamed `reqHeader` to `header`.
  Added `headers` function to get all headers.\n\n* Changed `MonadIO` instance for
  `ActionT` such that IO exceptions are lifted\n  into `ScottyError`s via `stringError`.\n\n*
  Make `Bool` parsing case-insensitive. Goal: support both Haskell's True/False\n
  \ and Javascript's true/false. Thanks to <NAME> for suggesting this.\n\n* Bump
  `aeson`/`text` upper bounds.\n\n* Bump `wai`/`wai-extra`/`warp` bounds, including
  new lower bound for `warp`, which fixes a security issue related to Slowloris protection.\n\n##
  0.6.2\n\n* Bump upper bound for `text`.\n\n## 0.6.1\n\n* Match changes in `wai-extra`.\n\n##
  0.6.0\n\n* The Scotty transformers (`ScottyT` and `ActionT`) are now parameterized\n
  \ over a custom exception type, allowing one to extend Scotty's `ErrorT`\n  layer
  with something richer than `Text` errors. See the `exceptions`\n  example for use.
  `ScottyM` and `ActionM` remain specialized to `Text`\n  exceptions for simplicity.\n\n*
  Both monads are now instances of `Functor` and `Applicative`.\n\n* There is a new
  `cookies` example.\n\n* Internals brought up-to-date with WAI 2.0 and related packages.\n\n##
  0.5.0\n\n* The Scotty monads (`ScottyM` and `ActionM`) are now monad transformers,\n
  \ allowing Scotty applications to be embedded in arbitrary `MonadIO`s.\n  The old
  API continues to be exported from `Web.Scotty` where:\n\n        type ScottyM =
  ScottyT IO\n        type ActionM = ActionT IO\n\n  The new transformers are found
  in `Web.Scotty.Trans`. See the\n  `globalstate` example for use. Special thanks
  to <NAME> (co-dan)\n  for much of the legwork here.\n\n* Added support for HTTP
  PATCH method.\n\n* Removed lambda action syntax. This will return when we have a
  better\n  story for typesafe routes.\n\n* `reqHeader :: Text -> ActionM Text` ==>\n
  \ `reqHeader :: Text -> ActionM (Maybe Text)`\n\n* New `raw` method to set body
  to a raw `ByteString`\n\n* Parse error thrown by `jsonData` now includes the body
  it couldn't parse.\n\n* `header` split into `setHeader` and `addHeader`. The former
  replaces\n  a response header (original behavior). The latter adds a header (useful\n
  \ for multiple `Set-Cookie`s, for instance).\n"
basic-deps:
  warp: ! '>=3.0.13 && <3.3'
  exceptions: ! '>=0.7 && <0.11'
  bytestring: ! '>=0.10.0.2 && <0.11'
  wai: ! '>=3.0.0 && <3.3'
  case-insensitive: ! '>=1.0.0.1 && <1.3'
  fail: -any
  base: ! '>=4.6 && <5'
  data-default-class: ! '>=0.0.1 && <0.2'
  text: ! '>=0.11.3.1 && <1.3'
  monad-control: ! '>=1.0.0.3 && <1.1'
  network: ! '>=2.6.0.2 && <2.8'
  blaze-builder: ! '>=0.3.3.0 && <0.5'
  regex-compat: ! '>=0.95.1 && <0.96'
  mtl: ! '>=2.1.2 && <2.3'
  transformers-base: ! '>=0.4.1 && <0.5'
  nats: ! '>=0.1 && <2'
  wai-extra: ! '>=3.0.0 && <3.1'
  transformers: ! '>=0.3.0.0 && <0.6'
  http-types: ! '>=0.8.2 && <0.13'
  aeson: ! '>=0.6.2.1 && <1.4'
  transformers-compat: ! '>=0.4 && <0.7'
all-versions:
- '0.6.0'
- '0.6.1'
- '0.6.2'
- '0.7.0'
- '0.7.1'
- '0.7.2'
- '0.7.3'
- '0.8.0'
- '0.8.1'
- '0.8.2'
- '0.9.0'
- '0.9.1'
- '0.10.0'
- '0.10.1'
- '0.10.2'
- '0.11.0'
- '0.11.1'
author: <NAME> <<EMAIL>>
latest: '0.11.1'
description-type: markdown
description: ! "# Scotty [![Build Status](https://travis-ci.org/scotty-web/scotty.svg)](https://travis-ci.org/scotty-web/scotty)[![Coverage
  Status](https://coveralls.io/repos/scotty-web/scotty/badge.svg?branch=master)](https://coveralls.io/r/scotty-web/scotty?branch=master)\n\nA
  Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.\n\n```haskell\n{-#
  LANGUAGE OverloadedStrings #-}\nimport Web.Scotty\n\nimport Data.Monoid (mconcat)\n\nmain
  = scotty 3000 $\n    get \"/:word\" $ do\n        beam <- param \"word\"\n        html
  $ mconcat [\"<h1>Scotty, \", beam, \" me up!</h1>\"]\n```\n\nScotty is the cheap
  and cheerful way to write RESTful, declarative web applications.\n\n* A page is
  as simple as defining the verb, url pattern, and Text content.\n* It is template-language
  agnostic. Anything that returns a Text value will do.\n* Conforms to WAI Application
  interface.\n* Uses very fast Warp webserver by default.\n\nSee examples/basic.hs
  to see Scotty in action. (basic.hs needs the wai-extra package)\n\n```bash\n> runghc
  examples/basic.hs\nSetting phasers to stun... (port 3000) (ctrl-c to quit)\n(visit
  localhost:3000/somepath)\n```\n\nAs for the name: Sinatra + Warp = Scotty.\n\n###
  More Information\n\nTutorials and related projects can be found in the Scotty wiki:\n\nhttps://github.com/scotty-web/scotty/wiki\n\n###
  Development & Support\n\nOpen an issue on GitHub or join `#scotty` on Freenode.\n\nCopyright
  (c) 2012-2017 <NAME>\n"
license-name: BSD3
<commit_msg>Update from Hackage at 2018-06-11T14:19:01Z<commit_after>homepage: https://github.com/scotty-web/scotty
changelog-type: markdown
hash: a1535f632a08a3296c1f017768775bfeb2548210b75005cd75b437db6f800282
test-bench-deps:
  bytestring: -any
  wai: -any
  base: -any
  data-default-class: -any
  hspec: ==2.*
  text: -any
  network: -any
  async: -any
  lifted-base: -any
  hspec-wai: ! '>=0.6.3'
  scotty: -any
  http-types: -any
  hpc-coveralls: -any
  directory: -any
maintainer: <NAME> <<EMAIL>>
synopsis: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp
changelog: ! "## 0.11.1 [2018.04.07]\n* Add `MonadThrow` and `MonadCatch` instances
  for `ActionT` [abhinav]\n* Fix `matchAny` so that all methods are matched, not just
  standard ones\n  [taphu]\n\n## 0.11.0\n* IO exceptions are no longer automatically
  turned into ScottyErrors by\n  `liftIO`. Use `liftAndCatchIO` to get that behavior.\n*
  New `finish` function.\n* Text values are now leniently decoded from ByteStrings.\n*
  Added `MonadFail` instance for `ScottyT`\n* Lots of bound bumps on dependencies.\n\n##
  0.10.2\n* Removed debug statement from routes\n\n## 0.10.1\n* `Parsable` instances
  for `Word`, `Word8`, `Word16`, `Word32`, `Word64`\n   [adamflott]\n* `Parsable`
  instances for `Int8`, `Int16`, `Int32`, `Int64`, and `Natural`\n* Removed redundant
  `Monad` constraint on `middleware`\n\n## 0.10.0\n\n* The monad parameters to `ScottyT`
  have been decoupled, causing the type\n  of the `ScottyT` constructor to change.
  As a result, `ScottyT` is no\n  longer a `MonadTrans` instance, and the type signatures
  of`scottyT`,\n  `scottyAppT`, and `scottyOptsT` have been simplified. [ehamberg]\n\n*
  `socketDescription` no longer uses the deprecated `PortNum` constructor.\n  Instead,
  it uses the `Show` instance for `PortNumber`. This changes the\n  bytes from host
  to network order, so the output of `socketDescription`\n  could change. [ehamberg]\n\n*
  `Alternative`, `MonadPlus` instances for `ActionT`\n\n* `scotty` now depends on
  `transformers-compat`. As a result, `ActionT` now\n  uses `ExceptT`, regardless
  of which version of `transformers` is used.\n  As a result, several functions in
  `Web.Scotty.Trans` no longer require a\n  `ScottyError` constraint, since `ExceptT`
  does not require an `Error`\n  constraint (unlike `ErrorT`).\n\n* Added support
  for OPTIONS routes via the `options` function [alvare]\n\n* Add `scottySocket` and
  `scottySocketT`, exposing Warp Unix socket support\n  [hakujin]\n\n* `Parsable`
  instance for lazy `ByteString` [tattsun]\n\n* Added streaming uploads via the `bodyReader`
  function, which retrieves chunks\n  of the request body. [edofic]\n  - `ActionEnv`
  had a `getBodyChunk` field added (in\n    `Web.Scotty.Internal.Types`)\n  - `RequestBodyState`
  and `BodyPartiallyStreamed` added to\n    `Web.Scotty.Internal.Types`\n\n* `jsonData`
  uses `aeson`'s `eitherDecode` instead of just `decode` [k-bx]\n\n## 0.9.1\n\n* text/html/json
  only set Content-Type header when not already set\n\n## 0.9.0\n\n* Add `charset=utf-8`
  to `Content-Type` for `text`, `html` and `json`\n\n* Assume HTTP status 500 for
  `defaultHandler`\n\n* Remove deprecated `source` method.\n\n* No longer depend on
  conduit.\n\n## 0.8.2\n\n* Bump `aeson` upper bound\n\n* Fix `mtl` related deprecation
  warnings\n\n## 0.8.1\n\n* Export internal types\n\n* Added `MonadBase`, `MonadTransControl`
  and `MonadBaseControl` instances for\n  `ActionT`\n\n## 0.8.0\n\n* Upgrade to wai/wai-extra/warp
  3.0\n\n* No longer depend on conduit-extra.\n\n* The `source` response method has
  been deprecated in favor\n  of a new `stream` response, matching changes in WAI
  3.0.\n\n* Removed the deprecated `reqHeader` function.\n\n## 0.7.3\n\n* Bump upper
  bound for case-insensitive, mtl and transformers.\n\n## 0.7.2\n\n* Bump lower bound
  on conduit, add conduit-extra to cabal build depends.\n\n## 0.7.1\n\n* Default warp
  settings now use `setFdCacheDuration 0` to work around a warp\n  issue where file
  changes are not getting picked up.\n\n## 0.7.0\n\n* Renamed `reqHeader` to `header`.
  Added `headers` function to get all headers.\n\n* Changed `MonadIO` instance for
  `ActionT` such that IO exceptions are lifted\n  into `ScottyError`s via `stringError`.\n\n*
  Make `Bool` parsing case-insensitive. Goal: support both Haskell's True/False\n
  \ and Javascript's true/false. Thanks to <NAME> for suggesting this.\n\n* Bump
  `aeson`/`text` upper bounds.\n\n* Bump `wai`/`wai-extra`/`warp` bounds, including
  new lower bound for `warp`, which fixes a security issue related to Slowloris protection.\n\n##
  0.6.2\n\n* Bump upper bound for `text`.\n\n## 0.6.1\n\n* Match changes in `wai-extra`.\n\n##
  0.6.0\n\n* The Scotty transformers (`ScottyT` and `ActionT`) are now parameterized\n
  \ over a custom exception type, allowing one to extend Scotty's `ErrorT`\n  layer
  with something richer than `Text` errors. See the `exceptions`\n  example for use.
  `ScottyM` and `ActionM` remain specialized to `Text`\n  exceptions for simplicity.\n\n*
  Both monads are now instances of `Functor` and `Applicative`.\n\n* There is a new
  `cookies` example.\n\n* Internals brought up-to-date with WAI 2.0 and related packages.\n\n##
  0.5.0\n\n* The Scotty monads (`ScottyM` and `ActionM`) are now monad transformers,\n
  \ allowing Scotty applications to be embedded in arbitrary `MonadIO`s.\n  The old
  API continues to be exported from `Web.Scotty` where:\n\n        type ScottyM =
  ScottyT IO\n        type ActionM = ActionT IO\n\n  The new transformers are found
  in `Web.Scotty.Trans`. See the\n  `globalstate` example for use. Special thanks
  to <NAME> (co-dan)\n  for much of the legwork here.\n\n* Added support for HTTP
  PATCH method.\n\n* Removed lambda action syntax. This will return when we have a
  better\n  story for typesafe routes.\n\n* `reqHeader :: Text -> ActionM Text` ==>\n
  \ `reqHeader :: Text -> ActionM (Maybe Text)`\n\n* New `raw` method to set body
  to a raw `ByteString`\n\n* Parse error thrown by `jsonData` now includes the body
  it couldn't parse.\n\n* `header` split into `setHeader` and `addHeader`. The former
  replaces\n  a response header (original behavior). The latter adds a header (useful\n
  \ for multiple `Set-Cookie`s, for instance).\n"
basic-deps:
  warp: ! '>=3.0.13 && <3.3'
  exceptions: ! '>=0.7 && <0.11'
  bytestring: ! '>=0.10.0.2 && <0.11'
  wai: ! '>=3.0.0 && <3.3'
  case-insensitive: ! '>=1.0.0.1 && <1.3'
  fail: -any
  base: ! '>=4.6 && <5'
  data-default-class: ! '>=0.0.1 && <0.2'
  text: ! '>=0.11.3.1 && <1.3'
  monad-control: ! '>=1.0.0.3 && <1.1'
  network: ! '>=2.6.0.2 && <2.8'
  blaze-builder: ! '>=0.3.3.0 && <0.5'
  regex-compat: ! '>=0.95.1 && <0.96'
  mtl: ! '>=2.1.2 && <2.3'
  transformers-base: ! '>=0.4.1 && <0.5'
  nats: ! '>=0.1 && <2'
  wai-extra: ! '>=3.0.0 && <3.1'
  transformers: ! '>=0.3.0.0 && <0.6'
  http-types: ! '>=0.8.2 && <0.13'
  aeson: ! '>=0.6.2.1 && <1.5'
  transformers-compat: ! '>=0.4 && <0.7'
all-versions:
- '0.6.0'
- '0.6.1'
- '0.6.2'
- '0.7.0'
- '0.7.1'
- '0.7.2'
- '0.7.3'
- '0.8.0'
- '0.8.1'
- '0.8.2'
- '0.9.0'
- '0.9.1'
- '0.10.0'
- '0.10.1'
- '0.10.2'
- '0.11.0'
- '0.11.1'
author: <NAME> <<EMAIL>>
latest: '0.11.1'
description-type: markdown
description: ! "# Scotty [![Build Status](https://travis-ci.org/scotty-web/scotty.svg)](https://travis-ci.org/scotty-web/scotty)[![Coverage
  Status](https://coveralls.io/repos/scotty-web/scotty/badge.svg?branch=master)](https://coveralls.io/r/scotty-web/scotty?branch=master)\n\nA
  Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp.\n\n```haskell\n{-#
  LANGUAGE OverloadedStrings #-}\nimport Web.Scotty\n\nimport Data.Monoid (mconcat)\n\nmain
  = scotty 3000 $\n    get \"/:word\" $ do\n        beam <- param \"word\"\n        html
  $ mconcat [\"<h1>Scotty, \", beam, \" me up!</h1>\"]\n```\n\nScotty is the cheap
  and cheerful way to write RESTful, declarative web applications.\n\n* A page is
  as simple as defining the verb, url pattern, and Text content.\n* It is template-language
  agnostic. Anything that returns a Text value will do.\n* Conforms to WAI Application
  interface.\n* Uses very fast Warp webserver by default.\n\nSee examples/basic.hs
  to see Scotty in action. (basic.hs needs the wai-extra package)\n\n```bash\n> runghc
  examples/basic.hs\nSetting phasers to stun... (port 3000) (ctrl-c to quit)\n(visit
  localhost:3000/somepath)\n```\n\nAs for the name: Sinatra + Warp = Scotty.\n\n###
  More Information\n\nTutorials and related projects can be found in the Scotty wiki:\n\nhttps://github.com/scotty-web/scotty/wiki\n\n###
  Development & Support\n\nOpen an issue on GitHub or join `#scotty` on Freenode.\n\nCopyright
  (c) 2012-2017 <NAME>\n"
license-name: BSD3

{'fraction_non_alphanumeric': 0.159563586771224, 'fraction_numerical': 0.038811228548698715, 'mean_word_length': 3.4952745849297573, 'pattern_counts': {'":': 0, '<': 67, '<?xml version=': 0, '>': 75, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 16, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '320603', 'n_tokens_mistral': 7123, 'n_tokens_neox': 6782, 'n_words': 1968}