We've been accidentally using invalid formats like "timestamp" in some places, so this helps ensure we use formats that will actually have a validation effect.
It's supposed to be threadsafe, among other things.
Our `make_schema_strict` logic didn't properly handle these types. We have to set `additionalProperties = false` on the individual type definitions within the union rather than on the union type itself.
We had 2 rack-lint errors: - a header value must be a String, but the value of 'Content-Length' is a Fixnum - Content-Type header found in 204 response, not allowed
It was wrong to assume it had one to begin with; according to the rack spec, the response body has #each but not necessarily any other enumerable or array methods.
http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax I used macros similar to these to do the conversion: http://nathanmlong.com/2012/11/convert-to-the-new-rspec-syntax-with-vim-macros/
Previously, it raised a `NoMethodError`, but we only want the error when the method syntax is used.
`sort` params were broken due to the fact that we are using a Hashie::Mash as our DynamicStruct. Hash has a sort method, so it meant that a `sort` entry in the hash was not used for `mash.sort`. I don't remember the full history of why I switched to a Hashie::Mash in 8f6d2f4 but this is one downside: more collisions with method names. We may want to reconsider that decision at some point, but this solves the problem for now.
It was including all of the endpoint definitions in the output before.
Refactor request param parsing into configurable ParamParser objects.
This gives extra flexibility.
Integer(nil) behaves differently on 1.8.7 vs 1.9, apparently.