Diff of the two buildlogs: -- --- b1/build.log 2024-04-24 01:17:14.801574917 +0000 +++ b2/build.log 2024-04-24 01:18:36.790071425 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Apr 23 13:11:19 -12 2024 -I: pbuilder-time-stamp: 1713921079 +I: Current time: Tue May 27 21:40:18 +14 2025 +I: pbuilder-time-stamp: 1748331618 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -31,52 +31,84 @@ dpkg-source: info: applying update-test-expectations.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/4035971/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 27 07:40 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='db67231dadc34584b83f571600b48fd3' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='4035971' - PS1='# ' - PS2='> ' + INVOCATION_ID=e56432461f414433a7b9ae38cf46c34a + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=4076524 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.m2iXeXlp/pbuilderrc_oSwi --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.m2iXeXlp/b1 --logfile b1/build.log ruby-grape_2.0.0-3.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.m2iXeXlp/pbuilderrc_hzkZ --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.m2iXeXlp/b2 --logfile b2/build.log ruby-grape_2.0.0-3.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos1-amd64 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.6.13+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 22 13:10 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/4035971/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 24 13:34 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -324,7 +356,7 @@ Get: 176 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 177 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 178 http://deb.debian.org/debian trixie/main amd64 ruby-test-prof all 0.12.2+dfsg-1 [42.8 kB] -Fetched 50.0 MB in 6s (8147 kB/s) +Fetched 50.0 MB in 7s (7442 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19890 files and directories currently installed.) @@ -906,8 +938,8 @@ Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Apr 24 01:13:36 UTC 2024. -Universal Time is now: Wed Apr 24 01:13:36 UTC 2024. +Local time is now: Tue May 27 07:41:11 UTC 2025. +Universal Time is now: Tue May 27 07:41:11 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -1066,7 +1098,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-grape-2.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-grape_2.0.0-3_source.changes +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-grape-2.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-grape_2.0.0-3_source.changes dpkg-buildpackage: info: source package ruby-grape dpkg-buildpackage: info: source version 2.0.0-3 dpkg-buildpackage: info: source distribution unstable @@ -1098,7 +1134,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-grape/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-grape-2.0.0/debian/ruby-grape -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20240423-4090080-aez75f/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250527-4090952-i7mkqd/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on activesupport (>= 5) is not recommended if activesupport is semantically versioned, use: @@ -1118,7 +1154,7 @@ Name: grape Version: 2.0.0 File: grape-2.0.0.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-grape/usr/share/rubygems-integration/all /tmp/d20240423-4090080-aez75f/grape-2.0.0.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-grape/usr/share/rubygems-integration/all /tmp/d20250527-4090952-i7mkqd/grape-2.0.0.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/reproducible-path/ruby-grape-2.0.0/debian/ruby-grape/usr/share/rubygems-integration/all/gems/grape-2.0.0/lib/grape.rb /build/reproducible-path/ruby-grape-2.0.0/debian/ruby-grape/usr/share/rubygems-integration/all/gems/grape-2.0.0/lib/grape/api.rb @@ -1301,1202 +1337,640 @@ /usr/share/rubygems-integration/all/gems/dry-equalizer-0.3.0/lib/dry/equalizer.rb:5: warning: previous definition of Equalizer was here /build/reproducible-path/ruby-grape-2.0.0/spec/grape/validations/validators/except_values_spec.rb:10: warning: method redefined; discarding old excepts -Randomized with seed 16708 +Randomized with seed 35329 -Grape::API::Helpers - non overriding subclass - given expected params - inherits helpers from a superclass - with lack of expected params - returns missing error - example subclass - with lack of expected params - returns missing error - given expected params - inherits helpers from a superclass - overriding subclass - given expected params - overrides helpers from a superclass - with lack of expected params - returns missing error +Grape::Exceptions::UnsupportedGroupType + Grape::Exceptions::UnsupportedGroupTypeError + behaves like deprecated class + raises an ActiveSupport::DeprecationException + #message + is expected to include "group type must be Array, Hash, JSON or Array[JSON]" -Grape::Validations - params - required - works when required field is present but nil - doesn't throw a missing param when param is present - adds to declared parameters - errors when param not present - requires :all using Grape::Entity documentation - errors when required_field is not present - works when required_field is present - adds entity documentation to declared params - in a group - errors when no parameter from the set is present - does not falsely think the param is there if it is provided outside the block - works when only one from the set is present - errors when more than one from the set is present - with block param - requires defaults to Array type - group defaults to Array type - optional defaults to Array type - group params with nested params which has a type - errors when group param is invalid - multiple validation errors - throws the validation errors - hash with a required param with validation - errors when param is not a Hash - works when all params match - group - adds to declared parameters - doesn't throw a missing param when param is present - errors when param not present - at least one of - nested params - does not error when one is present - does not error when two are present - errors when none are present +Grape::Endpoint + sets itself in the env upon call + resets all instance variables (except block) between calls + allows explicit return calls + does not persist params between calls + #params + does not accept text/plain in JSON format if application/json is specified as content type + parses from path segments + responds with a 415 for an unsupported content-type + deeply converts nested params + is available to the caller + from body parameters + converts XML bodies to params + converts XML bodies to params + does not include parameters not defined by the body + does not convert empty JSON bodies to params + returns a 400 if given an invalid multipart body + converts JSON bodies to params + precedence + route string params have higher precedence than URL params + route string params have higher precedence than body params + content type with params + does not response with 406 for same type without params + responses with given content type in headers + when the limit on multipart files is exceeded + returns a 413 if given too many multipart files + with special requirements + parses many params with provided regexps + parses email param with provided requirements for params + namespace requirements + overrides outer namespace's requirements + parse email param with provided requirements for params + sets a value to params params - does not error when one is present - does not error when two are present - errors when none are present - with a custom validation message - errors when none are present - does not error when one is present - does not error when two are present - requires :none using Grape::Entity documentation - adds entity documentation to declared params - works when required_field is present - errors when required_field is not present - exactly one of + #method_missing + when performing an undefined method of an instance inside the API + raises NoMethodError but stripping the internals of the Object class + when referencing an undefined local variable + raises NoMethodError but stripping the internals of the Grape::Endpoint class and including the API route + request + includes prefix + includes version v1 + is set to the url requested + includes version v1 + filters + allows adding to response with present + before filters + runs the before filter if set + when terminating the response with error! + allows prior and parent filters of same type to run + breaks normal call chain + after filters + does not override the response body with its return + overrides the response body if it sets it + #params + default class + is a ActiveSupport::HashWithIndifferentAccess + sets a value to params params - succeeds when one is present - errors when none are present - errors when two or more are present - with a custom validation message - errors when none are present - succeeds when one is present - errors when two or more are present - nested params - errors when none are present - succeeds when one is present - errors when two or more are present - custom validator for a Hash - which is required - errors if the validation fails - doesn't throw an error if the validation passes - which is optional - doesn't throw an error if the validation passes - errors if the validation fails - with block and keyword argument - works - nested optional Array blocks - does no internal validations if the outer group is blank - adds to declared parameters - handles validation within arrays - all_or_none_of - handles deep nesting - at_least_one_of - exactly_one_of - does internal validations if the outer group is present - Issue occurs whenever: -* param structure with at least three levels -* 1st level item is a required Array that has >1 entry with an optional item present and >1 entry with an optional item missing -* 2nd level is an optional Array or Hash -* 3rd level is a required item (can be any type) -* additional levels do not effect the issue from occuring - correctly indexes invalida data - example based off actual real world use case - simplest example using Array -> Array -> Hash -> String - simplest example using Array -> Hash -> String - multiple levels of optional and requires settings - with valid data - with invalid data - optional - validates when params is present - adds to declared parameters - doesn't validate when param not present - optional using Grape::Entity documentation - works when field_b is present - adds entity documentation to declared params - works when field_a and field_b are not present - works when field_a is present - validation within arrays - errors when a parameter is not present in array within array - handle errors for all array elements - errors when a parameter is not present - errors when param is not an Array - safely handles empty arrays and blank parameters - can handle new scopes within child elements - validation within arrays with JSON - safely handles empty arrays and blank parameters - can handle new scopes within child elements - errors when a parameter is not present - mutually exclusive - in a group - errors when more than one from the set is present - works when only one from the set is present - optional params - errors when two or more are present - with custom validation message - errors when two or more are present - more than one set of mutually exclusive params - errors for all sets - with a custom validation message - errors for all sets - mutually exclusive params inside Hash group - invalidates if request param is invalid type - named - can be included in usual params - by #use with multiple params - by #use - with block - overrides default value for order_by - overrides default value for order - fails with invalid value - returns defaults - can be defined - in helper module which kind of Grape::DSL::Helpers::BaseHelper - in helpers - custom validation - when using optional with a custom validator - validates with custom validator when param present and incorrect type - skips validation when parameter isn't present - validates when param is present - when using requires with a custom validator - validates when param is present - validates when param is not present - nested namespaces - namespaces nested in peers should also not have the validator - when nested, specifying a route should clear out the validations for deeper nested params - peer namespaces does not have the validator - the nested namespace inherits the custom validator - the parent namespace uses the validator - when using options on param - validates param with custom validator with options - required with an Array block - doesn't throw a missing param when param is present but empty - doesn't throw a missing param when param is present - adds to declared parameters - errors when param not present - errors when param is not an Array - requires :all or :none but except a non-existent field using Grape::Entity documentation - requires :all - adds only the entity documentation to declared params, nothing more - requires :none - adds only the entity documentation to declared params, nothing more - all or none - optional params - with a custom validation message - works when all params are present - errors when any one is present - works when none are present - required with a Hash block - errors when param not present - adds to declared parameters - doesn't throw a missing param when param is present - errors when nested param not present - errors when param is not a Hash - with block and empty args - works - optional with an Array block - errors when group is present, but required param is not - adds to declared parameters - doesn't throw a missing param when the group isn't present - doesn't throw a missing param when both group and param are given - errors when param is present but isn't an Array - required with an Array and a Hash block - does not output index [0] for Hash types - requires with nested params - validates correctly in deep nested params - require_validator - when not found - raises an error - when found - is expected to equal Grape::Validations::Validators::PresenceValidator - -Grape::API::Helpers - default - default - public - private - patch - public - default - private - -Grape::Middleware::Error - - is possible to return hash errors in jsonapi format - with rescue_options :backtrace and :exception set to true - is possible to return the backtrace and the original exception in json format - with defaults - does not trap errors by default - - is possible to specify a custom formatter - - is possible to return errors in xml format - - responds to custom Grape exceptions appropriately - - is possible to return the backtrace and the original exception in txt format - - is possible to return hash errors in json format - - is possible to return hash errors in xml format - - is possible to return errors in json format - - is possible to return errors in jsonapi format - - does not trap regular error! codes - with rescue_all - Non-StandardError exception - does not trap errors other than StandardError - StandardError exception - defaults to a 500 status - sets the message appropriately - - is possible to return the backtrace and the original exception in xml format - - is possible to specify a different default status code - Non-StandardError exception with a provided rescue handler - custom error response - rescues the exception using the provided handler - default error response - rescues the exception using the default handler - -Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder - in an endpoint - #params - is of type Hash - in an api - #params - is a Hash - parses sub hash params - responds to string keys - params are indifferent to symbol or string keys - -Grape::Validations::Validators::DefaultValidator - allows optional arrays with optional params - allows optional arrays to be omitted - set default values for optional params - lets you leave required values nested inside an optional blank - sets lambda based defaults at the time of call - set default value for optional param - set default values for missing params in the request - set default values for optional params and allow to use required fields in the same time - sets default values for grouped arrays - does not allows faulty optional arrays - array with default values and given conditions - applies the default values only if the conditions are met - optional group with defaults - optional hash without default value includes optional param with default value - returns nil for optional hash if param is not provided - does not fail even if invalid params is passed to default validator - optional hash with default value includes optional param with default value - sets own default value for inner param if parent param is provided - sets default value for optional hash if param is not provided - sets default value from parent defaults for inner param if parent param is not provided - optional array without default value includes optional param with default value - returns nil for optional array if param is not provided - optional array with default value includes optional param with default value - sets default value for optional array if param is not provided - optional with nil as value - structures types - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - primitive types - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - variant-member-type collections - respects the default value - respects the default value - respects the default value - respects the default value - special types - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value - respects the default value + .before_each + is settable via block + is settable via reference + is able to override a helper + is able to stack helper + #cookies + deletes cookies with path + is callable from within a block + sets browser cookies and does not set response cookies + deletes cookie + sets and update browser cookies + .generate_api_method + raises ArgumentError if a block is not given + returns a Proc + raises NameError if the method name is already in use + #error! + accepts an object and render it in format + merges additional headers with headers set before call + accepts a message + accepts a code + does not merges additional headers with headers set after call + accepts a frozen object + sets the status code for the endpoint + can specifiy headers + #headers + includes request headers + includes headers passed as symbols + includes additional request headers + #header + is callable from within a block + #status + is set as default to 201 for post + is callable from within a block + is set as default to 200 for get + #redirect + support permanent redirect + allows for an optional redirect body override + has status code 303 if it is not get request and it is http 1.1 + redirects to a url with status 302 + #initialize + takes a settings stack, options, and a block + instrumentation + notifies AS::N + binary +DEPRECATION WARNING: Use stream to use a Stream object. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/endpoint_spec.rb:1001) + suports stream objects in response + validation errors + returns the errors, and passes headers + anchoring + all other + allows for the anchoring option with a OPTIONS method + anchors paths by default for the PUT method + allows for the anchoring option with a GET method + allows for the anchoring option with a POST method + allows for the anchoring option with a HEAD method + anchors paths by default for the HEAD method + allows for the anchoring option with a PUT method + allows for the anchoring option with a PATCH method + anchors paths by default for the OPTIONS method + anchors paths by default for the POST method + responds to /example/and/some/more for the non-anchored HEAD method + responds to /example/and/some/more for the non-anchored OPTIONS method + anchors paths by default for the GET method + responds to /example/and/some/more for the non-anchored GET method + responds to /example/and/some/more for the non-anchored POST method + responds to /example/and/some/more for the non-anchored PUT method + anchors paths by default for the PATCH method + responds to /example/and/some/more for the non-anchored PATCH method + delete 204, with empty array has return value (no explicit body) + responds to /example delete method + delete 200, with a return value (no explicit body) + responds to /example delete method + delete 204 + responds to /example/and/some/more for the non-anchored delete method + allows for the anchoring option with a delete method + anchors paths by default for the delete method + delete 204, with nil has return value (no explicit body) + responds to /example delete method + delete 200, with response body + responds to /example/and/some/more for the non-anchored delete method + version headers + result in a 406 response if they cannot be parsed by rack-accept + result in a 406 response if they are invalid -Grape::DSL::Validations - .reset_validations! - resets validations - resets params - resets declared params - does not reset documentation description - .params - evaluates block - returns a ParamsScope +StrictHashConfiguration + set nested configs Grape::Middleware::Base + calls through to the app has the app as an accessor is able to access the response - calls through to the app - callbacks - calls #before - calls #after options persists options passed at initialization defaults overrides default options when provided persists the default options - #response - when Rack::Response - status - header - body - returns the memoized Rack::Response instance - when Array - body - status - returns the memoized Rack::Response instance - header - #context - allows access to response context - callbacks on error + callbacks + calls #before calls #after - after callback - overwrites application response header is able to set a header + after callback + overwrites application response header overwrite overwrites header by after headers + callbacks on error + calls #after after callback with errors does not overwrite the application response with patched warnings does show a warning + #context + allows access to response context + #response + when Rack::Response + returns the memoized Rack::Response instance + body + status + header + when Array + returns the memoized Rack::Response instance + status + body + header -Grape::Validations::Validators::AllowBlankValidator - valid input - allows missing optional strings - accepts false when boolean allow_blank - accepts empty when symbol allow_blank - accepts empty when date allow_blank - accepts empty input when allow_blank is false - accepts empty when boolean allow_blank - accepts valid input - accepts value when time allow_blank - accepts empty when datetime allow_blank - accepts empty input - allow_blank when Numeric - accepts empty when integer allow_blank - accepts empty when integer allow_blank - accepts empty when float allow_blank - in a required group - as a required param - refuses a blank value in a required existing group - refuses a string value in a required hash group - as an optional param - refuses a string value in an optional hash group - accepts a nested missing value - refuses a blank existing value in an existing scope - in an optional group - as an optional param - refuses a blank existing value in an existing scope - accepts a nested missing optional value - accepts a missing group, even with a disallwed blank param - as a required param - accepts a missing group, even with a disallwed blank param - accepts a nested missing date value - refuses a blank value in an existing group - invalid input - refuses empty string - refuses missing - refuses only whitespaces - refuses nil - custom validation message - with invalid input - refuses empty string for an optional param - refuses nil - refuses empty string - refuses only whitespaces - in a required group - as an optional param - refuses a blank existing value in an existing scope - refuses a string value in an optional hash group - accepts a nested missing value - as a required param - refuses a string value in a required hash group - refuses a blank value in a required existing group - in an optional group - as an optional param - accepts a missing group, even with a disallwed blank param - refuses a blank existing value in an existing scope - accepts a nested missing optional value - as a required param - accepts a missing group, even with a disallwed blank param - refuses a blank value in an existing group - accepts a nested missing date value - with valid input - accepts valid input - accepts false when boolean allow_blank - accepts empty input when allow_blank is false - accepts empty when boolean allow_blank - accepts empty when symbol allow_blank - accepts empty when datetime allow_blank - accepts empty when date allow_blank - accepts empty input - allow_blank when Numeric - accepts empty when integer allow_blank - accepts empty when integer allow_blank - accepts empty when float allow_blank +Grape::DSL::Helpers + .helpers + uses many provided modules + adds a module with the given block + uses provided modules + in child classes + is available + with an external file + sets Boolean as a Grape::API::Boolean + +Grape::Validations::SingleAttributeIterator + #each + when params is an array + yields every single attribute from the list for each of the array elements + empty values + marks params with empty values + when missing optional value + does not yield skipped values + when params is a hash + yields params and every single attribute from the list + +Grape::API::Helpers + can access helpers from a mounted resource + can access helpers from a mounted resource in a nested resource + +Grape::Exceptions::Validation + fails when params are missing + when message is a symbol + stores message_key + when message is a String + does not store the message_key + +Grape::Validations::Validators::CoerceValidator + coerce + error on malformed input + error on malformed input (Array) + converter + does not build a coercer multiple times + first-class JSON + accepts Array[JSON] shorthand + parses objects, hashes, and arrays + doesn't make sense using coerce_with + works when declared optional + coerces + BigDecimal + Integer + Nests integers + String + Grape::API::Boolean + a custom type + coerces the given value + returning the InvalidValue instance when invalid + uses a custom message added to the invalid value + File + collection + File + Rack::Multipart::UploadedFile + empty string + structures types + is coerced to nil for type Array + is coerced to nil for type Set + primitive types + is coerced to nil for type Time + is coerced to nil for type FalseClass + is coerced to nil for type DateTime + is coerced to nil for type Float + is coerced to nil for type Symbol + is coerced to nil for type Date + is coerced to nil for type Grape::API::Boolean + is coerced to nil for type TrueClass + is coerced to nil for type Numeric + is not coerced to nil for type String + is coerced to nil for type BigDecimal + is coerced to nil for type Integer + special types + is coerced to nil for type JSON + is coerced to nil for type [JSON] + variant-member-type collections + is coerced to nil for type [Integer, String, [Integer, String]] + is coerced to nil for type [Integer, String] + nil values + special types + respects the nil value + respects the nil value + respects the nil value + respects the nil value + variant-member-type collections + respects the nil value + respects the nil value + structures types + respects the nil value + respects the nil value + respects the nil value + primitive types + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + respects the nil value + Array + Array of Bools + Array of Integers + Array of a custom type + Array of type implementing parse + Set of type implementing parse + Set + Set of Integers + Set of Bools + json + BigDecimal + Grape::API::Boolean + i18n + gives an english fallback error when default locale message is blank + i18n error on malformed input + with a custom validation message + errors on malformed input + on custom coercion rules + still validates type + respects :coerce_with + performs no additional coercion + multiple types + may not be supplied together with a single type + fails when no coercion is possible + coerces to first possible type + when params is Hashie::Mash + for primitive collections + allows singular form declaration + allows collections with multiple types + allows multiple collection types + for primitive collections + allows singular form declaration + allows collections with multiple types + allows multiple collection types + custom coercion rules + still validates type + respects :coerce_with + performs no additional coercion + using coerce_with + accepts any callable + parses parameters even if type is valid + parses parameters with Array type + parses parameters with Array[String] type + parses parameters with Array[Array[String]] type and coerce_with + uses parse where available + must be supplied with :type or :coerce + parses parameters with Array[Integer] type + Array type and coerce_with should + coerce array as array + coerce nil value to array + not coerce missing field + Integer type and coerce_with potentially returning nil + returns invalid value if coercion returns a wrong type + coerces to Integer + accepts value that coerces to nil + Integer type and coerce_with should + coerce integer as integer + coerce nil value to integer + not coerce missing field Grape::Validations::Validators::AllOrNoneOfValidator #validate! - when no restricted params are present - does not return a validation error when all restricted params are present does not return a validation error mixed with other params does not return a validation error when mutually exclusive params are nested inside array returns a validation error with full names of the params + when mutually exclusive params are deeply nested + returns a validation error with full names of the params + when restricted params are nested inside required hash + returns a validation error with full names of the params when a subset of restricted params are present returns a validation error + when no restricted params are present + does not return a validation error when custom message is specified returns a validation error - when restricted params are nested inside required hash - returns a validation error with full names of the params - when mutually exclusive params are deeply nested - returns a validation error with full names of the params - -Grape::Endpoint - get - invalid format - no format - json format - -Grape::Endpoint - sets itself in the env upon call - does not persist params between calls - allows explicit return calls - resets all instance variables (except block) between calls - #status - is set as default to 200 for get - is callable from within a block - is set as default to 201 for post - #params - sets a value to params - params - default class - is a ActiveSupport::HashWithIndifferentAccess - #initialize - takes a settings stack, options, and a block - #error! - accepts a code - does not merges additional headers with headers set after call - accepts a message - accepts a frozen object - merges additional headers with headers set before call - accepts an object and render it in format - can specifiy headers - sets the status code for the endpoint - request - is set to the url requested - includes version v1 - includes prefix - includes version v1 - #headers - includes headers passed as symbols - includes additional request headers - includes request headers - anchoring - delete 204, with nil has return value (no explicit body) - responds to /example delete method - delete 200, with a return value (no explicit body) - responds to /example delete method - all other - anchors paths by default for the POST method - allows for the anchoring option with a HEAD method - allows for the anchoring option with a PATCH method - anchors paths by default for the HEAD method - allows for the anchoring option with a PUT method - allows for the anchoring option with a OPTIONS method - allows for the anchoring option with a GET method - responds to /example/and/some/more for the non-anchored GET method - anchors paths by default for the GET method - responds to /example/and/some/more for the non-anchored POST method - responds to /example/and/some/more for the non-anchored OPTIONS method - anchors paths by default for the PATCH method - responds to /example/and/some/more for the non-anchored PUT method - anchors paths by default for the PUT method - anchors paths by default for the OPTIONS method - allows for the anchoring option with a POST method - responds to /example/and/some/more for the non-anchored HEAD method - responds to /example/and/some/more for the non-anchored PATCH method - delete 200, with response body - responds to /example/and/some/more for the non-anchored delete method - delete 204 - anchors paths by default for the delete method - responds to /example/and/some/more for the non-anchored delete method - allows for the anchoring option with a delete method - delete 204, with empty array has return value (no explicit body) - responds to /example delete method - #cookies - sets browser cookies and does not set response cookies - is callable from within a block - sets and update browser cookies - deletes cookie - deletes cookies with path - #method_missing - when referencing an undefined local variable - raises NoMethodError but stripping the internals of the Grape::Endpoint class and including the API route - when performing an undefined method of an instance inside the API - raises NoMethodError but stripping the internals of the Object class - .before_each - is able to override a helper - is settable via reference - is able to stack helper - is settable via block - .generate_api_method - returns a Proc - raises NameError if the method name is already in use - raises ArgumentError if a block is not given - filters - allows adding to response with present - after filters - does not override the response body with its return - overrides the response body if it sets it - when terminating the response with error! - breaks normal call chain - allows prior and parent filters of same type to run - before filters - runs the before filter if set - #header - is callable from within a block - binary -DEPRECATION WARNING: Use stream to use a Stream object. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/endpoint_spec.rb:1001) - suports stream objects in response - version headers - result in a 406 response if they cannot be parsed by rack-accept - result in a 406 response if they are invalid - #params - is available to the caller - deeply converts nested params - does not accept text/plain in JSON format if application/json is specified as content type - parses from path segments - responds with a 415 for an unsupported content-type - when the limit on multipart files is exceeded - returns a 413 if given too many multipart files - precedence - route string params have higher precedence than body params - route string params have higher precedence than URL params - sets a value to params - params - content type with params - responses with given content type in headers - does not response with 406 for same type without params - from body parameters - converts JSON bodies to params - converts XML bodies to params - does not convert empty JSON bodies to params - returns a 400 if given an invalid multipart body - converts XML bodies to params - does not include parameters not defined by the body - with special requirements - parses many params with provided regexps - parses email param with provided requirements for params - namespace requirements - overrides outer namespace's requirements - parse email param with provided requirements for params - validation errors - returns the errors, and passes headers - instrumentation - notifies AS::N - #redirect - support permanent redirect - redirects to a url with status 302 - has status code 303 if it is not get request and it is http 1.1 - allows for an optional redirect body override Grape::Parser .builtin_parsers - includes json and xml parsers by default returns an instance of Hash + includes json and xml parsers by default .parsers - includes built-in parsers returns an instance of Hash + includes built-in parsers with added parser by using `register` keyword includes added parser with :parsers option includes passed :parsers values .parser_for - returns parser correctly calls .parsers + returns parser correctly when parser is an instance of Symbol returns object which can be called returns an instance of Method - when parser does not exist - returns nil when parser is available returns registered parser if available + when parser does not exist + returns nil -Grape::Endpoint - #stream - returns default - set - as a non-stream object - raises an error that the object must implement :each - as a stream object - returns value wrapped in StreamResponse - sets Transfer-Encoding header to nil - emits no deprecation warnings - sets Cache-Control header to no-cache - sets Content-Length header to nil - as a file path - emits no deprecation warnings - sets Content-Length header to nil - sets Cache-Control header to no-cache - does not change Cache-Control header - sets Transfer-Encoding header to nil - returns file body wrapped in StreamResponse - #redirect - permanent - sets status to 301 - sets location header - default - sets status to 302 - sets location header - #return_no_content - sets the status code and body - #error! - throws :error - default_error_status - sets status to default_error_status - thrown - sets status - #status - defaults to 201 on POST - defaults to 200 on GET - defaults to 200 on GET - defaults to 200 on GET - defaults to 204 on DELETE - raises error if unknow symbol is passed - accepts unknown Integer status codes - returns status set - accepts symbol for status - raises error if status is not a integer or symbol - defaults to 200 on DELETE with a body present - #content_type - returns default - set - returns value - #version - returns env[api.version] - defaults to nil - #route - returns route_info - #sendfile - returns default - set - as file path - does not change the Transfer-Encoding header - does not change the Cache-Control header - sends no deprecation warnings - does not change the Content-Length header - returns value wrapped in StreamResponse - as object - raises an error that only a file path is supported - #present - dummy - presents dummy object - with - entity - instance - presents dummy object - non mergeable entity - instance - fails - multiple entities - instance - presents both dummy objects - #body - returns default - set - returns value - false - sets status to 204 - #cookies - returns an instance of Cookies - #declared - is not available by default - #file - set - as file path - emits a warning that this method is deprecated -DEPRECATION WARNING: Use sendfile or stream to send files. (called from block (5 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:219) - forwards the call to sendfile - as object (backward compatibility) -DEPRECATION WARNING: Use stream to use a Stream object. (called from block (5 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:235) - forwards the call to stream - emits a warning that this method is deprecated - get - emits a warning that this method is deprecated -DEPRECATION WARNING: Use sendfile or stream to send files. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:250) - fowards call to sendfile - -MultiJson - uses multi_json (PENDING: Temporarily skipped with xit) - -Grape::Validations::MultipleAttributesIterator - #each - when params is empty optional placeholder - does not yield it - when params is an array - yields each element of the array without the list of attrs - when params is a hash - yields the whole params hash without the list of attrs - -Grape::Exceptions::InvalidVersionerOption - #message - contains the problem in the message - -Grape::Middleware::Versioner - recognizes :param - recognizes :accept_version_header - recognizes :path - recognizes :header - -Grape::Middleware::Versioner::Param - sets the API version based on the default param (apiver) - cuts (only) the version out of the params - provides a nil version if no version is given - when no version is set - returns a 200 (matches the first version found) - when there are multiple versions without a custom param - responds correctly to a v1 request - responds correctly to a v2 request - when there are multiple versions with a custom param - responds correctly to a v1 request - responds correctly to a v2 request - with specified versions - allows versions that have been specified - throws an error if a non-allowed version is specified - with specified parameter name - sets the API version based on the custom parameter name - does not set the API version based on the default param - -Grape::Validations::Validators::ExactlyOneOfValidator - #validate! - when a subset of params are present - returns a validation error - when params are nested inside array - returns a validation error with full names of the params - when params are nested inside required hash - returns a validation error with full names of the params - when params are deeply nested - returns a validation error with full names of the params - when all params are present - returns a validation error - mixed with other params - returns a validation error - when none of the params are present - returns a validation error - when custom message is specified - returns a validation error - when exacly one param is present - does not return a validation error - when params are nested inside optional hash - when params are empty - does not return a validation error - when params are passed - returns a validation error with full names of the params - -MultiXml - uses multi_xml - -Grape::Validations::Validators::SameAsValidator - /custom-message - is not the same - is expected to eq "password_confirmation not match" - is the same - is expected to eq "" - / - is the same - is expected to eq "" - is not the same - is expected to eq "password_confirmation is not the same as password" +Grape::Extensions::Hashie::Mash::ParamBuilder + in an endpoint + #params + is of type Hashie::Mash + in an api + is indifferent to key or symbol access + #params + is Hashie::Mash + in a nested namespace api + is Hashie::Mash -Grape::Validations::Types - ::primitive? - recognizes BigDecimal as a primitive - recognizes Numeric as a primitive - recognizes DateTime as a primitive - recognizes Float as a primitive - recognizes Grape::API::Boolean as a primitive - identifies unknown types - recognizes Date as a primitive - recognizes Integer as a primitive - recognizes Symbol as a primitive - recognizes Time as a primitive - recognizes String as a primitive - ::structure? - recognizes Set as a structure - recognizes Array as a structure - recognizes Hash as a structure - special types - when File - is expected to eq Grape::Validations::Types::File - when Array[JSON] - is expected to eq Grape::Validations::Types::JsonArray - when Rack::Multipart::UploadedFile - is expected to eq Grape::Validations::Types::File - when JSON - is expected to eq Grape::Validations::Types::Json - ::special? - provides special handling for File - provides special handling for Rack::Multipart::UploadedFile - provides special handling for JSON - provides special handling for [JSON] - ::build_coercer - caches the result of the build_coercer method - has internal cache variables - ::custom? - returns false if the type does not respond to :parse - returns true if the type responds to :parse with one argument - returns false if the type's #parse method takes other than one argument +Grape::Middleware::Auth::Strategies + Basic Auth + authenticates if given valid creds + throws a 401 is wrong auth is given + throws a 401 if no auth is given -Grape::Exceptions::UnknownOptions - #message - contains the problem in the message +Grape::API::Helpers + non overriding subclass + given expected params + inherits helpers from a superclass + with lack of expected params + returns missing error + overriding subclass + given expected params + overrides helpers from a superclass + with lack of expected params + returns missing error + example subclass + given expected params + inherits helpers from a superclass + with lack of expected params + returns missing error Grape::Validations::Types::PrimitiveCoercer #call - Float - coerces an empty string to nil - Integer - coerces an empty string to nil - accepts non-nil value + the strict mode + Boolean + returns a value as it is when the given value is Boolean + returns an error when the given value is not Boolean + BigDecimal + returns an error when the given value is not BigDecimal + returns a value as it is when the given value is BigDecimal Numeric + coerces an empty string to nil accepts a non-nil value + Time coerces an empty string to nil BigDecimal coerces to BigDecimal coerces an empty string to nil - DateTime - coerces an empty string to nil Boolean - coerces 'false' to false coerces 'true' to true - coerces an empty string to nil - coerces 'false' to false coerces 'true' to true coerces '1' to true returns an error when the given value cannot be coerced - coerces '0' to false - Time coerces an empty string to nil - the strict mode - Boolean - returns a value as it is when the given value is Boolean - returns an error when the given value is not Boolean - BigDecimal - returns a value as it is when the given value is BigDecimal - returns an error when the given value is not BigDecimal + coerces '0' to false + coerces 'false' to false + coerces 'false' to false a type unknown in Dry-types raises error on init + Integer + accepts non-nil value + coerces an empty string to nil String does not coerce an empty string to nil coerces to String + Float + coerces an empty string to nil Symbol coerces an empty string to nil + DateTime + coerces an empty string to nil -Grape::Middleware::Auth::DSL - .http_digest - when realm is a hash - sets auth parameters - when realm is not hash - sets auth parameters - .auth - can be called multiple times - sets auth parameters - .http_basic - sets auth parameters - -StrictHashConfiguration - set nested configs - -Grape::DSL::RequestResponse - .content_type - sets a content type for a format - .default_format - sets the default format - returns the format without paramter - .content_types - returns all content types - .rescue_from - :all - abort if both :with option and block are passed - sets a rescue handler declared through :with option - sets given proc as rescue handler - sets rescue all to true - sets given block as rescue handler - abort if :with option value is not Symbol, String or Proc - :grape_exceptions - sets a rescue handler declared through :with option - sets given block as rescue handler - sets given proc as rescue handler - sets rescue all to true - list of exceptions is passed - sets a rescue handler declared through :with option for each key in hash - sets given proc as rescue handler for each key in hash - rescues only base handlers if rescue_subclasses: false option is passed - sets given block as rescue handler for each key in hash - sets hash of exceptions as rescue handlers - .formatter - sets the formatter for a content type - .represent - sets a presenter for a class - .parser - sets a parser for a content type - .error_formatter - sets a error_formatter - understands syntactic sugar - .default_error_status - sets a default error status - .format - sets a new format - .default_error_formatter - sets a new error formatter - -Grape::Validations::Validators::MutualExclusionValidator - #validate! - when a subset of mutually exclusive params are present - returns a validation error - when mutually exclusive params are nested inside optional hash - when params are empty - does not return a validation error - when params are passed - returns a validation error with full names of the params - when custom message is specified - returns a validation error - when all mutually exclusive params are present - returns a validation error - mixed with other params - returns a validation error - when no mutually exclusive params are present - does not return a validation error - when mutually exclusive params are deeply nested - returns a validation error with full names of the params - when mutually exclusive params are nested inside required hash - returns a validation error with full names of the params - when mutually exclusive params are nested inside array - returns a validation error with full names of the params +Grape::Http::Headers + is expected to eq "X-Cascade" + is expected to eq "Transfer-Encoding" + is expected to eq "Allow" + is expected to eq "Location" Grape::DSL::Desc .desc - sets a description can be set with a block can be set with options and a block - -Grape::Exceptions::UnknownValidator - #message - contains the problem in the message + sets a description Grape::API::Instance - top level setting - does not inherit settings from the superclass (Grape::API::Instance) - when an instance is mounted on the root - can call the instance endpoint - with multiple moutes - does not raise a FrozenError on first instance - does not raise a FrozenError on second instance - responds the correct body at the first instance - responds the correct body at the second instance - when an instance is the root - can call the instance endpoint + boolean constant + sets Boolean as a type + Params endpoint type + params type is a boolean -Grape::Path - #namespace? - is false when the namespace is nil - is true otherwise - is false when the namespace is the root path - is false when the namespace starts with whitespace - #path_with_suffix - combines the path and suffix - when using a specific format - might have a suffix with specified format - #root_prefix - is nil when no root prefix setting exists - is nil when the mount path is nil - splits the mount path - #uses_path_versioning? - is false when the version option is header - is false when the version setting is nil - is true when the version option is path - #path - uses the raw path after the namespace - uses the namespace after the mount path and root prefix - root_prefix - is not included when it is nil - is included after the mount path - mount_path - is included when it is not nil - is not included when it is nil - #mount_path - is nil when no mount path setting exists - splits the mount path - is nil when the mount path is nil - #initialize - remembers the path - remebers the settings - remembers the namespace - #path? - is false when the path starts with whitespace - is false when the path is nil - is true otherwise - is false when the path is the root path - #suffix - when using a specific format - accepts specified format - when path versioning is used - includes a '/' - when path versioning is not used - includes a '/' otherwise - does not include a '/' when the path has a path - does not include a '/' when the path has a namespace +Grape + .config + is expected to eq {:param_builder=>Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder} -Grape::API::Helpers - can access helpers from a mounted resource in a nested resource - can access helpers from a mounted resource +Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder + in an endpoint + #params + is of type Hash + in an api + #params + is a Hash + parses sub hash params + responds to string keys + params are indifferent to symbol or string keys -Grape::API - execute first request in reasonable time +MultiXml + uses multi_xml -Grape::Util::ReverseStackableValues +Grape::Util::InheritableSetting + #global + sets the global inherited values + handles different parents + overrides global values + sets a global value + #namespace_stackable + works with stackable values + #route + sets a value until the next route + works with route values + #inherit_from + notifies clones #to_hash - returns a Hash representation - #[] - returns parent value when no value is set - parent values are not changed - returns an array of values - combines parent and actual values (actual first) - #keys - returns merged keys with parent - returns all keys - #[]= - pushes further values - can handle array values - sets a value - #clone - copies all values - complex (i.e. not primitive) data types (ex. middleware, please see bug #930) - copies values; does not duplicate them - #delete - deletes a key - does not delete parent values + return all settings as a hash + #api_class + is specific to the class + #api_class + is specific to the class + #namespace + sets a value until the end of a namespace + uses new values when a new namespace starts + #namespace_inheritable + works with inheritable values + handles different parents + #point_in_time_copy + resets point_in_time_copies + decouples namespace inheritable values + decouples namespace values + adds itself to original as clone + decouples route values + decouples namespace stackable values + decouples namespace reverse stackable values + #namespace_reverse_stackable + works with reverse stackable values + +Grape::Middleware::Globals + calls through to the app + environment + sets the grape.request.headers environment + sets the grape.request environment + sets the grape.request.params environment Grape::Validations::Validators::ValuesValidator - raises IncompatibleOptionValues when type is incompatible with values array - allows numeric string for int value using lambda + raises IncompatibleOptionValues on an invalid default value allows a blank value when the allow_blank option is true - does not allow an invalid value for a parameter - does not allow invalid value using lambda - allows values to be a kind of the coerced type not just an instance of it - does not validate updated values without proc - validates against an empty array in a proc + allows a valid default value + validates against values in an endless range +Error 'comparison of String with 0 failed' raised while validating attribute 'number' + does not allow non-numeric string value for int value using lambda + does not allow an invalid value for a parameter using lambda Error 'undefined method `>' for nil:NilClass requires :number, type: Integer, values: ->(v) { v > 0 } ^' raised while validating attribute 'number' does not allow nil for int value using lambda - raises IncompatibleOptionValues when except contains a value that is not a kind of the type - validates against values in a proc + allows a valid value for a parameter + validates default value from proc against values in a proc + allows a valid default value + does not allow an invalid value for a parameter does not allow an invalid value for a parameter using an endless range - allows values to be a kind of the coerced type in an array - raises IncompatibleOptionValues when values contains a value that is not a kind of the type raises IncompatibleOptionValues on an invalid default value from proc - does not allow an invalid value for a parameter using lambda - allows a valid default value - allows a valid default value - allows a proc for values - validates default value from proc against values in a proc -Error 'comparison of String with 0 failed' raised while validating attribute 'number' - does not allow non-numeric string value for int value using lambda - allows a valid value for a parameter - raises IncompatibleOptionValues on an invalid default value + raises IncompatibleOptionValues when type is incompatible with values array + does not validate updated values without proc + allows numeric string for int value using lambda + raises IncompatibleOptionValues when except contains a value that is not a kind of the type validates default value from proc - rejects all values if values is an empty array - validates against values in an endless range + allows values to be a kind of the coerced type in an array DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) allows a default value with except + allows a proc for values + validates against values in a proc + allows values to be a kind of the coerced type not just an instance of it + rejects all values if values is an empty array + raises IncompatibleOptionValues when values contains a value that is not a kind of the type + does not allow invalid value using lambda allows value using lambda + validates against an empty array in a proc with a custom exclude validation message DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) does not allow an invalid value for a parameter - with a range of values - allows a single value inside of the range - rejects an array of values if any of them are outside the range - allows an array of values inside of the range - rejects a single value outside the range - nil value for a parameter - does not allow for root params scope - allows for a required param in child scope - accepts for an optional param with a list of values exclusive excepts with lambda DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - allows any other value outside excepts -DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) rejects values that matches except DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - allows any other value outside excepts when type is included - exclusive excepts + allows any other value outside excepts DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects an array of values if any of them matches except + allows any other value outside excepts when type is included + with mixed values and excepts DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects values that matches except + rejects except DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - allows any other value outside excepts when type is included + rejects outside except and outside value DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - allows any other value outside excepts + allows value, but not in except with a custom validation message - does not allow an invalid value for a parameter - validates against values in a proc allows a valid value for a parameter does not allow an invalid value for a parameter using lambda + does not allow an invalid value for a parameter + validates against values in a proc + with a lambda values + chooses default + only evaluates values dynamically with each request exclusive excepts with lambda and coercion DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects values that matches except -DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) allows any other value outside excepts +DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + rejects values that matches except + nil value for a parameter + allows for a required param in child scope + accepts for an optional param with a list of values + does not allow for root params scope custom validation using proc DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects a single invalid value + rejects an invalid value among valid ones +DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + uses supplied message DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) accepts multiple valid values DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) accepts a single valid value DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - uses supplied message -DEPRECATION WARNING: The values validator proc option is deprecated. The lambda expression can now be assigned directly to values. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects an invalid value among valid ones + rejects a single invalid value when arity is > 1 Error 'wrong number of arguments (given 1, expected 2)' raised while validating attribute 'input_one' Error 'wrong number of arguments (given 1, expected 2)' raised while validating attribute 'input_two' @@ -2504,221 +1978,30 @@ when proc has an arity of 1 accepts a valid value rejects an invalid value - with mixed values and excepts -DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects outside except and outside value -DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - allows value, but not in except -DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) - rejects except - with a lambda values - only evaluates values dynamically with each request - chooses default boolean values allows a value from the list rejects a value which is not in the list exclude with a standard custom validation message DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) does not allow an invalid value for a parameter + with a range of values + rejects a single value outside the range + allows an array of values inside of the range + rejects an array of values if any of them are outside the range + allows a single value inside of the range + exclusive excepts +DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + allows any other value outside excepts when type is included +DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + rejects values that matches except +DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + rejects an array of values if any of them matches except +DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) + allows any other value outside excepts with a custom exclude validation message DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) does not allow an invalid value for a parameter -Grape::Exceptions::InvalidResponse - #message - contains the problem in the message - -Grape::Extensions::Hashie::Mash::ParamBuilder - in an api - is indifferent to key or symbol access - in a nested namespace api - is Hashie::Mash - #params - is Hashie::Mash - in an endpoint - #params - is of type Hashie::Mash - -Grape::Util::InheritableValues - #delete - does not delete parent values - deletes a key - #[] - returns parent value when no value is set - overwrites parent value with the current one - returns a value - parent values are not changed - #[]= - sets a value - #clone - complex (i.e. not primitive) data types (ex. entity classes, please see bug #891) - copies values; does not duplicate them - #to_hash - returns a Hash representation - -A named API - can access the name of the API - -Grape::DSL::Middleware - .insert - adds a middleware with the right operation - .use - adds a middleware with the right operation - .insert_after - adds a middleware with the right operation - .middleware - returns the middleware stack - .insert_before - adds a middleware with the right operation - -Grape::API - with a global namespace function - works - -Grape::Validations::Validators::AtLeastOneOfValidator - #validate! - when restricted params are nested inside array - when none of them are present - returns a validation error with full names of the params - when at least one of them is present - does not return a validation error - when exactly one of the restricted params is selected - does not return a validation error - when restricted params are deeply nested - when at least one of them is present - does not return a validation error - when none of them are present - returns a validation error with full names of the params - when restricted params are nested inside hash - when at least one of them is present - does not return a validation error - when none of them are present - returns a validation error with full names of the params - when none of the restricted params is selected - returns a validation error - when custom message is specified - returns a validation error - when a subset of restricted params are present - does not return a validation error - when all restricted params are present - does not return a validation error - mixed with other params - does not return a validation error - -Grape::Validations::Validators::RegexpValidator - accepts valid input - accepts nil - nested regexp with array - refuses inapppopriate - custom validation message - accepts valid input - accepts nil - with invalid input - refuses inapppopriate - refuses empty - regexp with array - refuses empty items - refuses nil items - accepts nil instead of array - refuses inapppopriate items - accepts valid items - invalid input - refuses inapppopriate - refuses empty - regexp with array - refuses empty items - accepts valid items - refuses nil items - refuses inapppopriate items - accepts nil instead of array - -Grape::Endpoint - get - routes to a path with multiple params with dots - routes to namespace and path params with dots, with overridden requirements - routes to a namespace param with dots - routes to namespace and path params with dots, with merged requirements - -Grape::Middleware::Error - sets the status code based on the rack util status code symbol - defaults to a 500 status - sets the status code appropriately - sets the error message appropriately - has a default message - with http code - adds the status code if wanted - presents an error message - -Grape::API - an endpoint without documentation - does not document parameters for the endpoint - still declares params internally - an endpoint with documentation - allows documentation with a hash - documents parameters - -Grape::DSL::Routing - .namespace - creates a new namespace with given name and options - calls #joined_space_path on Namespace - .put - delegates to .route - .post - delegates to .route - .route - defines a new endpoint - does not duplicate identical endpoints - generates correct endpoint options - resets validations - marks end of the route - .do_not_route_options! - sets do not route options option - .resources - is alias to #namespace - .delete - delegates to .route - .group - is alias to #namespace - .segment - is alias to #namespace - .head - delegates to .route - .options - delegates to .route - .mount - mounts multiple routes at once - mounts on a nested path - .routes - returns value received from #prepare_routes - when #routes was already called once - does not call prepare_routes again - .do_not_route_head! - sets do not route head option - .scope - create a scope without affecting the URL - .prefix - sets a prefix for route - .route_param - nests requirements option under param name - does not modify options parameter - calls #namespace with given params - .versions - returns last defined version - .patch - delegates to .route - .get - delegates to .route - .version - sets a version for route - .resource - is alias to #namespace - -Grape::Http::Headers - is expected to eq "X-Cascade" - is expected to eq "Allow" - is expected to eq "Location" - is expected to eq "Transfer-Encoding" - Grape::Exceptions::MissingGroupType #message is expected to include "group type is required" @@ -2726,752 +2009,663 @@ behaves like deprecated class raises an ActiveSupport::DeprecationException -Grape::DSL::Logger - .logger - sets a logger - returns a logger - -Rack - correctly populates params from a Tempfile - when the app is mounted - finds the app on the namespace - -Grape::Validations::Validators::Base - #inherited - when validator's underscored name does not end with _validator - registers the custom validator with a short name - when validator's underscored name ends with _validator - registers the custom validator with short name not ending with validator - when validator is anonymous - does not register the validator - -Grape::Middleware::Globals - calls through to the app - environment - sets the grape.request.params environment - sets the grape.request.headers environment - sets the grape.request environment - -Grape::API::Instance - boolean constant - sets Boolean as a type - Params endpoint type - params type is a boolean - -Grape::Exceptions::MissingOption - #message - contains the problem in the message - -Grape::Presenters::Presenter - represent - represent object - present - multiple presenter - instance - presents both dummy presenter - instance - presents dummy hash - -Grape::Validations::Validators::CoerceValidator - coerce - error on malformed input - error on malformed input (Array) - using coerce_with - must be supplied with :type or :coerce - parses parameters with Array[Array[String]] type and coerce_with - parses parameters even if type is valid - parses parameters with Array[String] type - accepts any callable - uses parse where available - parses parameters with Array[Integer] type - parses parameters with Array type - Integer type and coerce_with should - coerce integer as integer - not coerce missing field - coerce nil value to integer - Integer type and coerce_with potentially returning nil - coerces to Integer - accepts value that coerces to nil - returns invalid value if coercion returns a wrong type - Array type and coerce_with should - not coerce missing field - coerce array as array - coerce nil value to array - with a custom validation message - errors on malformed input - on custom coercion rules - respects :coerce_with - performs no additional coercion - still validates type - i18n - gives an english fallback error when default locale message is blank - i18n error on malformed input - multiple types - may not be supplied together with a single type - coerces to first possible type - fails when no coercion is possible - custom coercion rules - respects :coerce_with - still validates type - performs no additional coercion - when params is Hashie::Mash - for primitive collections - allows collections with multiple types - allows multiple collection types - allows singular form declaration - for primitive collections - allows multiple collection types - allows singular form declaration - allows collections with multiple types - coerces - String - Nests integers - Grape::API::Boolean - Integer - BigDecimal - File - File - Rack::Multipart::UploadedFile - collection - a custom type - coerces the given value - returning the InvalidValue instance when invalid - uses a custom message added to the invalid value - json - Grape::API::Boolean - BigDecimal - empty string - special types - is coerced to nil for type JSON - is coerced to nil for type [JSON] - variant-member-type collections - is coerced to nil for type [Integer, String] - is coerced to nil for type [Integer, String, [Integer, String]] - structures types - is coerced to nil for type Array - is coerced to nil for type Set - primitive types - is coerced to nil for type Symbol - is coerced to nil for type Date - is coerced to nil for type Float - is coerced to nil for type BigDecimal - is coerced to nil for type Time - is coerced to nil for type Numeric - is coerced to nil for type Integer - is coerced to nil for type Grape::API::Boolean - is coerced to nil for type TrueClass - is coerced to nil for type FalseClass - is coerced to nil for type DateTime - is not coerced to nil for type String - Set - Set of Integers - Set of Bools - nil values - special types - respects the nil value - respects the nil value - respects the nil value - respects the nil value - variant-member-type collections - respects the nil value - respects the nil value - structures types - respects the nil value - respects the nil value - respects the nil value - primitive types - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - respects the nil value - Array - Array of Integers - Array of a custom type - Array of Bools - Set of type implementing parse - Array of type implementing parse - first-class JSON - doesn't make sense using coerce_with - accepts Array[JSON] shorthand - works when declared optional - parses objects, hashes, and arrays - converter - does not build a coercer multiple times - Grape::DSL::Parameters - #optional - adds an optional parameter + #group + is alias to #requires #use calls processes associated with named params raises error when non-existent named param is called + #all_or_none_of + adds an all or none of parameter validation + #mutually_exclusive + adds an mutally exclusive parameter validation + #includes + is alias to #use #use_scope is alias to #use + #with + creates a scope with group attributes + #at_least_one_of + adds an at least one of parameter validation + #requires + adds a required parameter #params inherits params from parent - when params argument is a hash - returns value for @element key when params argument is not a array or a hash returns empty hash + when params argument is a hash + returns value for @element key when params argument is an array of hashes returns values of each hash for @element key - #group - is alias to #requires - #mutually_exclusive - adds an mutally exclusive parameter validation + #optional + adds an optional parameter #exactly_one_of adds an exactly of one parameter validation - #at_least_one_of - adds an at least one of parameter validation - #includes - is alias to #use - #with - creates a scope with group attributes - #all_or_none_of - adds an all or none of parameter validation - #requires - adds a required parameter - -Grape::Exceptions::MissingMimeType - #message - contains the problem in the message - contains the resolution in the message - -Grape::DSL::Headers - when no headers are set - #header - returns nil - when headers are set - #header - delete - deletes a header key-value pair - set - returns value - get - returns all set headers - returns a specifc value -Grape::API - doesn't work for format different than specified - works for unspecified format - works for specified format +Grape::Endpoint + get + routes to a path with multiple params with dots + routes to namespace and path params with dots, with overridden requirements + routes to a namespace param with dots + routes to namespace and path params with dots, with merged requirements -Grape::Middleware::Formatter - serialization - looks at the bodies for possibly serializable data - jsonapi - calls #to_json if the content type is jsonapi - default format - calls #to_json since default format is json - xml - calls #to_xml if the content type is xml - send file - returns a file response - content-type - is set for json - is set for vendored with registered type - is set to closest generic for custom vendored/versioned without registered type - is set for custom - is set for xml - is set for txt - error handling -caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError - does not rescue other exceptions - rescues formatter-specific exceptions - detection - uses the file extension format if provided before headers - uses the xml extension if one is provided - uses the format parameter if one is provided - uses the default format if none is provided - uses the json extension if one is provided - uses the requested format if provided in headers - input - parses the chunked body from POST and copies values into rack.request.from_hash - parses the chunked body from PATCH and copies values into rack.request.from_hash - ignores application/x-www-form-urlencoded - ignores multipart/form-data - parses the body from an xml DELETE and copies values into rack.request.from_hash - parses the body from an xml PUT and copies values into rack.request.from_hash - ignores multipart/form-data - ignores multipart/related - parses the chunked body from DELETE and copies values into rack.request.from_hash - ignores multipart/related - ignores multipart/mixed - ignores application/x-www-form-urlencoded - ignores application/x-www-form-urlencoded - ignores multipart/mixed - parses the body from an xml PATCH and copies values into rack.request.from_hash - parses the body from an xml POST and copies values into rack.request.from_hash - rewinds IO - ignores application/x-www-form-urlencoded - ignores multipart/mixed - rewinds IO - ignores multipart/form-data - ignores multipart/form-data - ignores multipart/related - parses the chunked body from PUT and copies values into rack.request.from_hash - rewinds IO - ignores multipart/mixed - ignores multipart/related - rewinds IO - when body is nil - does not read and parse the body - application/json - parses the body from POST and copies values into rack.request.form_hash - when body is not nil or empty - when Content-Type is not supported - returns a 415 HTTP error status - when Content-Type is supported - parses the body from DELETE and copies values into rack.request.form_hash - when body is not nil or empty - when Content-Type is supported - parses the body from POST and copies values into rack.request.form_hash - when Content-Type is not supported - returns a 415 HTTP error status - application/json; charset=utf-8 - parses the body from DELETE and copies values into rack.request.form_hash - application/json - parses the body from PATCH and copies values into rack.request.form_hash - application/json - parses the body from PUT and copies values into rack.request.form_hash - when body is nil - does not read and parse the body - when body is nil - does not read and parse the body - when body is empty - does not read and parse the body - application/json; charset=utf-8 - parses the body from PATCH and copies values into rack.request.form_hash - when body is not nil or empty - when Content-Type is supported - parses the body from PATCH and copies values into rack.request.form_hash - when Content-Type is not supported - returns a 415 HTTP error status - when body is nil - does not read and parse the body - when body is not nil or empty - when Content-Type is supported - parses the body from PUT and copies values into rack.request.form_hash - when Content-Type is not supported - returns a 415 HTTP error status - application/json; charset=utf-8 - parses the body from POST and copies values into rack.request.form_hash - application/json - parses the body from DELETE and copies values into rack.request.form_hash - when body is empty - does not read and parse the body - when body is empty - does not read and parse the body - application/json; charset=utf-8 - parses the body from PUT and copies values into rack.request.form_hash - when body is empty - does not read and parse the body - inheritable formatters - returns response by invalid formatter - accept header detection - parses headers with vendor and api version - ignores invalid quality rankings - parses headers with other attributes - handles quality rankings mixed with nothing - ensures that a quality of 0 is less preferred than any other content type - uses quality rankings to determine formats - parses headers with symbols as hash keys - handles quality rankings that have a default 1.0 value - detects from the Accept header - with custom vendored content types - uses the custom type - custom parser raises exception and rescue options are enabled for backtrace and original_exception - adds the backtrace and original_exception to the error output - format - uses custom json formatter - uses custom formatter - default - uses default json formatter - no content responses - does not modify a 186 response - does not modify a 150 response - does not modify a 166 response - does not modify a 154 response - does not modify a 116 response - does not modify a 153 response - does not modify a 151 response - does not modify a 161 response - does not modify a 149 response - does not modify a 108 response - does not modify a 194 response - does not modify a 180 response - does not modify a 134 response - does not modify a 304 response - does not modify a 106 response - does not modify a 169 response - does not modify a 164 response - does not modify a 117 response - does not modify a 115 response - does not modify a 156 response - does not modify a 144 response - does not modify a 197 response - does not modify a 102 response - does not modify a 142 response - does not modify a 112 response - does not modify a 114 response - does not modify a 181 response - does not modify a 130 response - does not modify a 105 response - does not modify a 133 response - does not modify a 185 response - does not modify a 138 response - does not modify a 170 response - does not modify a 104 response - does not modify a 128 response - does not modify a 140 response - does not modify a 101 response - does not modify a 131 response - does not modify a 129 response - does not modify a 172 response - does not modify a 189 response - does not modify a 123 response - does not modify a 148 response - does not modify a 137 response - does not modify a 132 response - does not modify a 119 response - does not modify a 176 response - does not modify a 196 response - does not modify a 188 response - does not modify a 199 response - does not modify a 146 response - does not modify a 191 response - does not modify a 100 response - does not modify a 111 response - does not modify a 193 response - does not modify a 182 response - does not modify a 120 response - does not modify a 177 response - does not modify a 198 response - does not modify a 183 response - does not modify a 135 response - does not modify a 195 response - does not modify a 118 response - does not modify a 109 response - does not modify a 179 response - does not modify a 163 response - does not modify a 184 response - does not modify a 127 response - does not modify a 160 response - does not modify a 126 response - does not modify a 162 response - does not modify a 187 response - does not modify a 145 response - does not modify a 174 response - does not modify a 113 response - does not modify a 139 response - does not modify a 125 response - does not modify a 152 response - does not modify a 178 response - does not modify a 110 response - does not modify a 167 response - does not modify a 165 response - does not modify a 159 response - does not modify a 168 response - does not modify a 155 response - does not modify a 121 response - does not modify a 141 response - does not modify a 157 response - does not modify a 103 response - does not modify a 147 response - does not modify a 158 response - does not modify a 143 response - does not modify a 122 response - does not modify a 175 response - does not modify a 190 response - does not modify a 192 response - does not modify a 173 response - does not modify a 204 response - does not modify a 136 response - does not modify a 124 response - does not modify a 171 response - does not modify a 107 response +Grape::DSL::Logger + .logger + returns a logger + sets a logger -Grape::DSL::Helpers - .helpers - uses provided modules - uses many provided modules - adds a module with the given block - in child classes - is available - with an external file - sets Boolean as a Grape::API::Boolean +Grape::Validations::Validators::AllowBlankValidator + in an optional group + as a required param + accepts a missing group, even with a disallwed blank param + refuses a blank value in an existing group + accepts a nested missing date value + as an optional param + accepts a missing group, even with a disallwed blank param + accepts a nested missing optional value + refuses a blank existing value in an existing scope + in a required group + as a required param + refuses a blank value in a required existing group + refuses a string value in a required hash group + as an optional param + accepts a nested missing value + refuses a string value in an optional hash group + refuses a blank existing value in an existing scope + valid input + accepts empty when date allow_blank + accepts empty when symbol allow_blank + accepts false when boolean allow_blank + accepts empty when datetime allow_blank + accepts valid input + accepts empty input when allow_blank is false + accepts empty when boolean allow_blank + allows missing optional strings + accepts value when time allow_blank + accepts empty input + allow_blank when Numeric + accepts empty when integer allow_blank + accepts empty when integer allow_blank + accepts empty when float allow_blank + custom validation message + in a required group + as an optional param + accepts a nested missing value + refuses a string value in an optional hash group + refuses a blank existing value in an existing scope + as a required param + refuses a blank value in a required existing group + refuses a string value in a required hash group + in an optional group + as an optional param + refuses a blank existing value in an existing scope + accepts a nested missing optional value + accepts a missing group, even with a disallwed blank param + as a required param + accepts a nested missing date value + accepts a missing group, even with a disallwed blank param + refuses a blank value in an existing group + with invalid input + refuses empty string + refuses empty string for an optional param + refuses nil + refuses only whitespaces + with valid input + accepts empty input + accepts empty when symbol allow_blank + accepts empty when date allow_blank + accepts empty when datetime allow_blank + accepts false when boolean allow_blank + accepts valid input + accepts empty input when allow_blank is false + accepts empty when boolean allow_blank + allow_blank when Numeric + accepts empty when integer allow_blank + accepts empty when float allow_blank + accepts empty when integer allow_blank + invalid input + refuses only whitespaces + refuses empty string + refuses missing + refuses nil -Grape::Validations::Validators::ExceptValuesValidator - 9: req_except_type_coerce - 11 - 12: req_except_range - 13 - 0: req_except - valid-type - 1: req_except_hash - valid-type - 1: req_except_hash - invalid-type1 - 5: req_except_lambda - invalid-type4 - 6: req_except_lambda_custom_message - valid-type - 3: req_except_no_value - invalid-type1 - 7: opt_except_default - invalid-type3 - 7: opt_except_default - valid-type - 2: req_except_custom_message - valid-type - 6: req_except_lambda_custom_message - invalid-type1 - 12: req_except_range - 11 - 11: opt_except_array_type_coerce_default - [10] - 11: opt_except_array_type_coerce_default - [3] - 7: opt_except_default - - 5: req_except_lambda - valid-type - 0: req_except - invalid-type1 - 10: opt_except_type_coerce_default - 3 - 10: opt_except_type_coerce_default - 3 - 9: req_except_type_coerce - invalid-type1 - 1: req_except_hash - invalid-type3 - 11: opt_except_array_type_coerce_default - - 11: opt_except_array_type_coerce_default - 10 - 7: opt_except_default - invalid-type1 - 10: opt_except_type_coerce_default - invalid-type1 - 8: opt_except_lambda_default - invalid-type1 - raises IncompatibleOptionValues when a default array has excluded values - raises IncompatibleOptionValues on a default value in exclude - 10: opt_except_type_coerce_default - - raises IncompatibleOptionValues when type is incompatible with values array - 9: req_except_type_coerce - 11 - 5: req_except_lambda - invalid-type1 - 8: opt_except_lambda_default - valid-type - 4: req_except_empty - invalid-type1 - 6: req_except_lambda_custom_message - invalid-type4 - 9: req_except_type_coerce - 3 - 2: req_except_custom_message - invalid-type1 - 11: opt_except_array_type_coerce_default - ["3"] - 8: opt_except_lambda_default - - 10: opt_except_type_coerce_default - 10 - 9: req_except_type_coerce - 3 - 8: opt_except_lambda_default - invalid-type3 - 2: req_except_custom_message - invalid-type3 - 0: req_except - invalid-type3 - 11: opt_except_array_type_coerce_default - invalid-type1 +Grape::Endpoint + when route modifies param value + param default should not change -Grape::API::Helpers - defines parameters +Grape::API::Instance + with multiple moutes + does not raise a FrozenError on second instance + responds the correct body at the first instance + responds the correct body at the second instance + does not raise a FrozenError on first instance + when an instance is mounted on the root + can call the instance endpoint + top level setting + does not inherit settings from the superclass (Grape::API::Instance) + when an instance is the root + can call the instance endpoint -Grape::Middleware::Stack - #insert - inserts a middleware class at the integer index - #use - pushes a middleware class onto the stack - pushes a middleware class with block arguments onto the stack - pushes a middleware class with arguments onto the stack - #merge_with - applies a collection of operations and middlewares - middleware spec with proc declaration exists - properly forwards spec arguments - #insert_after - inserts a middleware after another middleware class - raises an error on an invalid index - inserts a middleware after an anonymous class given by its superclass - #build - returns a rack builder instance - when @others are present - applies the middleware specs stored in @others - #concat - calls +merge_with+ with the :use specs - adds non :use specs to @others - #insert_before - inserts a middleware before an anonymous class given by its superclass - inserts a middleware before another middleware class - raises an error on an invalid index +Grape::Middleware::Versioner::Path + sets the API version based on the first path + does not cut the version out of the path + provides a nil version if no path is given + with specified versions as [:v1, "v2"] + throws an error if a non-allowed version is specified + allows versions that have been specified + with mount path + recognizes potential version + with specified versions as [:v1, :v2] + allows versions that have been specified + throws an error if a non-allowed version is specified + with specified versions as ["v1", "v2"] + throws an error if a non-allowed version is specified + allows versions that have been specified + with a pattern + ignores the version if it fails to match + sets the version if it matches + with specified versions as ["v1", :v2] + throws an error if a non-allowed version is specified + allows versions that have been specified + with prefix, but requested version is not matched + recognizes potential version -Grape - .config - is expected to eq {:param_builder=>Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder} +Grape::Middleware::Auth::DSL + .auth + sets auth parameters + can be called multiple times + .http_basic + sets auth parameters + .http_digest + when realm is not hash + sets auth parameters + when realm is a hash + sets auth parameters -Grape::Endpoint - post - 405 +Grape::Path + #path + uses the namespace after the mount path and root prefix + uses the raw path after the namespace + mount_path + is included when it is not nil + is not included when it is nil + root_prefix + is included after the mount path + is not included when it is nil + #namespace? + is true otherwise + is false when the namespace is nil + is false when the namespace starts with whitespace + is false when the namespace is the root path + #path_with_suffix + combines the path and suffix + when using a specific format + might have a suffix with specified format + #suffix + when path versioning is not used + includes a '/' otherwise + does not include a '/' when the path has a path + does not include a '/' when the path has a namespace + when using a specific format + accepts specified format + when path versioning is used + includes a '/' + #path? + is false when the path is nil + is false when the path is the root path + is false when the path starts with whitespace + is true otherwise + #uses_path_versioning? + is false when the version setting is nil + is true when the version option is path + is false when the version option is header + #initialize + remembers the namespace + remebers the settings + remembers the path + #mount_path + is nil when no mount path setting exists + is nil when the mount path is nil + splits the mount path + #root_prefix + is nil when no root prefix setting exists + is nil when the mount path is nil + splits the mount path Grape::Exceptions::InvalidFormatter #message contains the problem in the message -Validator with instance variables - passes validation every time +Grape::Endpoint + get + responds without ext + put + responds -Grape::API - .recognize_path - returns nil if given path does not match with registered routes - fetches endpoint by given path +Rack + correctly populates params from a Tempfile + when the app is mounted + finds the app on the namespace -Grape::Endpoint - when route modifies param value - param default should not change +Grape::API::Helpers + defines parameters -Grape::Middleware::Versioner::AcceptVersionHeader - succeeds if :strict is not set - succeeds if :strict is set to false - when :strict is set - fails with 406 Not Acceptable if header is empty - fails with 406 Not Acceptable if header is not set - succeeds if proper header is set - when :strict and cascade: false - fails with 406 Not Acceptable if header is not set - succeeds if proper header is set - fails with 406 Not Acceptable if header is empty - api.version - is set if format provided - fails with 406 Not Acceptable if version is not supported - is set +Grape::API::Helpers + default + public + private + default + patch + private + public + default -Grape::Validations::Types::SetCoercer - #call - a set of sets of arrays - coerces elements in the nested set - a set of primitives - coerces elements to the set - a set of sets - coerces elements in the nested set +Grape::Middleware::Error + sets the status code based on the rack util status code symbol + sets the status code appropriately + has a default message + sets the error message appropriately + defaults to a 500 status + with http code + presents an error message + adds the status code if wanted -Grape::Middleware::Versioner::Header - succeeds if :strict is set to false and given an invalid header - succeeds if :strict is set to false - succeeds if :strict is not set - when there are multiple versions with complex vendor specified with rescue_from :all - with header versioned endpoints and a rescue_all block defined - responds correctly to a v2 request - responds correctly to a v1 request - api.vendor - is set if format provided - is set - fails with 406 Not Acceptable if vendor is invalid - when version is set - is set if format provided - is set - fails with 406 Not Acceptable if vendor is invalid - with missing vendor option - fails - api.format - is set - is nil if not provided - when version is set to v1 - is set - is nil if not provided - when version is set to v1 - is nil if not provided - is set - when :strict and cascade: false - fails with 406 Not Acceptable if header is not set - fails with 406 Not Acceptable if header is application/xml - succeeds if proper header is set - fails with 406 Not Acceptable if header is empty - fails with 406 Not Acceptable if header contains a single invalid accept - when :strict is set - fails with 406 Not Acceptable if header is empty - succeeds if proper header is set - fails with 406 Not Acceptable if header is not set - api.type and api.subtype - sets preferred type and subtype - sets type and subtype to first choice of content type if no preference given - sets preferred type - api.version - is set - fails with 406 Not Acceptable if version is invalid - is set if format provided - when multiple versions are specified - succeeds with v1 - fails with another version - succeeds with v2 +Grape::Exceptions::InvalidAcceptHeader + API with cascade=true, http_codes but without a rescue handler + that receives + an invalid vendor in the request + behaves like a cascaded request + does not find a matching route + an invalid version in the request + behaves like a cascaded request + does not find a matching route + that received a request with correct vendor and version + behaves like a valid request + does return the expected result + does return with status 200 + API with cascade=false and rescue_from :all handler + that receives + an invalid vendor in the request + behaves like a rescued request + does show rescue handler processing + does not include the X-Cascade=pass header + that received a request with correct vendor and version + behaves like a valid request + does return with status 200 + does return the expected result + API with cascade=true and rescue_from :all handler + that received a request with correct vendor and version + behaves like a valid request + does return the expected result + does return with status 200 + that receives + an invalid vendor in the request + behaves like a cascaded request + does not find a matching route + an invalid version in the request + behaves like a cascaded request + does not find a matching route + API with cascade=false and with rescue_from :all handler and http_codes + that received a request with correct vendor and version + behaves like a valid request + does return with status 200 + does return the expected result + that receives + an invalid vendor in the request + behaves like a rescued request + does not include the X-Cascade=pass header + does show rescue handler processing + API with cascade=true and with rescue_from :all handler and http_codes + that receives + an invalid vendor in the request + behaves like a cascaded request + does not find a matching route + an invalid version in the request + behaves like a cascaded request + does not find a matching route + that received a request with correct vendor and version + behaves like a valid request + does return the expected result + does return with status 200 + API with cascade=true and without a rescue handler + that received a request with correct vendor and version + behaves like a valid request + does return with status 200 + does return the expected result + that receives + an invalid vendor in the request + behaves like a cascaded request + does not find a matching route + an invalid version in the request + behaves like a cascaded request + does not find a matching route + API with cascade=false and without a rescue handler + that received a request with correct vendor and version + behaves like a valid request + does return the expected result + does return with status 200 + that receives + an invalid vendor in the request + behaves like a not-cascaded request + does not accept the request + does not include the X-Cascade=pass header + an invalid version in the request + behaves like a not-cascaded request + does not accept the request + does not include the X-Cascade=pass header + API with cascade=false, http_codes but without a rescue handler + that received a request with correct vendor and version + behaves like a valid request + does return with status 200 + does return the expected result + that receives + an invalid vendor in the request + behaves like a not-cascaded request + does not include the X-Cascade=pass header + does not accept the request + an invalid version in the request + behaves like a not-cascaded request + does not accept the request + does not include the X-Cascade=pass header -Grape::Validations::SingleAttributeIterator - #each - when params is an array - yields every single attribute from the list for each of the array elements - when missing optional value - does not yield skipped values - empty values - marks params with empty values - when params is a hash - yields params and every single attribute from the list +MultiJson + uses multi_json (PENDING: Temporarily skipped with xit) + +Grape::Exceptions::MissingOption + #message + contains the problem in the message + +Grape::Validations::Validators::RegexpValidator + accepts valid input + accepts nil + nested regexp with array + refuses inapppopriate + regexp with array + refuses nil items + refuses empty items + accepts nil instead of array + accepts valid items + refuses inapppopriate items + invalid input + refuses inapppopriate + refuses empty + custom validation message + accepts valid input + accepts nil + with invalid input + refuses inapppopriate + refuses empty + regexp with array + refuses empty items + refuses nil items + accepts valid items + refuses inapppopriate items + accepts nil instead of array + +Grape::Exceptions::InvalidResponse + #message + contains the problem in the message + +Grape::Validations::ParamsScope::AttributesDoc + #document + documentation is enabled + documents attributes + behaves like an optional doc attribute + does not mention it + behaves like an optional doc attribute + does not mention it + nil as a default value + is still documented + behaves like an optional doc attribute + does not mention it + behaves like an optional doc attribute + does not mention it + behaves like an optional doc attribute + does not mention it + false as a default value + is still documented + the description key instead of desc + adds the given description + documentation is disabled + does not document attributes + #extract_details + tells when attributes are required + cleans up doc attrs needed for documentation only + does not clean up doc attrs mandatory for validators + +Grape::Exceptions::UnknownValidator + #message + contains the problem in the message Grape::Exceptions::ValidationErrors - api without a rescue handler + api with rescue_from :grape_exceptions handler with block + with content_type json + returns body parsing error message with content_type xml - can recover from failed body parsing - with content_type text - can recover from failed body parsing + returns body parsing error message + api without a rescue handler and with no specific content_type can recover from failed body parsing and with content_type json can recover from failed body parsing - api with rescue_from :grape_exceptions handler with block with content_type xml - returns body parsing error message + can recover from failed body parsing + with content_type text + can recover from failed body parsing + api with rescue_from :grape_exceptions handler with content_type json returns body parsing error message + with content_type xml + returns body parsing error message api with rescue_from :all handler - with no specific content_type - can recover from failed body parsing with content_type text can recover from failed body parsing - with content_type json + with no specific content_type can recover from failed body parsing with content_type xml can recover from failed body parsing - api with rescue_from :grape_exceptions handler - with content_type xml - returns body parsing error message with content_type json - returns body parsing error message + can recover from failed body parsing -Grape::Extensions::Hash::ParamBuilder - in an api - symbolizes the params - symbolizes params keys - #params - is Hash - in an endpoint - #params - is of type Hash +Grape::API + .recognize_path + returns nil if given path does not match with registered routes + fetches endpoint by given path + +Grape::Endpoint + post + 405 + +Grape::API + execute first request in reasonable time + +Grape::Endpoint + get + invalid format + no format + json format + +Grape::Validations::Validators::ExceptValuesValidator + 8: opt_except_lambda_default - + 10: opt_except_type_coerce_default - 3 + 6: req_except_lambda_custom_message - invalid-type1 + 11: opt_except_array_type_coerce_default - [10] + 7: opt_except_default - + 7: opt_except_default - invalid-type1 + 0: req_except - valid-type + 8: opt_except_lambda_default - invalid-type3 + 3: req_except_no_value - invalid-type1 + raises IncompatibleOptionValues when a default array has excluded values + 9: req_except_type_coerce - 11 + 11: opt_except_array_type_coerce_default - + 9: req_except_type_coerce - 11 + 1: req_except_hash - valid-type + 2: req_except_custom_message - invalid-type3 + raises IncompatibleOptionValues on a default value in exclude + 11: opt_except_array_type_coerce_default - invalid-type1 + 11: opt_except_array_type_coerce_default - ["3"] + 9: req_except_type_coerce - invalid-type1 + 5: req_except_lambda - invalid-type4 + 9: req_except_type_coerce - 3 + 2: req_except_custom_message - invalid-type1 + 0: req_except - invalid-type3 + 12: req_except_range - 11 + 10: opt_except_type_coerce_default - invalid-type1 + 1: req_except_hash - invalid-type3 + 8: opt_except_lambda_default - invalid-type1 + 11: opt_except_array_type_coerce_default - [3] + 11: opt_except_array_type_coerce_default - 10 + 9: req_except_type_coerce - 3 + 6: req_except_lambda_custom_message - valid-type + raises IncompatibleOptionValues when type is incompatible with values array + 10: opt_except_type_coerce_default - 10 + 10: opt_except_type_coerce_default - + 10: opt_except_type_coerce_default - 3 + 12: req_except_range - 13 + 0: req_except - invalid-type1 + 7: opt_except_default - invalid-type3 + 5: req_except_lambda - valid-type + 5: req_except_lambda - invalid-type1 + 8: opt_except_lambda_default - valid-type + 1: req_except_hash - invalid-type1 + 4: req_except_empty - invalid-type1 + 6: req_except_lambda_custom_message - invalid-type4 + 2: req_except_custom_message - valid-type + 7: opt_except_default - valid-type + +Grape +/build/reproducible-path/ruby-grape-2.0.0/lib/grape/eager_load.rb:20: warning: possibly useless use of :: in void context + eager_load! + compile! Grape::Http::Headers - is expected to eq "Allow" - is expected to eq "X-Cascade" is expected to eq "Location" is expected to eq "Transfer-Encoding" + is expected to eq "X-Cascade" + is expected to eq "Allow" + +A named API + can access the name of the API + +Grape::API + an endpoint with documentation + documents parameters + allows documentation with a hash + an endpoint without documentation + still declares params internally + does not document parameters for the endpoint + +Grape::Validations::Validators::Base + #inherited + when validator's underscored name ends with _validator + registers the custom validator with short name not ending with validator + when validator's underscored name does not end with _validator + registers the custom validator with a short name + when validator is anonymous + does not register the validator + +Grape::Validations::Validators::DefaultValidator + set default values for optional params + allows optional arrays with optional params + sets lambda based defaults at the time of call + does not allows faulty optional arrays + set default value for optional param + allows optional arrays to be omitted + set default values for optional params and allow to use required fields in the same time + lets you leave required values nested inside an optional blank + set default values for missing params in the request + sets default values for grouped arrays + array with default values and given conditions + applies the default values only if the conditions are met + optional with nil as value + special types + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + primitive types + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + structures types + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + respects the default value + variant-member-type collections + respects the default value + respects the default value + respects the default value + respects the default value + optional group with defaults + optional array without default value includes optional param with default value + returns nil for optional array if param is not provided + optional hash without default value includes optional param with default value + does not fail even if invalid params is passed to default validator + returns nil for optional hash if param is not provided + optional array with default value includes optional param with default value + sets default value for optional array if param is not provided + optional hash with default value includes optional param with default value + sets default value from parent defaults for inner param if parent param is not provided + sets default value for optional hash if param is not provided + sets own default value for inner param if parent param is provided + +Grape::API::Helpers + defines parameters Grape::Validations::ParamsScope includes deeply nested parameters within #declared(params) - returns a sensible error message within a nested context includes level 2 nested parameters outside the given within #declared(params) - includes the nested parameter within #declared(params) raises an error if the dependent parameter was never specified + includes the nested parameter within #declared(params) + returns a sensible error message within a nested context + parameters in group + allows Array as type + errors with an unsupported type + allows Hash as type + handles missing optional Array type + errors when no type is provided when validations are dependent on a parameter with specific value - (case 10) + (case 11) includes the parameter within #declared(params) - applies the validation when base param has the specific value - skips validation when base param does not have a specified value - (case 15) skips validation when base param does not have a specified value applies the validation when base param has the specific value + (case 9) + skips validation when base param does not have a specified value includes the parameter within #declared(params) - (case 2) + applies the validation when base param has the specific value + (case 4) applies the validation when base param has the specific value includes the parameter within #declared(params) - skips validation when base param does not have a specified value skips validation when base param is missing - (case 8) skips validation when base param does not have a specified value - includes the parameter within #declared(params) - applies the validation when base param has the specific value - (case 3) - skips validation when base param is missing + (case 15) + skips validation when base param does not have a specified value applies the validation when base param has the specific value includes the parameter within #declared(params) - skips validation when base param does not have a specified value - (case 9) + (case 13) includes the parameter within #declared(params) applies the validation when base param has the specific value skips validation when base param does not have a specified value @@ -3479,140 +2673,155 @@ includes the parameter within #declared(params) applies the validation when base param has the specific value skips validation when base param does not have a specified value - (case 14) - skips validation when base param does not have a specified value - includes the parameter within #declared(params) - applies the validation when base param has the specific value - (case 6) + (case 5) skips validation when base param is missing - applies the validation when base param has the specific value - includes the parameter within #declared(params) skips validation when base param does not have a specified value - (case 0) applies the validation when base param has the specific value includes the parameter within #declared(params) + (case 2) + includes the parameter within #declared(params) skips validation when base param does not have a specified value + applies the validation when base param has the specific value + skips validation when base param is missing + (case 3) skips validation when base param is missing - (case 13) skips validation when base param does not have a specified value includes the parameter within #declared(params) applies the validation when base param has the specific value - (case 5) + (case 8) + skips validation when base param does not have a specified value includes the parameter within #declared(params) applies the validation when base param has the specific value + (case 10) + applies the validation when base param has the specific value + includes the parameter within #declared(params) skips validation when base param does not have a specified value + (case 1) skips validation when base param is missing - (case 11) - includes the parameter within #declared(params) - applies the validation when base param has the specific value skips validation when base param does not have a specified value - (case 4) includes the parameter within #declared(params) applies the validation when base param has the specific value + (case 0) skips validation when base param is missing + includes the parameter within #declared(params) + applies the validation when base param has the specific value skips validation when base param does not have a specified value - (case 7) + (case 6) skips validation when base param does not have a specified value applies the validation when base param has the specific value includes the parameter within #declared(params) skips validation when base param is missing - (case 1) - applies the validation when base param has the specific value + (case 7) skips validation when base param does not have a specified value + includes the parameter within #declared(params) + applies the validation when base param has the specific value skips validation when base param is missing + (case 14) + skips validation when base param does not have a specified value includes the parameter within #declared(params) - param renaming - renaming can be defined after default - renaming can be defined before default - is expected to eq "foo is empty" - is expected to eq "{\"baz\":{\"qux\":\"any\"}}" - is expected to eq "any-any2" - is expected to eq 200 - is expected to eq "-there we go" + applies the validation when base param has the specific value + default value in given block + when dependency does not meet + does not set default value for dependent parameter + when dependency meets + sets default value for dependent parameter + with exactly_one_of validation for optional parameters within an Hash param + when invalid data is provided + returns a failure response + when correct data is provided + returns a successful response when validations are dependent on a parameter - applies the validations of multiple parameters + allows renaming of dependent on parameter includes the parameter within #declared(params) - applies the validations only if the parameter is present - applies only the appropriate validation + raises an error if the dependent parameter is the renamed one + does not raise an error if when using nested given + detect unmet nested dependency + does not raise an error if the dependent parameter is a Hash includes level 2 nested parameters outside the given within #declared(params) + applies the validations only if the parameter is present + includes the nested parameter within #declared(params) returns a sensible error message within a nested context - does not raise if the dependent parameter is not the renamed one - does not raise an error if when using nested given - raises an error if the dependent parameter is the renamed one + does not validate nested requires when given is false + allows nested dependent parameters allows renaming of dependent parameters - does not raise an error if the dependent parameter is a Hash - detect unmet nested dependency + applies only the appropriate validation raises an error if the dependent parameter was never specified - allows renaming of dependent on parameter - allows nested dependent parameters - does not validate nested requires when given is false - includes the nested parameter within #declared(params) + applies the validations of multiple parameters + does not raise if the dependent parameter is not the renamed one when the dependent parameter is not present #declared(params) - lateral hash parameter + lateral parameter evaluate_given_false evaluate_given_true - nested given parameter within an array param + lateral parameter within an array param evaluate_given_false evaluate_given_true - nested given parameter within a nested given parameter within an array param - evaluate_given_false + lateral hash parameter evaluate_given_true - lateral parameter within lateral hash parameter evaluate_given_false - evaluate_given_true - lateral parameter + lateral parameter within lateral hash parameter evaluate_given_true evaluate_given_false - lateral parameter within an array param + nested given parameter within an array param evaluate_given_true evaluate_given_false - nested given parameter + nested given parameter within a nested given parameter within an array param + evaluate_given_false evaluate_given_true + nested given parameter evaluate_given_false - with exactly_one_of validation for optional parameters within an Hash param - when correct data is provided - returns a successful response - when invalid data is provided - returns a failure response + evaluate_given_true + param renaming + renaming can be defined after default + is expected to eq "{\"baz\":{\"qux\":\"any\"}}" + renaming can be defined before default + is expected to eq "-there we go" + is expected to eq "foo is empty" + is expected to eq 200 + is expected to eq "any-any2" + when using custom types + coerces the parameter via the type's parse method when validations are dependent on a parameter within an array param within #declared(params).to_json applies the constraint within each value + array without coerce type explicitly given + raises exception when range values have different endpoint types + sets the type based on first element + raises exception when values are of different type + fails to call API without Array type when params have group attributes - with validations - when parameter has the same validator as a group - returns a successful response - prioritizes parameter validation over group validation - when data is invalid - returns a validation error - applies group validations for every parameter with nested groups - when data is invalid - returns a validation error - responds with HTTP error when correct data is provided returns a successful response - with several group attributes when data is invalid - returns a validation error responds with HTTP error - when correct data is provided + returns a validation error + with validations + when data is invalid + applies group validations for every parameter + returns a validation error + when parameter has the same validator as a group returns a successful response + prioritizes parameter validation over group validation with types when invalid date provided - returns a validation error responds with HTTP error + returns a validation error when created_at receives a valid date + returns a successful response returns a date + with several group attributes + when correct data is provided returns a successful response - array without coerce type explicitly given - raises exception when values are of different type - raises exception when range values have different endpoint types - sets the type based on first element - fails to call API without Array type - default value in given block - when dependency meets - sets default value for dependent parameter - when dependency does not meet - does not set default value for dependent parameter + when data is invalid + responds with HTTP error + returns a validation error + when validations are dependent on a parameter within an array param + passes none Hash params + failing fast + when fail_fast is not defined + does not stop validation + when fail_fast is defined it stops the validation + of other params + for a single param coercing values validation with proc DEPRECATION WARNING: The values validator except option is deprecated. Use the except validator instead. (called from new at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/validations/validator_factory.rb:7) allows the proc to pass validation without checking in except @@ -3621,95 +2830,694 @@ with range values when right range endpoint isn't #kind_of? the type raises exception - when both range endpoints are #kind_of? the type - accepts values in the range - rejects values outside the range - when left range endpoint isn't #kind_of? the type - raises exception when the default is an array and is the entire range of allowed values does not raise an exception and is a subset of allowed values does not raise an exception - when validations are dependent on a parameter within an array param - passes none Hash params - when using custom types - coerces the parameter via the type's parse method - parameters in group - allows Hash as type - errors when no type is provided - allows Array as type - errors with an unsupported type - handles missing optional Array type - failing fast - when fail_fast is defined it stops the validation - of other params - for a single param - when fail_fast is not defined - does not stop validation + when left range endpoint isn't #kind_of? the type + raises exception + when both range endpoints are #kind_of? the type + accepts values in the range + rejects values outside the range -Grape::Util::InheritableSetting - #inherit_from - notifies clones +Grape::Middleware::Versioner + recognizes :path + recognizes :accept_version_header + recognizes :param + recognizes :header + +Grape::Exceptions::MissingMimeType + #message + contains the resolution in the message + contains the problem in the message + +Grape::Exceptions::Base + #message + is expected to eq "a_message" + #compose_message + when I18n does not enforce available locales + when the fallback locale is not available + returns the translated message + when the fallback locale is available + returns the translated message + when I18n enforces available locales + when the fallback locale is available + returns the translated message + when the fallback locale is not available + returns the translation string + #to_s + is expected to eq "a_message" + +Grape::Middleware::Formatter + send file + returns a file response + inheritable formatters + returns response by invalid formatter + no content responses + does not modify a 160 response + does not modify a 150 response + does not modify a 131 response + does not modify a 129 response + does not modify a 128 response + does not modify a 134 response + does not modify a 135 response + does not modify a 145 response + does not modify a 172 response + does not modify a 113 response + does not modify a 154 response + does not modify a 111 response + does not modify a 179 response + does not modify a 127 response + does not modify a 183 response + does not modify a 117 response + does not modify a 191 response + does not modify a 118 response + does not modify a 193 response + does not modify a 132 response + does not modify a 151 response + does not modify a 114 response + does not modify a 122 response + does not modify a 156 response + does not modify a 144 response + does not modify a 142 response + does not modify a 116 response + does not modify a 181 response + does not modify a 168 response + does not modify a 148 response + does not modify a 161 response + does not modify a 100 response + does not modify a 304 response + does not modify a 163 response + does not modify a 175 response + does not modify a 167 response + does not modify a 109 response + does not modify a 159 response + does not modify a 184 response + does not modify a 187 response + does not modify a 189 response + does not modify a 164 response + does not modify a 192 response + does not modify a 170 response + does not modify a 141 response + does not modify a 103 response + does not modify a 204 response + does not modify a 176 response + does not modify a 197 response + does not modify a 173 response + does not modify a 121 response + does not modify a 104 response + does not modify a 171 response + does not modify a 166 response + does not modify a 124 response + does not modify a 123 response + does not modify a 136 response + does not modify a 169 response + does not modify a 138 response + does not modify a 101 response + does not modify a 107 response + does not modify a 188 response + does not modify a 165 response + does not modify a 147 response + does not modify a 194 response + does not modify a 174 response + does not modify a 125 response + does not modify a 130 response + does not modify a 162 response + does not modify a 157 response + does not modify a 158 response + does not modify a 137 response + does not modify a 105 response + does not modify a 108 response + does not modify a 106 response + does not modify a 139 response + does not modify a 198 response + does not modify a 190 response + does not modify a 120 response + does not modify a 140 response + does not modify a 149 response + does not modify a 119 response + does not modify a 133 response + does not modify a 155 response + does not modify a 110 response + does not modify a 115 response + does not modify a 102 response + does not modify a 178 response + does not modify a 180 response + does not modify a 199 response + does not modify a 196 response + does not modify a 112 response + does not modify a 186 response + does not modify a 195 response + does not modify a 152 response + does not modify a 185 response + does not modify a 143 response + does not modify a 153 response + does not modify a 126 response + does not modify a 146 response + does not modify a 182 response + does not modify a 177 response + content-type + is set for vendored with registered type + is set for json + is set for xml + is set for txt + is set for custom + is set to closest generic for custom vendored/versioned without registered type + detection + uses the file extension format if provided before headers + uses the xml extension if one is provided + uses the format parameter if one is provided + uses the default format if none is provided + uses the json extension if one is provided + uses the requested format if provided in headers + input + parses the chunked body from PUT and copies values into rack.request.from_hash + ignores multipart/mixed + ignores multipart/form-data + ignores application/x-www-form-urlencoded + ignores multipart/related + ignores multipart/form-data + parses the body from an xml DELETE and copies values into rack.request.from_hash + ignores multipart/mixed + ignores multipart/related + rewinds IO + parses the chunked body from PATCH and copies values into rack.request.from_hash + ignores application/x-www-form-urlencoded + ignores multipart/related + rewinds IO + rewinds IO + ignores multipart/mixed + parses the body from an xml PATCH and copies values into rack.request.from_hash + ignores multipart/mixed + parses the chunked body from DELETE and copies values into rack.request.from_hash + rewinds IO + ignores multipart/form-data + ignores application/x-www-form-urlencoded + ignores multipart/related + ignores multipart/form-data + parses the body from an xml PUT and copies values into rack.request.from_hash + parses the body from an xml POST and copies values into rack.request.from_hash + ignores application/x-www-form-urlencoded + parses the chunked body from POST and copies values into rack.request.from_hash + when body is not nil or empty + when Content-Type is supported + parses the body from DELETE and copies values into rack.request.form_hash + when Content-Type is not supported + returns a 415 HTTP error status + when body is empty + does not read and parse the body + when body is not nil or empty + when Content-Type is not supported + returns a 415 HTTP error status + when Content-Type is supported + parses the body from PUT and copies values into rack.request.form_hash + application/json; charset=utf-8 + parses the body from DELETE and copies values into rack.request.form_hash + application/json + parses the body from PATCH and copies values into rack.request.form_hash + when body is empty + does not read and parse the body + application/json; charset=utf-8 + parses the body from PATCH and copies values into rack.request.form_hash + when body is empty + does not read and parse the body + when body is empty + does not read and parse the body + application/json + parses the body from DELETE and copies values into rack.request.form_hash + when body is not nil or empty + when Content-Type is not supported + returns a 415 HTTP error status + when Content-Type is supported + parses the body from POST and copies values into rack.request.form_hash + application/json + parses the body from PUT and copies values into rack.request.form_hash + application/json; charset=utf-8 + parses the body from PUT and copies values into rack.request.form_hash + application/json; charset=utf-8 + parses the body from POST and copies values into rack.request.form_hash + when body is nil + does not read and parse the body + when body is nil + does not read and parse the body + application/json + parses the body from POST and copies values into rack.request.form_hash + when body is nil + does not read and parse the body + when body is nil + does not read and parse the body + when body is not nil or empty + when Content-Type is not supported + returns a 415 HTTP error status + when Content-Type is supported + parses the body from PATCH and copies values into rack.request.form_hash + error handling +caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError + does not rescue other exceptions + rescues formatter-specific exceptions + serialization + looks at the bodies for possibly serializable data + default format + calls #to_json since default format is json + jsonapi + calls #to_json if the content type is jsonapi + xml + calls #to_xml if the content type is xml + custom parser raises exception and rescue options are enabled for backtrace and original_exception + adds the backtrace and original_exception to the error output + accept header detection + parses headers with vendor and api version + parses headers with symbols as hash keys + parses headers with other attributes + handles quality rankings that have a default 1.0 value + handles quality rankings mixed with nothing + ensures that a quality of 0 is less preferred than any other content type + uses quality rankings to determine formats + detects from the Accept header + ignores invalid quality rankings + with custom vendored content types + uses the custom type + format + uses custom formatter + uses custom json formatter + default + uses default json formatter + +Grape::Validations + params + with block and empty args + works + required with an Array block + doesn't throw a missing param when param is present but empty + doesn't throw a missing param when param is present + adds to declared parameters + errors when param is not an Array + errors when param not present + requires :all using Grape::Entity documentation + errors when required_field is not present + adds entity documentation to declared params + works when required_field is present + requires :all or :none but except a non-existent field using Grape::Entity documentation + requires :all + adds only the entity documentation to declared params, nothing more + requires :none + adds only the entity documentation to declared params, nothing more + optional using Grape::Entity documentation + works when field_a and field_b are not present + works when field_b is present + works when field_a is present + adds entity documentation to declared params + with block and keyword argument + works + mutually exclusive + more than one set of mutually exclusive params + errors for all sets + with a custom validation message + errors for all sets + optional params + errors when two or more are present + with custom validation message + errors when two or more are present + mutually exclusive params inside Hash group + invalidates if request param is invalid type + in a group + works when only one from the set is present + errors when more than one from the set is present + custom validation + when using optional with a custom validator + validates when param is present + skips validation when parameter isn't present + validates with custom validator when param present and incorrect type + when using options on param + validates param with custom validator with options + when using requires with a custom validator + validates when param is present + validates when param is not present + nested namespaces + when nested, specifying a route should clear out the validations for deeper nested params + the nested namespace inherits the custom validator + namespaces nested in peers should also not have the validator + the parent namespace uses the validator + peer namespaces does not have the validator + exactly one of + params + succeeds when one is present + errors when none are present + errors when two or more are present + with a custom validation message + errors when none are present + succeeds when one is present + errors when two or more are present + nested params + succeeds when one is present + errors when none are present + errors when two or more are present + in a group + works when only one from the set is present + errors when more than one from the set is present + errors when no parameter from the set is present + does not falsely think the param is there if it is provided outside the block + required with an Array and a Hash block + does not output index [0] for Hash types + required + adds to declared parameters + works when required field is present but nil + doesn't throw a missing param when param is present + errors when param not present + all or none + optional params + with a custom validation message + errors when any one is present + works when all params are present + works when none are present + required with a Hash block + errors when param not present + adds to declared parameters + doesn't throw a missing param when param is present + errors when param is not a Hash + errors when nested param not present + nested optional Array blocks + adds to declared parameters + handles validation within arrays + handles deep nesting + at_least_one_of + exactly_one_of + does internal validations if the outer group is present + all_or_none_of + does no internal validations if the outer group is blank + Issue occurs whenever: +* param structure with at least three levels +* 1st level item is a required Array that has >1 entry with an optional item present and >1 entry with an optional item missing +* 2nd level is an optional Array or Hash +* 3rd level is a required item (can be any type) +* additional levels do not effect the issue from occuring + simplest example using Array -> Hash -> String + example based off actual real world use case + correctly indexes invalida data + simplest example using Array -> Array -> Hash -> String + multiple levels of optional and requires settings + with valid data + with invalid data + custom validator for a Hash + which is optional + errors if the validation fails + doesn't throw an error if the validation passes + which is required + errors if the validation fails + doesn't throw an error if the validation passes + named + can be included in usual params + by #use + by #use with multiple params + with block + overrides default value for order + overrides default value for order_by + returns defaults + fails with invalid value + can be defined + in helper module which kind of Grape::DSL::Helpers::BaseHelper + in helpers + multiple validation errors + throws the validation errors + group + adds to declared parameters + doesn't throw a missing param when param is present + errors when param not present + at least one of + params + errors when none are present + does not error when one is present + does not error when two are present + with a custom validation message + errors when none are present + does not error when one is present + does not error when two are present + nested params + errors when none are present + does not error when one is present + does not error when two are present + validation within arrays + safely handles empty arrays and blank parameters + errors when param is not an Array + errors when a parameter is not present + handle errors for all array elements + can handle new scopes within child elements + errors when a parameter is not present in array within array + requires :none using Grape::Entity documentation + errors when required_field is not present + adds entity documentation to declared params + works when required_field is present + requires with nested params + validates correctly in deep nested params + hash with a required param with validation + works when all params match + errors when param is not a Hash + with block param + optional defaults to Array type + requires defaults to Array type + group defaults to Array type + optional with an Array block + doesn't throw a missing param when both group and param are given + errors when param is present but isn't an Array + doesn't throw a missing param when the group isn't present + errors when group is present, but required param is not + adds to declared parameters + group params with nested params which has a type + errors when group param is invalid + optional + validates when params is present + doesn't validate when param not present + adds to declared parameters + validation within arrays with JSON + errors when a parameter is not present + can handle new scopes within child elements + safely handles empty arrays and blank parameters + require_validator + when not found + raises an error + when found + is expected to equal Grape::Validations::Validators::PresenceValidator + +Grape::Validations::Validators::MutualExclusionValidator + #validate! + when mutually exclusive params are nested inside array + returns a validation error with full names of the params + when a subset of mutually exclusive params are present + returns a validation error + when custom message is specified + returns a validation error + when mutually exclusive params are nested inside required hash + returns a validation error with full names of the params + when mutually exclusive params are deeply nested + returns a validation error with full names of the params + when mutually exclusive params are nested inside optional hash + when params are passed + returns a validation error with full names of the params + when params are empty + does not return a validation error + when all mutually exclusive params are present + returns a validation error + mixed with other params + returns a validation error + when no mutually exclusive params are present + does not return a validation error + +Grape::Validations::MultipleAttributesIterator + #each + when params is a hash + yields the whole params hash without the list of attrs + when params is an array + yields each element of the array without the list of attrs + when params is empty optional placeholder + does not yield it + +Grape::API + works for specified format + doesn't work for format different than specified + works for unspecified format + +Grape::Util::StackableValues #to_hash - return all settings as a hash - #api_class - is specific to the class - #namespace_inheritable - works with inheritable values - handles different parents - #point_in_time_copy - decouples namespace inheritable values - decouples namespace reverse stackable values - decouples namespace values - resets point_in_time_copies - decouples namespace stackable values - adds itself to original as clone - decouples route values - #global - sets a global value - sets the global inherited values - handles different parents - overrides global values - #namespace_stackable - works with stackable values - #namespace - uses new values when a new namespace starts - sets a value until the end of a namespace - #route - sets a value until the next route - works with route values - #api_class - is specific to the class - #namespace_reverse_stackable - works with reverse stackable values + returns a Hash representation + #[] + returns an array of values + parent values are not changed + combines parent and actual values + returns parent value when no value is set + #clone + copies all values + complex (i.e. not primitive) data types (ex. middleware, please see bug #930) + copies values; does not duplicate them + #delete + deletes a key + does not delete parent values + #keys + returns merged keys with parent + returns all keys + #[]= + can handle array values + sets a value + pushes further values -Grape::Validations::Types::ArrayCoercer - #call - an array of sets - coerces elements in the nested set - an array of arrays - coerces elements in the nested array - an array of primitives - coerces elements in the array +Grape::DSL::Routing + .do_not_route_options! + sets do not route options option + .scope + create a scope without affecting the URL + .versions + returns last defined version + .delete + delegates to .route + .group + is alias to #namespace + .patch + delegates to .route + .namespace + calls #joined_space_path on Namespace + creates a new namespace with given name and options + .post + delegates to .route + .options + delegates to .route + .mount + mounts on a nested path + mounts multiple routes at once + .resource + is alias to #namespace + .resources + is alias to #namespace + .prefix + sets a prefix for route + .get + delegates to .route + .do_not_route_head! + sets do not route head option + .put + delegates to .route + .routes + returns value received from #prepare_routes + when #routes was already called once + does not call prepare_routes again + .version + sets a version for route + .route_param + calls #namespace with given params + does not modify options parameter + nests requirements option under param name + .route + generates correct endpoint options + defines a new endpoint + does not duplicate identical endpoints + marks end of the route + resets validations + .segment + is alias to #namespace + .head + delegates to .route -Grape::Middleware::Auth::Base - authenticates if given valid creds - throws a 401 is wrong auth is given +Grape::Validations::Types + ::custom? + returns false if the type's #parse method takes other than one argument + returns true if the type responds to :parse with one argument + returns false if the type does not respond to :parse + ::primitive? + recognizes Date as a primitive + identifies unknown types + recognizes Integer as a primitive + recognizes Numeric as a primitive + recognizes Time as a primitive + recognizes BigDecimal as a primitive + recognizes Grape::API::Boolean as a primitive + recognizes DateTime as a primitive + recognizes String as a primitive + recognizes Float as a primitive + recognizes Symbol as a primitive + special types + when File + is expected to eq Grape::Validations::Types::File + when Array[JSON] + is expected to eq Grape::Validations::Types::JsonArray + when Rack::Multipart::UploadedFile + is expected to eq Grape::Validations::Types::File + when JSON + is expected to eq Grape::Validations::Types::Json + ::special? + provides special handling for [JSON] + provides special handling for Rack::Multipart::UploadedFile + provides special handling for File + provides special handling for JSON + ::structure? + recognizes Hash as a structure + recognizes Set as a structure + recognizes Array as a structure + ::build_coercer + caches the result of the build_coercer method + has internal cache variables + +Grape::DSL::RequestResponse + .default_error_status + sets a default error status + .parser + sets a parser for a content type + .default_format + returns the format without paramter + sets the default format + .formatter + sets the formatter for a content type + .default_error_formatter + sets a new error formatter + .format + sets a new format + .content_type + sets a content type for a format + .represent + sets a presenter for a class + .rescue_from + :all + sets rescue all to true + abort if :with option value is not Symbol, String or Proc + abort if both :with option and block are passed + sets a rescue handler declared through :with option + sets given proc as rescue handler + sets given block as rescue handler + list of exceptions is passed + sets given proc as rescue handler for each key in hash + sets hash of exceptions as rescue handlers + sets a rescue handler declared through :with option for each key in hash + rescues only base handlers if rescue_subclasses: false option is passed + sets given block as rescue handler for each key in hash + :grape_exceptions + sets rescue all to true + sets given proc as rescue handler + sets given block as rescue handler + sets a rescue handler declared through :with option + .content_types + returns all content types + .error_formatter + understands syntactic sugar + sets a error_formatter + +Grape::Exceptions::UnknownOptions + #message + contains the problem in the message + +Validator with instance variables + passes validation every time Grape::Request - when the build_params_with is set to Hashie - when the API includes a specific param builder - is expected to be a kind of Hashie::Mash - when the API does not include a specific param builder - is expected to be a kind of Hash #headers with symbolic header names converts them to string - with non-HTTP_* stuff in env - does not include them with http headers in env cuts HTTP_ prefix and capitalizes header name words + with non-HTTP_* stuff in env + does not include them + when the build_params_with is set to Hashie + when the API includes a specific param builder + is expected to be a kind of Hashie::Mash + when the API does not include a specific param builder + is expected to be a kind of Hash #params by default returns stringified parameter keys when build_params_with: Grape::Extensions::Hash::ParamBuilder is specified @@ -3717,867 +3525,984 @@ with grape.routing_args cuts version and route_info +Grape::Validations::Types::SetCoercer + #call + a set of primitives + coerces elements to the set + a set of sets + coerces elements in the nested set + a set of sets of arrays + coerces elements in the nested set + +Grape::Middleware::Stack + #insert_after + inserts a middleware after an anonymous class given by its superclass + raises an error on an invalid index + inserts a middleware after another middleware class + #build + returns a rack builder instance + when @others are present + applies the middleware specs stored in @others + #use + pushes a middleware class with arguments onto the stack + pushes a middleware class with block arguments onto the stack + pushes a middleware class onto the stack + #insert + inserts a middleware class at the integer index + #insert_before + inserts a middleware before an anonymous class given by its superclass + inserts a middleware before another middleware class + raises an error on an invalid index + #concat + calls +merge_with+ with the :use specs + adds non :use specs to @others + #merge_with + applies a collection of operations and middlewares + middleware spec with proc declaration exists + properly forwards spec arguments + +Grape::Extensions::Hash::ParamBuilder + in an api + symbolizes the params + symbolizes params keys + #params + is Hash + in an endpoint + #params + is of type Hash + +Grape::Endpoint + #present + multiple entities + instance + presents both dummy objects + non mergeable entity + instance + fails + with + entity + instance + presents dummy object + dummy + presents dummy object + #cookies + returns an instance of Cookies + #stream + returns default + set + as a stream object + sets Content-Length header to nil + sets Cache-Control header to no-cache + emits no deprecation warnings + returns value wrapped in StreamResponse + sets Transfer-Encoding header to nil + as a non-stream object + raises an error that the object must implement :each + as a file path + sets Content-Length header to nil + emits no deprecation warnings + sets Cache-Control header to no-cache + does not change Cache-Control header + returns file body wrapped in StreamResponse + sets Transfer-Encoding header to nil + #return_no_content + sets the status code and body + #error! + throws :error + thrown + sets status + default_error_status + sets status to default_error_status + #file + set + as file path + emits a warning that this method is deprecated +DEPRECATION WARNING: Use sendfile or stream to send files. (called from block (5 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:219) + forwards the call to sendfile + as object (backward compatibility) +DEPRECATION WARNING: Use stream to use a Stream object. (called from block (5 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:235) + forwards the call to stream + emits a warning that this method is deprecated + get +DEPRECATION WARNING: Use sendfile or stream to send files. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/dsl/inside_route_spec.rb:250) + fowards call to sendfile + emits a warning that this method is deprecated + #route + returns route_info + #body + returns default + false + sets status to 204 + set + returns value + #redirect + permanent + sets status to 301 + sets location header + default + sets location header + sets status to 302 + #content_type + returns default + set + returns value + #sendfile + returns default + set + as object + raises an error that only a file path is supported + as file path + returns value wrapped in StreamResponse + does not change the Transfer-Encoding header + does not change the Cache-Control header + does not change the Content-Length header + sends no deprecation warnings + #status + returns status set + raises error if status is not a integer or symbol + accepts symbol for status + defaults to 204 on DELETE + accepts unknown Integer status codes + defaults to 200 on GET + defaults to 201 on POST + defaults to 200 on DELETE with a body present + defaults to 200 on GET + defaults to 200 on GET + raises error if unknow symbol is passed + #declared + is not available by default + #version + defaults to nil + returns env[api.version] + Grape::Endpoint + get + responds without ext + responds with ext put responds + +Grape::Middleware::Versioner::AcceptVersionHeader + succeeds if :strict is set to false + succeeds if :strict is not set + when :strict and cascade: false + fails with 406 Not Acceptable if header is not set + fails with 406 Not Acceptable if header is empty + succeeds if proper header is set + when :strict is set + succeeds if proper header is set + fails with 406 Not Acceptable if header is not set + fails with 406 Not Acceptable if header is empty + api.version + is set + is set if format provided + fails with 406 Not Acceptable if version is not supported + +Grape::Endpoint get responds + put + responds -Rack::Sendfile - when streaming non file content - not contains Sendfile headers - when calling sendfile - contains Sendfile headers - -Grape::DSL::Callbacks - .before - adds a block to "before" - .after - adds a block to "after" - .before_validation - adds a block to "before_validation" - .after_validation - adds a block to "after_validation" +Grape::Presenters::Presenter + represent + represent object + present + multiple presenter + instance + presents both dummy presenter + instance + presents dummy hash -Grape::API::Helpers - defines parameters +Grape::Validations + using a custom validator with message_key + fails with message + using a custom request/param validator + does not fail when we send non-admin and admin=false fields only + fail when non-admin user sets an admin field + does not fail when we send admin fields and we are admin + does not fail when we send non-admin fields only + fails when we send admin fields and we are not admin + Grape::Validations::Base + behaves like deprecated class + raises an ActiveSupport::DeprecationException + using a custom body-only validator + allows field in body + ignores field in query + using a custom length validator + over 140 characters + under 140 characters + specified in the query string -Grape::Exceptions::InvalidAcceptHeader - API with cascade=false, http_codes but without a rescue handler - that received a request with correct vendor and version - behaves like a valid request - does return the expected result - does return with status 200 - that receives - an invalid version in the request - behaves like a not-cascaded request - does not include the X-Cascade=pass header - does not accept the request - an invalid vendor in the request - behaves like a not-cascaded request - does not accept the request - does not include the X-Cascade=pass header - API with cascade=false and rescue_from :all handler - that received a request with correct vendor and version - behaves like a valid request - does return the expected result - does return with status 200 - that receives - an invalid vendor in the request - behaves like a rescued request - does not include the X-Cascade=pass header - does show rescue handler processing - API with cascade=false and with rescue_from :all handler and http_codes - that received a request with correct vendor and version - behaves like a valid request - does return the expected result - does return with status 200 - that receives - an invalid vendor in the request - behaves like a rescued request - does show rescue handler processing - does not include the X-Cascade=pass header - API with cascade=true and without a rescue handler - that received a request with correct vendor and version - behaves like a valid request - does return the expected result - does return with status 200 - that receives - an invalid version in the request - behaves like a cascaded request - does not find a matching route - an invalid vendor in the request - behaves like a cascaded request - does not find a matching route - API with cascade=false and without a rescue handler - that received a request with correct vendor and version - behaves like a valid request - does return with status 200 - does return the expected result - that receives - an invalid version in the request - behaves like a not-cascaded request - does not include the X-Cascade=pass header - does not accept the request - an invalid vendor in the request - behaves like a not-cascaded request - does not include the X-Cascade=pass header - does not accept the request - API with cascade=true and rescue_from :all handler - that received a request with correct vendor and version - behaves like a valid request - does return the expected result - does return with status 200 - that receives - an invalid version in the request - behaves like a cascaded request - does not find a matching route - an invalid vendor in the request - behaves like a cascaded request - does not find a matching route - API with cascade=true and with rescue_from :all handler and http_codes - that receives - an invalid vendor in the request - behaves like a cascaded request - does not find a matching route - an invalid version in the request - behaves like a cascaded request - does not find a matching route - that received a request with correct vendor and version - behaves like a valid request - does return with status 200 - does return the expected result - API with cascade=true, http_codes but without a rescue handler - that received a request with correct vendor and version - behaves like a valid request - does return with status 200 - does return the expected result - that receives - an invalid vendor in the request - behaves like a cascaded request - does not find a matching route - an invalid version in the request - behaves like a cascaded request - does not find a matching route +Grape::Validations::Validators::SameAsValidator + / + is not the same + is expected to eq "password_confirmation is not the same as password" + is the same + is expected to eq "" + /custom-message + is the same + is expected to eq "" + is not the same + is expected to eq "password_confirmation not match" Grape::API - remounting an API - with dynamic configuration - when mounting an endpoint conditional on a configuration - mounts the endpoints only when configured to do so - when using an expression derived from a configuration - mounts the endpoint with the name - does not mount the endpoint with a null name - when the expression lives in a namespace - mounts the endpoint with the name - does not mount the endpoint with a null name - on the ParamScope - mounts the endpoint in the location it is configured - on dynamic checks - can read the configuration on lambdas - when executing a custom block on mount - mounts the endpoints only when configured to do so - when the configuration is read within a namespace - will use the dynamic configuration on all routes - on the DescSCope - mounts the endpoint with the appropiate tags - when executing a standard block within a `mounted` block with all dynamic params - mounts the API and obtains the description and headers definition - when the configuration is part of the arguments of a method - mounts the endpoint in the location it is configured - when the configuration is the value in a key-arg pair - takes the param from the configuration - when the configuration is read in a helper - will use the dynamic configuration on all routes - when the configuration is read within the response block - will use the dynamic configuration on all routes - a very complex configuration example - when it should not be mounted - gets a response - when should be mounted is nil - gets a response - when the namespace should be mounted - gets a response - when the params are configured via a configuration - when the configured param is my_attr - requires the configured params - with a defined route - when mounting one instance - can access the endpoint - when mounting on namespace - can access the votes in both places - when mounting twice - can access the votes in both places + with a global namespace function + works + +Grape::DSL::Middleware + .middleware + returns the middleware stack + .use + adds a middleware with the right operation + .insert + adds a middleware with the right operation + .insert_after + adds a middleware with the right operation + .insert_before + adds a middleware with the right operation + +Grape::DSL::Settings + #namespace_stackable + delegates to get_or_set + stacks values from surrounding namespace + #get_or_set + sets a values + returns a value when nil is new value is provided + #route_setting + delegates to get_or_set + sets a value until the next route + #unset_route_setting + delegates to unset + #unset + deletes a key from settings + #unset_namespace_inheritable + delegates to unset + #unset_global_setting + delegates to unset + #within_namespace + calls start and end for a namespace + returns the last result + #unset_api_class_setting + delegates to unset + complex scenario + plays well + #global_setting + delegates to get_or_set + #api_class_setting + delegates to get_or_set + #unset_namespace_stackable + delegates to unset + #unset_namespace_setting + delegates to unset + #namespace_setting + sets a value until the end of a namespace + resets values after leaving nested namespaces + delegates to get_or_set + #namespace_inheritable + inherits values from surrounding namespace + delegates to get_or_set + +Grape::Validations::Validators::ExactlyOneOfValidator + #validate! + when params are nested inside required hash + returns a validation error with full names of the params + when custom message is specified + returns a validation error + when none of the params are present + returns a validation error + when params are nested inside array + returns a validation error with full names of the params + when params are deeply nested + returns a validation error with full names of the params + when exacly one param is present + does not return a validation error + when all params are present + returns a validation error + mixed with other params + returns a validation error + when params are nested inside optional hash + when params are passed + returns a validation error with full names of the params + when params are empty + does not return a validation error + when a subset of params are present + returns a validation error + +Grape::Middleware::Error + Non-StandardError exception with a provided rescue handler + default error response + rescues the exception using the default handler + custom error response + rescues the exception using the provided handler + + responds to custom Grape exceptions appropriately + + is possible to return errors in json format + with rescue_options :backtrace and :exception set to true + is possible to return the backtrace and the original exception in json format + + does not trap regular error! codes + + is possible to return errors in jsonapi format + + is possible to return the backtrace and the original exception in txt format + + is possible to return hash errors in jsonapi format + + is possible to return the backtrace and the original exception in xml format + + is possible to specify a different default status code + + is possible to return hash errors in json format + + is possible to return hash errors in xml format + + is possible to return errors in xml format + + is possible to specify a custom formatter + with defaults + does not trap errors by default + with rescue_all + Non-StandardError exception + does not trap errors other than StandardError + StandardError exception + defaults to a 500 status + sets the message appropriately + +Grape::Exceptions::ValidationErrors + initialize + assigns headers through base class + api + can return structured json with separate fields + #full_messages + with errors + returns an array with each errors full message + when attributes is an array of symbols + returns an array with an error full message + message + is not repeated + is expected to include "FooBar is invalid" + is expected to eq 1 + +Grape::Util::InheritableValues + #[]= + sets a value + #clone + complex (i.e. not primitive) data types (ex. entity classes, please see bug #891) + copies values; does not duplicate them + #[] + parent values are not changed + returns a value + overwrites parent value with the current one + returns parent value when no value is set + #to_hash + returns a Hash representation + #delete + does not delete parent values + deletes a key + +Grape::Middleware::Auth::Base + throws a 401 is wrong auth is given + authenticates if given valid creds + +Grape::Validations::Types::ArrayCoercer + #call + an array of sets + coerces elements in the nested set + an array of primitives + coerces elements in the array + an array of arrays + coerces elements in the nested array + +Grape::DSL::Headers + when headers are set + #header + delete + deletes a header key-value pair + get + returns all set headers + returns a specifc value + set + returns value + when no headers are set + #header + returns nil Grape::API - normal class methods - can find the appropiate name - is equal to itself - .format - :serializable_hash -Grape::API - instance -Grape::API - array -Grape::API - root - :xml -Grape::API - raised :error from middleware -Grape::API - string -Grape::API - hash -Grape::API - array - :txt only + .default_format Grape::API - forces txt without an extension + parses data in default format Grape::API - forces txt from a non-accepting header + returns data in default format + body + plain text Grape::API - accepts specified extension + returns blank body + false Grape::API - does not accept extensions other than specified - :txt + returns blank body + .rescue_from :grape_exceptions Grape::API - does not force txt with an extension + rescues grape exceptions with a user-defined handler Grape::API - forces txt without an extension + rescues grape exceptions + normal class methods + can find the appropiate name + is equal to itself + .finally + when the ensure block has no exceptions + when a handled error occurs inside the API call Grape::API - forces txt from a non-accepting header - :json + executes the ensure code + when an unhandled occurs inside the API call Grape::API - raised :error from middleware + executes the ensure code + when no API call is made Grape::API - forces json without an extension + has not executed the ensure code + when no errors occurs Grape::API - can be overwritten with an explicit content type + executes the ensure code + with a helper Grape::API - does not force json with an extension + has access to the helper + http_codes Grape::API - forces json from a non-accepting header - .configure + presented with Grape::API - allows configuring the api - when given a block + is used as presenter + .content_type Grape::API - returns self + removes existing content types Grape::API - calls the block passing the config - when not given a block + allows to override content-type Grape::API - returns a configuration object + sets additional content-type custom middleware .insert_before Grape::API runs before a given middleware - .insert_after -Grape::API - runs after a given middleware .middleware Grape::API - includes all middleware from stacked settings -Grape::API includes middleware arguments from settings - .use Grape::API - does not destroy the middleware settings on multiple runs + includes all middleware from stacked settings + .use Grape::API uses a block if one is given Grape::API adds middleware Grape::API - does not show up outside the namespace -Grape::API mounts behind error middleware Grape::API + does not destroy the middleware settings on multiple runs +Grape::API + does not show up outside the namespace +Grape::API calls the middleware Grape::API adds a block if one is given + .insert_after +Grape::API + runs after a given middleware + lifecycle + when the api_call fails validation +Grape::API + follows the failed_validation cycle (skips after_validation, api_call & after) + when the api_call succeeds +Grape::API + follows the standard life_cycle + when the api_call has an exception +Grape::API + follows the errored life_cycle (skips after) + when the api_call has a controlled error +Grape::API + follows the errored life_cycle (skips after) .parser Grape::API parses data in format requested by content-type multi_xml Grape::API doesn't parse yaml - none parser class -Grape::API - does not parse data - lambda parser -Grape::API - uses parser for text/custom; charset=UTF-8 -Grape::API - uses parser for text/custom custom parser class Grape::API uses custom parser - .version using param - behaves like versioning -Grape::API - does not overwrite version parameter with API version + lambda parser Grape::API - is able to specify version as a nesting + uses parser for text/custom Grape::API - adds the prefix before the API version + uses parser for text/custom; charset=UTF-8 + none parser class Grape::API - is able to specify multiple versions + does not parse data + .namespace Grape::API - sets the API version - with before block defined within a version block + accepts path segments correctly Grape::API - calls before block that is defined within the version block - with catch-all - v2 + is retrievable and converted to a path Grape::API - finds catch all + `.resources` is an alias Grape::API - finds endpoint - v1 + cancels itself after the block is over Grape::API - finds catch all + `.resource` is an alias Grape::API - finds endpoint - with different versions for the same endpoint - with a prefix + is callable with nil just to push onto the stack Grape::API - allows the same endpoint to be implemented - without a prefix + `.group` is an alias Grape::API - allows the same endpoint to be implemented - do_not_route_options! + comes after the prefix and version Grape::API - does not include OPTIONS in Allow header + `.segment` is an alias Grape::API - does not create an OPTIONS route - .default_format + is stackable + .error_format Grape::API - returns data in default format + rescues error! and return txt Grape::API - parses data in default format - .insert + rescues all errors and return :json Grape::API - inserts middleware in a specific location in the stack - format + defaults the error formatter to format Grape::API - returns raw data when content type binary + rescues all errors and return :txt with backtrace Grape::API - sets content type for json + rescues all errors with a default formatter Grape::API - sets content type for xml error + rescues all errors and return :txt Grape::API - sets content type for json error + rescues all errors and return :json with backtrace + class Grape::API - does not include extension in id + returns a custom error format + with json format Grape::API - sets content type for txt format + rescues error! called with a string and returns json Grape::API - streams the content of the file with stream + rescues error! called with a hash and returns json Grape::API - sets content type for binary format + rescues error! called with a symbol and returns json + with + class +/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2470: warning: method redefined; discarding old call +/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2447: warning: previous definition of call was here Grape::API - sets content type for xml + returns a custom error format + .version using path + behaves like versioning Grape::API - sets content type for serializable hash format + adds the prefix before the API version Grape::API -DEPRECATION WARNING: Use stream to use a Stream object. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:1243) - returns the content of the file with file + sets the API version Grape::API - does not set Cache-Control + does not overwrite version parameter with API version Grape::API - sets content type for error + is able to specify version as a nesting Grape::API - includes extension in format - env["api.format"] + is able to specify multiple versions + with before block defined within a version block Grape::API - uploads and downloads a PNG file via /attachment.png + calls before block that is defined within the version block + with different versions for the same endpoint + without a prefix Grape::API - uploads and downloads a PNG file via attachment + allows the same endpoint to be implemented + with a prefix Grape::API - uploads and downloads a Ruby file - with a custom content_type + allows the same endpoint to be implemented + with catch-all + v1 Grape::API - sets content type + finds catch all Grape::API - sets content type for error - .rescue_from klass, lambda + finds endpoint + v2 Grape::API - can execute the lambda with an argument + finds endpoint Grape::API - rescues an error with the lambda + finds catch all .helpers Grape::API - allows for modules -Grape::API - is reopenable -Grape::API - is scopable + allows multiple calls with modules and blocks Grape::API is accessible from the endpoint Grape::API - allows multiple calls with modules and blocks - .rescue_from -Grape::API - uses default_rescue_handler to handle invalid response from rescue_from + is reopenable Grape::API - rescues only certain errors if rescue_from is called with specific errors + is scopable Grape::API -caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError - can rescue exceptions raised in the formatter + allows for modules + .version using accept_version_header + behaves like versioning Grape::API - does not rescue errors when rescue_from is not set + is able to specify multiple versions Grape::API - uses custom helpers defined by using #helpers method + is able to specify version as a nesting Grape::API - mimics default ruby "rescue" handler + does not overwrite version parameter with API version Grape::API - rescues all errors with a json formatter + adds the prefix before the API version Grape::API - rescues all errors if rescue_from :all is called - with multiple apis - avoids polluting global namespace - CustomError subclass of Grape::Exceptions::Base + sets the API version + with catch-all + v1 Grape::API - rescues custom grape exceptions + finds endpoint Grape::API - does not re-raise exceptions of type Grape::Exceptions::Base - .inherited - does not override methods inherited from Class - overriding within class - allows overriding the hook - overriding via composition - allows overriding the hook - desc + finds catch all + v2 Grape::API - uses full name of parameters in nested groups + finds endpoint Grape::API - allows to set the type attribute on :group element + finds catch all + with different versions for the same endpoint + with a prefix Grape::API - empty array of routes + allows the same endpoint to be implemented + without a prefix Grape::API - merges the parameters of nested namespaces + allows the same endpoint to be implemented + with before block defined within a version block Grape::API - does not inherit param descriptions in consequent namespaces + calls before block that is defined within the version block + with non-UTF-8 characters in specified format Grape::API - empty array of routes + converts the characters + .http_basic Grape::API -DEPRECATION WARNING: /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:3053: The route_xxx methods such as route_foo have been deprecated, please use foo. (called from method_missing at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/router/route.rb:27) - describes a method + has access to the current endpoint Grape::API - does not symbolize params + can set instance variables accessible to routes Grape::API - describes methods separately + is scopable Grape::API -DEPRECATION WARNING: /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:3098: The route_xxx methods such as route_foo have been deprecated, please use foo. (called from method_missing at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/router/route.rb:27) - namespaces and describe arbitrary parameters + protects any resources on the same scope Grape::API - includes details + has access to helper methods Grape::API - describes a method with parameters + is callable via .auth as well + filters Grape::API - groups nested params and prevents overwriting of params with same name in different groups + calls filters in the correct order Grape::API - resets desc + adds a before filter to current and child namespaces only Grape::API - merges the parameters of the namespace with the parameters of the method + calls only before filters when validation fails Grape::API - has params which does not include format and version as named captures + adds a before filter Grape::API - parses parameters when no description is given - cascading - via endpoint + calls all filters when validation passes Grape::API - cascades + adds a after filter Grape::API - does not cascade - via version + adds a after_validation filter + .formatter + multiple formatters Grape::API - does not cascade + sets another formatter Grape::API - cascades - .finally - when the ensure block has no exceptions - when no errors occurs + sets one formatter + custom formatter class Grape::API - executes the ensure code - with a helper + uses custom formatter Grape::API - has access to the helper - when a handled error occurs inside the API call + uses json + custom formatter Grape::API - executes the ensure code - when an unhandled occurs inside the API call + uses custom formatter Grape::API - executes the ensure code - when no API call is made + uses json + .route + plain Grape::API - has not executed the ensure code - .version - when not defined + provides access to route info + with desc Grape::API - returns nil - when defined + returns route description Grape::API - returns version value - .rescue_from klass, with: :method_name + returns route parameters + .format + :txt Grape::API - correctly chooses exception handler if :all handler is specified + does not force txt with an extension Grape::API - aborts if the specified method name does not exist + forces txt from a non-accepting header Grape::API - rescues an error with the specified method name - with unsafe HTML format specified + forces txt without an extension + :json Grape::API - escapes the HTML - filters + raised :error from middleware Grape::API - adds a after_validation filter + can be overwritten with an explicit content type Grape::API - calls all filters when validation passes + does not force json with an extension Grape::API - calls filters in the correct order + forces json from a non-accepting header Grape::API - calls only before filters when validation fails + forces json without an extension + :xml Grape::API - adds a after filter + array Grape::API - adds a before filter to current and child namespaces only + raised :error from middleware Grape::API - adds a before filter - .rescue_from klass, block + string Grape::API - rescues Exception - custom errors + hash + :serializable_hash Grape::API - rescues a subclass of an error by default + array Grape::API - does not rescue a different error + root Grape::API - rescues a specific error + instance + :txt only Grape::API - rescues multiple specific errors + does not accept extensions other than specified Grape::API - rescues an error via rescue_from :all - .default_error_status + forces txt from a non-accepting header Grape::API - allows setting default_error_status + forces txt without an extension Grape::API - uses the default error status in error! + accepts specified extension + .rescue_from klass, with: :method_name Grape::API - has a default error status - .formatter - multiple formatters + aborts if the specified method name does not exist Grape::API - sets another formatter + rescues an error with the specified method name Grape::API - sets one formatter - custom formatter + correctly chooses exception handler if :all handler is specified + instance_for_rack + when the app was mounted Grape::API - uses json + returns the first mounted instance + when the app was not mounted Grape::API - uses custom formatter - custom formatter class + returns the base_instance + .configure Grape::API - uses custom formatter + allows configuring the api + when given a block Grape::API - uses json - lifecycle - when the api_call has an exception + calls the block passing the config Grape::API - follows the errored life_cycle (skips after) - when the api_call succeeds + returns self + when not given a block Grape::API - follows the standard life_cycle - when the api_call fails validation + returns a configuration object + .logger Grape::API - follows the failed_validation cycle (skips after_validation, api_call & after) - when the api_call has a controlled error + returns an instance of Logger class by default Grape::API - follows the errored life_cycle (skips after) - .call - it does not add to the app setup + does not unnecessarily retain duplicate setup blocks + with a custom logger + exposes its interaface + desc Grape::API - calls the app - .namespace + merges the parameters of the namespace with the parameters of the method Grape::API - `.group` is an alias + resets desc Grape::API - `.segment` is an alias + merges the parameters of nested namespaces Grape::API - accepts path segments correctly +DEPRECATION WARNING: /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:3098: The route_xxx methods such as route_foo have been deprecated, please use foo. (called from method_missing at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/router/route.rb:27) + namespaces and describe arbitrary parameters Grape::API - `.resource` is an alias + includes details Grape::API - comes after the prefix and version + describes methods separately Grape::API - is callable with nil just to push onto the stack + does not symbolize params Grape::API - is retrievable and converted to a path + empty array of routes Grape::API - cancels itself after the block is over + has params which does not include format and version as named captures Grape::API - is stackable + allows to set the type attribute on :group element Grape::API - `.resources` is an alias - .version using accept_version_header - behaves like versioning + uses full name of parameters in nested groups Grape::API - sets the API version + describes a method with parameters Grape::API - does not overwrite version parameter with API version + groups nested params and prevents overwriting of params with same name in different groups Grape::API - is able to specify version as a nesting +DEPRECATION WARNING: /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:3053: The route_xxx methods such as route_foo have been deprecated, please use foo. (called from method_missing at /build/reproducible-path/ruby-grape-2.0.0/lib/grape/router/route.rb:27) + describes a method Grape::API - adds the prefix before the API version + parses parameters when no description is given Grape::API - is able to specify multiple versions - with different versions for the same endpoint - with a prefix + empty array of routes Grape::API - allows the same endpoint to be implemented - without a prefix + does not inherit param descriptions in consequent namespaces + routes + single method api structure Grape::API - allows the same endpoint to be implemented - with catch-all - v1 + returns one route + api structure with multiple apis Grape::API - finds catch all + sets params + api with a custom route setting Grape::API - finds endpoint - v2 + exposed + status Grape::API - finds endpoint + can be set to arbitrary Integer value Grape::API - finds catch all - with before block defined within a version block + can be set with a status code symbol + empty api structure Grape::API - calls before block that is defined within the version block - .prefix + returns an empty array of routes + api structure with additional parameters Grape::API - supports OPTIONS + splits a string with limit Grape::API - disallows POST + splits a string Grape::API - routes through with the prefix + sets params + api structure with two versions and a namespace Grape::API - routes root through with the prefix - .endpoints + sets prefix Grape::API - adds one for each route created - body - plain text + returns the latest version set Grape::API - returns blank body - false + sets a nested namespace Grape::API - returns blank body - .http_basic + sets route versions Grape::API - is scopable + returns versions Grape::API - has access to the current endpoint + sets route paths + api structure with an api without params Grape::API - protects any resources on the same scope + sets params + .mount + with a bare rack app Grape::API - is callable via .auth as well + is able to cascade Grape::API - can set instance variables accessible to routes + makes a bare Rack app available at the endpoint Grape::API - has access to helper methods - const_missing - raises an error - .scope + anchors the routes, passing all subroutes to it + mounting an API Grape::API - scopes the various settings - .mount - without a hash + mounts multiple versioned APIs with nested resources Grape::API - calls through setting the route to "/" - mounting an API + applies auth to a mounted API with nested resources Grape::API - applies the settings of the mounting api + mounts on a path Grape::API mounts a versioned API with nested resources Grape::API mounts a prefixed API with nested resources Grape::API - responds to options with path versioning -Grape::API - applies auth to a mounted API with nested resources -Grape::API - mounts on a path + recognizes potential versions with mounted path Grape::API applies the settings to nested mounted apis Grape::API - recognizes potential versions with mounted path + collects the routes of the mounted api Grape::API - mounts multiple versioned APIs with nested resources + responds to options with path versioning Grape::API applies format to a mounted API with nested resources Grape::API + applies the settings of the mounting api +Grape::API mounts on a nested path Grape::API responds to options -Grape::API - collects the routes of the mounted api - when including a module - correctlies include module in nested mount when mounting class extends a subclass of Grape::API mounts APIs with the same superclass when some rescues are defined by mounted Grape::API - prefers more specific rescues defined by mounted -Grape::API inherits parent rescues Grape::API - prefers rescues defined by mounted if they rescue similar error class -Grape::API prefers rescues defined by mounted even if outer is more specific - with a bare rack app -Grape::API - makes a bare Rack app available at the endpoint Grape::API - is able to cascade -Grape::API - anchors the routes, passing all subroutes to it - .compile! -Grape::API - requires the grape/eager_load file -Grape::API - compiles the instance for rack! - .compile -Grape::API - sets the instance - .change! -Grape::API - invalidates any compiled instance - .version using path - behaves like versioning -Grape::API - is able to specify multiple versions -Grape::API - sets the API version -Grape::API - is able to specify version as a nesting -Grape::API - adds the prefix before the API version -Grape::API - does not overwrite version parameter with API version - with catch-all - v2 -Grape::API - finds endpoint -Grape::API - finds catch all - v1 -Grape::API - finds endpoint -Grape::API - finds catch all - with before block defined within a version block -Grape::API - calls before block that is defined within the version block - with different versions for the same endpoint - without a prefix -Grape::API - allows the same endpoint to be implemented - with a prefix -Grape::API - allows the same endpoint to be implemented - custom route helpers on nested APIs - returns the given id when it is valid - returns an error when the id is bad - .represent + prefers more specific rescues defined by mounted Grape::API - requires a :with option + prefers rescues defined by mounted if they rescue similar error class + when including a module + correctlies include module in nested mount + without a hash Grape::API - adds the association to the :representations setting + calls through setting the route to "/" .route - plain Grape::API - provides access to route info - with desc -Grape::API - returns route parameters -Grape::API - returns route description - .rescue_from :grape_exceptions -Grape::API - rescues grape exceptions -Grape::API - rescues grape exceptions with a user-defined handler - .route_param -Grape::API - defines requirements with a single hash + 405 responses includes an Content-Type header Grape::API - adds a parameterized route segment namespace - with param type definitions + allows for catch-all in a namespace Grape::API - is used by passing to options - .route + allows and properly constrain a GET method Grape::API - allows for multipart paths + allows for no path Grape::API - returns a 201 response code for POST by default + runs only the before filter on 405 bad method Grape::API - runs before filter exactly once on 405 bad method + allows and properly constrain a PUT method Grape::API - allows for catch-all in a namespace + allows and properly constrain a PATCH method Grape::API allows for :any as a verb Grape::API - allows for multiple verbs -Grape::API - allows and properly constrain a GET method -Grape::API - 405 responses includes an Allow header specifying supported methods + allows for multipart paths Grape::API allows for multiple paths Grape::API overwrites the default HEAD request Grape::API - allows and properly constrain a PUT method + returns a 201 response code for POST by default Grape::API - allows and properly constrain a PATCH method + allows and properly constrain a DELETE method Grape::API - 405 responses includes an Content-Type header + 405 responses includes an Allow header specifying supported methods Grape::API - allows and properly constrain a OPTIONS method + allows for format without corrupting a param Grape::API - runs only the before filter on 405 bad method + allows and properly constrain a POST method Grape::API - handles empty calls + runs before filter exactly once on 405 bad method Grape::API - runs all filters and body with a custom OPTIONS method + handles empty calls Grape::API returns a 405 for an unsupported method with an X-Custom-Header Grape::API - allows for no path -Grape::API - allows for format without corrupting a param + allows and properly constrain a OPTIONS method Grape::API allows for format in namespace with no path Grape::API - allows and properly constrain a DELETE method -Grape::API allows and properly constrain a HEAD method Grape::API - allows and properly constrain a POST method - when format is xml -Grape::API - returns a 405 for an unsupported method - when accessing env + runs all filters and body with a custom OPTIONS method Grape::API - returns a 405 for an unsupported method + allows for multiple verbs root routes should work with Grape::API Accept-Version header versioned APIs Grape::API header versioned APIs Grape::API + param versioned APIs +Grape::API unversioned APIs Grape::API header versioned APIs with multiple headers -Grape::API - param versioned APIs path versioned APIs - when a single version provided -Grape::API - with a format -Grape::API - without a format when array of versions provided Grape::API is expected to eql "root" Grape::API is expected to eql "root" - put + when a single version provided Grape::API - allows a(n) Symbol json object in params + without a format Grape::API - stores input in api.request.input + with a format + allows HEAD on a GET request that Grape::API - stores input in api.request.input + has an empty body +Grape::API + returns a 200 + post Grape::API stores input in api.request.input Grape::API @@ -4585,29 +4510,35 @@ Grape::API stores input in api.request.input Grape::API - allows a(n) NilClass json object in params + allows a(n) Float json object in params Grape::API - allows a(n) Integer json object in params + stores input in api.request.input Grape::API - allows a(n) TrueClass json object in params + allows a(n) Array json object in params Grape::API stores input in api.request.input Grape::API - allows a(n) String json object in params + stores input in api.request.input Grape::API - allows a(n) Float json object in params + allows a(n) Symbol json object in params Grape::API allows a(n) FalseClass json object in params Grape::API - allows a(n) Array json object in params + allows a(n) NilClass json object in params Grape::API stores input in api.request.input Grape::API - stores input in api.request.input + allows a(n) Integer json object in params Grape::API allows a(n) Hash json object in params Grape::API + allows a(n) String json object in params +Grape::API + stores input in api.request.input +Grape::API stores input in api.request.input +Grape::API + allows a(n) TrueClass json object in params chunked transfer encoding Grape::API stores input in api.request.input @@ -4645,66 +4576,49 @@ returns a 204 adds an OPTIONS route for namespaced endpoints that Grape::API - has no Content-Length -Grape::API - has no Content-Type -Grape::API - calls the inner before filter -Grape::API - has an empty body -Grape::API has an Allow header Grape::API - calls the outer before filter + calls the inner before filter Grape::API returns a 204 - allows HEAD on a GET request that -Grape::API - returns a 200 Grape::API has an empty body - format -Grape::API - allows .txt Grape::API - allows .json - adds a 405 Not Allowed route that -Grape::API - has a X-Custom-Header -Grape::API - returns a 405 + calls the outer before filter Grape::API - has an Allow header + has no Content-Type Grape::API - contains error message in body + has no Content-Length when hook behaviour is controlled by attributes on the route - when HTTP method is defined with attribute -Grape::API - responds with the defined error in the before hook - when HTTP method is not defined + when HEAD is called for the defined GET Grape::API - responds with a 405 status + responds with 401 because before expectations in before hooks are not met when HTTP method is defined and everything is like the before hooks expect Grape::API ends up in the endpoint - when HEAD is called for the defined GET + when HTTP method is not defined Grape::API - responds with 200 because before hooks are not called + responds with a 405 status when HTTP method is defined and the underlying before hook expectation is not met Grape::API ends up in the endpoint + when HTTP method is defined with attribute +Grape::API + responds with the defined error in the before hook when HEAD is called for the defined GET Grape::API - responds with 401 because before expectations in before hooks are not met - post + responds with 200 because before hooks are not called + when accessing env Grape::API - stores input in api.request.input + returns a 405 for an unsupported method + when format is xml Grape::API - allows a(n) Hash json object in params + returns a 405 for an unsupported method + put Grape::API - stores input in api.request.input + allows a(n) FalseClass json object in params Grape::API - allows a(n) Symbol json object in params + stores input in api.request.input Grape::API stores input in api.request.input Grape::API @@ -4712,27 +4626,31 @@ Grape::API stores input in api.request.input Grape::API - allows a(n) TrueClass json object in params + stores input in api.request.input Grape::API stores input in api.request.input Grape::API stores input in api.request.input Grape::API - allows a(n) NilClass json object in params + allows a(n) String json object in params Grape::API stores input in api.request.input Grape::API stores input in api.request.input Grape::API - allows a(n) Integer json object in params -Grape::API allows a(n) Array json object in params Grape::API allows a(n) Float json object in params Grape::API - allows a(n) String json object in params + allows a(n) Symbol json object in params Grape::API - allows a(n) FalseClass json object in params + allows a(n) Integer json object in params +Grape::API + allows a(n) TrueClass json object in params +Grape::API + allows a(n) NilClass json object in params +Grape::API + allows a(n) Hash json object in params chunked transfer encoding Grape::API stores input in api.request.input @@ -4764,482 +4682,600 @@ Grape::API does not call after_validation hook Grape::API + does not call before_validation hook +Grape::API returns a 204 Grape::API + has an Allow header +Grape::API calls after hook Grape::API - does not call before_validation hook + has no Content-Length +Grape::API + has no Content-Type Grape::API has an empty body Grape::API + calls before hook + format +Grape::API + allows .json +Grape::API + allows .txt + adds a 405 Not Allowed route that +Grape::API + contains error message in body +Grape::API + returns a 405 +Grape::API + has a X-Custom-Header +Grape::API has an Allow header + .compile Grape::API - has no Content-Length + sets the instance + .inherited + does not override methods inherited from Class + overriding via composition + allows overriding the hook + overriding within class + allows overriding the hook + cascading + via version Grape::API - calls before hook + does not cascade Grape::API - has no Content-Type - .error_format + cascades + via endpoint Grape::API - rescues all errors and return :json with backtrace + does not cascade Grape::API - rescues all errors and return :txt with backtrace + cascades + catch-all Grape::API - rescues all errors and return :json + anchor=true Grape::API - defaults the error formatter to format + anchor=false + const_missing + raises an error + .rescue_from Grape::API - rescues all errors with a default formatter + rescues all errors with a json formatter Grape::API - rescues error! and return txt +caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError + can rescue exceptions raised in the formatter Grape::API - rescues all errors and return :txt - class + rescues all errors if rescue_from :all is called Grape::API - returns a custom error format - with json format + uses default_rescue_handler to handle invalid response from rescue_from Grape::API - rescues error! called with a hash and returns json + uses custom helpers defined by using #helpers method Grape::API - rescues error! called with a symbol and returns json + rescues only certain errors if rescue_from is called with specific errors Grape::API - rescues error! called with a string and returns json - with - class -/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2470: warning: method redefined; discarding old call -/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2447: warning: previous definition of call was here + does not rescue errors when rescue_from is not set Grape::API - returns a custom error format + mimics default ruby "rescue" handler + CustomError subclass of Grape::Exceptions::Base +Grape::API + does not re-raise exceptions of type Grape::Exceptions::Base +Grape::API + rescues custom grape exceptions + with multiple apis + avoids polluting global namespace + .rescue_from klass, rescue_subclasses: boolean +Grape::API + does not rescue child errors if rescue_subclasses is false +Grape::API + sets rescue_subclasses to true by default +Grape::API + rescues error as well as subclass errors with rescue_subclasses option set + with json default_error_formatter +Grape::API + returns json error + .rescue_from klass, lambda +Grape::API + rescues an error with the lambda +Grape::API + can execute the lambda with an argument + .call + it does not add to the app setup +Grape::API + calls the app + do_not_route_head! +Grape::API + options does not contain HEAD +Grape::API + does not allow HEAD on a GET request + .change! +Grape::API + invalidates any compiled instance + .version + when defined +Grape::API + returns version value + when not defined +Grape::API + returns nil + .rescue_from klass, block +Grape::API + rescues Exception + custom errors +Grape::API + rescues a specific error +Grape::API + rescues a subclass of an error by default +Grape::API + rescues multiple specific errors +Grape::API + rescues an error via rescue_from :all +Grape::API + does not rescue a different error + .route_param +Grape::API + defines requirements with a single hash +Grape::API + adds a parameterized route segment namespace + with param type definitions +Grape::API + is used by passing to options + .represent +Grape::API + adds the association to the :representations setting +Grape::API + requires a :with option + do_not_route_options! +Grape::API + does not include OPTIONS in Allow header +Grape::API + does not create an OPTIONS route + .scope +Grape::API + scopes the various settings .version using header behaves like versioning Grape::API - adds the prefix before the API version -Grape::API - is able to specify version as a nesting + is able to specify multiple versions Grape::API sets the API version Grape::API - is able to specify multiple versions + is able to specify version as a nesting Grape::API does not overwrite version parameter with API version +Grape::API + adds the prefix before the API version + with before block defined within a version block +Grape::API + calls before block that is defined within the version block + with different versions for the same endpoint + with a prefix +Grape::API + allows the same endpoint to be implemented + without a prefix +Grape::API + allows the same endpoint to be implemented with catch-all - v2 + v1 Grape::API finds endpoint Grape::API finds catch all - v1 + v2 Grape::API finds endpoint Grape::API finds catch all - with before block defined within a version block + .compile! Grape::API - calls before block that is defined within the version block - with different versions for the same endpoint - without a prefix + compiles the instance for rack! Grape::API - allows the same endpoint to be implemented - with a prefix + requires the grape/eager_load file + format Grape::API - allows the same endpoint to be implemented - .content_type + sets content type for serializable hash format Grape::API - sets additional content-type + returns raw data when content type binary Grape::API - removes existing content types + streams the content of the file with stream Grape::API - allows to override content-type - routes - single method api structure + sets content type for error Grape::API - returns one route - api with a custom route setting + sets content type for xml error Grape::API - exposed - api structure with two versions and a namespace + does not include extension in id Grape::API - returns versions + does not set Cache-Control Grape::API - returns the latest version set + sets content type for binary format Grape::API - sets route versions + sets content type for txt format Grape::API - sets a nested namespace +DEPRECATION WARNING: Use stream to use a Stream object. (called from block (4 levels) in at /build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:1243) + returns the content of the file with file Grape::API - sets route paths + sets content type for xml Grape::API - sets prefix - empty api structure + sets content type for json error Grape::API - returns an empty array of routes - api structure with multiple apis + includes extension in format Grape::API - sets params - status + sets content type for json + env["api.format"] Grape::API - can be set to arbitrary Integer value + uploads and downloads a PNG file via attachment Grape::API - can be set with a status code symbol - api structure with additional parameters + uploads and downloads a Ruby file Grape::API - splits a string + uploads and downloads a PNG file via /attachment.png + with a custom content_type Grape::API - sets params + sets content type for error Grape::API - splits a string with limit - api structure with an api without params + sets content type + .endpoints Grape::API - sets params - catch-all + adds one for each route created + .endpoint Grape::API - anchor=true + path + .default_error_status Grape::API - anchor=false - do_not_route_head! + uses the default error status in error! Grape::API - does not allow HEAD on a GET request + allows setting default_error_status Grape::API - options does not contain HEAD - .logger + has a default error status + .insert Grape::API - does not unnecessarily retain duplicate setup blocks + inserts middleware in a specific location in the stack + .prefix Grape::API - returns an instance of Logger class by default - with a custom logger - exposes its interaface - .endpoint + routes through with the prefix Grape::API - path - with json default_error_formatter + supports OPTIONS Grape::API - returns json error - http_codes + routes root through with the prefix Grape::API - is used as presenter + disallows POST + .version using param + behaves like versioning Grape::API - presented with - with non-UTF-8 characters in specified format + sets the API version Grape::API - converts the characters - .rescue_from klass, rescue_subclasses: boolean + adds the prefix before the API version Grape::API - sets rescue_subclasses to true by default + does not overwrite version parameter with API version Grape::API - rescues error as well as subclass errors with rescue_subclasses option set + is able to specify multiple versions Grape::API - does not rescue child errors if rescue_subclasses is false - instance_for_rack - when the app was not mounted + is able to specify version as a nesting + with different versions for the same endpoint + without a prefix Grape::API - returns the base_instance - when the app was mounted + allows the same endpoint to be implemented + with a prefix Grape::API - returns the first mounted instance + allows the same endpoint to be implemented + with before block defined within a version block +Grape::API + calls before block that is defined within the version block + with catch-all + v2 +Grape::API + finds endpoint +Grape::API + finds catch all + v1 +Grape::API + finds endpoint +Grape::API + finds catch all + with unsafe HTML format specified +Grape::API + escapes the HTML + custom route helpers on nested APIs + returns the given id when it is valid + returns an error when the id is bad -Grape::Exceptions::UnsupportedGroupType - Grape::Exceptions::UnsupportedGroupTypeError - behaves like deprecated class - raises an ActiveSupport::DeprecationException - #message - is expected to include "group type must be Array, Hash, JSON or Array[JSON]" +Grape::Util::ReverseStackableValues + #to_hash + returns a Hash representation + #[]= + pushes further values + sets a value + can handle array values + #clone + copies all values + complex (i.e. not primitive) data types (ex. middleware, please see bug #930) + copies values; does not duplicate them + #delete + deletes a key + does not delete parent values + #[] + combines parent and actual values (actual first) + returns an array of values + returns parent value when no value is set + parent values are not changed + #keys + returns merged keys with parent + returns all keys + +Rack::Sendfile + when calling sendfile + contains Sendfile headers + when streaming non file content + not contains Sendfile headers + +Grape::Middleware::Versioner::Param + cuts (only) the version out of the params + sets the API version based on the default param (apiver) + provides a nil version if no version is given + with specified versions + throws an error if a non-allowed version is specified + allows versions that have been specified + with specified parameter name + sets the API version based on the custom parameter name + does not set the API version based on the default param + when no version is set + returns a 200 (matches the first version found) + when there are multiple versions without a custom param + responds correctly to a v2 request + responds correctly to a v1 request + when there are multiple versions with a custom param + responds correctly to a v2 request + responds correctly to a v1 request + +Grape::DSL::Validations + .reset_validations! + resets declared params + does not reset documentation description + resets params + resets validations + .params + evaluates block + returns a ParamsScope + +Grape::Validations::Validators::AtLeastOneOfValidator + #validate! + when restricted params are deeply nested + when none of them are present + returns a validation error with full names of the params + when at least one of them is present + does not return a validation error + when all restricted params are present + does not return a validation error + mixed with other params + does not return a validation error + when none of the restricted params is selected + returns a validation error + when custom message is specified + returns a validation error + when restricted params are nested inside array + when none of them are present + returns a validation error with full names of the params + when at least one of them is present + does not return a validation error + when restricted params are nested inside hash + when none of them are present + returns a validation error with full names of the params + when at least one of them is present + does not return a validation error + when a subset of restricted params are present + does not return a validation error + when exactly one of the restricted params is selected + does not return a validation error Grape::Endpoint + #declared; mixed nesting + can access parent route_param #declared; from a nested mounted endpoint can access parent attributes - #declared; with multiple route_param - return :compositor_id for mounter in route_param - return only :id without :artist_id - return :filter and :id parameters in declared for second enpoint inside route_param - return only :artist_id without :id + parameter renaming + with a renamed hash with nested renamed parameter + ignores the renamed parameter (as name, 1) + validates the renamed parameter correctly (original name) + maps the renamed parameter correctly (original name) + ignores the renamed parameter (as name, 3) + generates the correct parameter names for documentation + ignores the renamed parameter (as name, 2) + with a renamed root parameter + maps the renamed parameter correctly (original name) + generates the correct parameter names for documentation + ignores the renamed parameter (as name) + validates the renamed parameter correctly (original name) + with a deeply nested parameter structure + does not modify the request params + maps the renamed parameter correctly + maps no parameters when none are given + generates the correct parameter names for documentation + with a renamed hash with nested parameters + generates the correct parameter names for documentation + maps the renamed parameter correctly (original name) + ignores the renamed parameter (as name) + validates the renamed parameter correctly (original name) #declared - includes missing attributes with defaults when there are nested hashes - has a optional param with default value all the time - filters out any additional params that are given does not include missing attributes when there are nested hashes - includes attributes with value that evaluates to false - shows nil for multiple allowed types if include_missing is true - includes attributes with value that evaluates to nil stringifies if that option is passed - shows nil for nested params if include_missing is true + includes attributes with value that evaluates to false + filters out any additional params that are given does not include missing attributes if that option is passed - has as many keys as there are declared params - builds nested params when given array + has a optional param with default value all the time + builds nested params + includes missing attributes with defaults when there are nested hashes builds arrays correctly + includes attributes with value that evaluates to nil + builds nested params when given array + shows nil for multiple allowed types if include_missing is true + shows nil for nested params if include_missing is true does not work in a before filter does not include renamed missing attributes if that option is passed - builds nested params + has as many keys as there are declared params when the param is missing and include_missing=false sets nested objects to be nil when params are not built with default class - returns an object that corresponds with the params class - hash with indifferent access - returns an object that corresponds with the params class - hash -W, [2024-04-23T13:16:34.743347 #4092473] WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#first defined in Enumerable. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method. -W, [2024-04-23T13:16:34.744804 #4092473] WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#first defined in Enumerable. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method. +W, [2025-05-27T21:41:31.447244 #4091947] WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#first defined in Enumerable. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method. +W, [2025-05-27T21:41:31.447840 #4091947] WARN -- : You are setting a key that conflicts with a built-in method Hashie::Mash#first defined in Enumerable. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method. returns an object that corresponds with the params class - hashie mash + returns an object that corresponds with the params class - hash + returns an object that corresponds with the params class - hash with indifferent access when the param is missing and include_missing=true - sets objects with type=Hash to be a hash includes all declared children when type=Hash - sets objects with type=Set to be a set + sets objects with type=Hash to be a hash sets objects with type=Array to be an array - parameter renaming - with a renamed hash with nested parameters - validates the renamed parameter correctly (original name) - ignores the renamed parameter (as name) - maps the renamed parameter correctly (original name) - generates the correct parameter names for documentation - with a renamed root parameter - validates the renamed parameter correctly (original name) - maps the renamed parameter correctly (original name) - ignores the renamed parameter (as name) - generates the correct parameter names for documentation - with a renamed hash with nested renamed parameter - validates the renamed parameter correctly (original name) - ignores the renamed parameter (as name, 2) - ignores the renamed parameter (as name, 3) - ignores the renamed parameter (as name, 1) - maps the renamed parameter correctly (original name) - generates the correct parameter names for documentation - with a deeply nested parameter structure - does not modify the request params - maps no parameters when none are given - maps the renamed parameter correctly - generates the correct parameter names for documentation - #declared; mixed nesting - can access parent route_param + sets objects with type=Set to be a set #declared; call from child namespace is expected to eq 200 - with include_parent_namespaces: true - returns declared parameters from every parent namespace with include_parent_namespaces: false returns declared parameters only from current namespace without declaration returns all requested parameters + with include_parent_namespaces: true + returns declared parameters from every parent namespace + #declared; with multiple route_param + return :filter and :id parameters in declared for second enpoint inside route_param + return only :artist_id without :id + return :compositor_id for mounter in route_param + return only :id without :artist_id -Grape::Exceptions::ValidationErrors - message - is not repeated - is expected to eq 1 - is expected to include "FooBar is invalid" - #full_messages - when attributes is an array of symbols - returns an array with an error full message - with errors - returns an array with each errors full message - initialize - assigns headers through base class - api - can return structured json with separate fields +Grape::DSL::Callbacks + .before_validation + adds a block to "before_validation" + .after_validation + adds a block to "after_validation" + .after + adds a block to "after" + .before + adds a block to "before" -Grape::Validations::ParamsScope::AttributesDoc - #document - documentation is enabled - documents attributes - behaves like an optional doc attribute - does not mention it - nil as a default value - is still documented - behaves like an optional doc attribute - does not mention it - behaves like an optional doc attribute - does not mention it - false as a default value - is still documented - behaves like an optional doc attribute - does not mention it - the description key instead of desc - adds the given description - behaves like an optional doc attribute - does not mention it - documentation is disabled - does not document attributes - #extract_details - tells when attributes are required - does not clean up doc attrs mandatory for validators - cleans up doc attrs needed for documentation only +Grape::Exceptions::InvalidVersionerOption + #message + contains the problem in the message + +Grape::Middleware::Versioner::Header + succeeds if :strict is set to false + succeeds if :strict is not set + succeeds if :strict is set to false and given an invalid header + api.version + is set if format provided + fails with 406 Not Acceptable if version is invalid + is set + when :strict and cascade: false + fails with 406 Not Acceptable if header is empty + fails with 406 Not Acceptable if header is application/xml + succeeds if proper header is set + fails with 406 Not Acceptable if header contains a single invalid accept + fails with 406 Not Acceptable if header is not set + api.vendor + fails with 406 Not Acceptable if vendor is invalid + is set if format provided + is set + when version is set + is set if format provided + is set + fails with 406 Not Acceptable if vendor is invalid + api.format + is nil if not provided + is set + when version is set to v1 + is set + is nil if not provided + when version is set to v1 + is set + is nil if not provided + when there are multiple versions with complex vendor specified with rescue_from :all + with header versioned endpoints and a rescue_all block defined + responds correctly to a v1 request + responds correctly to a v2 request + api.type and api.subtype + sets preferred type and subtype + sets preferred type + sets type and subtype to first choice of content type if no preference given + with missing vendor option + fails + when multiple versions are specified + succeeds with v2 + fails with another version + succeeds with v1 + when :strict is set + succeeds if proper header is set + fails with 406 Not Acceptable if header is empty + fails with 406 Not Acceptable if header is not set + +Grape::API + remounting an API + with dynamic configuration + when using an expression derived from a configuration + mounts the endpoint with the name + does not mount the endpoint with a null name + when the expression lives in a namespace + mounts the endpoint with the name + does not mount the endpoint with a null name + when executing a standard block within a `mounted` block with all dynamic params + mounts the API and obtains the description and headers definition + when the configuration is read within a namespace + will use the dynamic configuration on all routes + when the configuration is read within the response block + will use the dynamic configuration on all routes + when the configuration is read in a helper + will use the dynamic configuration on all routes + when executing a custom block on mount + mounts the endpoints only when configured to do so + on the DescSCope + mounts the endpoint with the appropiate tags + when the params are configured via a configuration + when the configured param is my_attr + requires the configured params + when mounting an endpoint conditional on a configuration + mounts the endpoints only when configured to do so + when the configuration is part of the arguments of a method + mounts the endpoint in the location it is configured + when the configuration is the value in a key-arg pair + takes the param from the configuration + a very complex configuration example + when the namespace should be mounted + gets a response + when should be mounted is nil + gets a response + when it should not be mounted + gets a response + on the ParamScope + mounts the endpoint in the location it is configured + on dynamic checks + can read the configuration on lambdas + with a defined route + when mounting on namespace + can access the votes in both places + when mounting twice + can access the votes in both places + when mounting one instance + can access the endpoint Grape::Validations::Validators::PresenceValidator - with a required non-empty string - requires when missing - valid when set - requires when empty - with a required regexp parameter supplied in the POST body - validates id - with required parameters and no type - validates name, company - with a custom type - does not validate their type when it is missing - with nested parameters - validates nested parameters without validation does not validate for any params + with nested parameters + validates nested parameters + with required parameters and no type + validates name, company + with multiple parameters per requires + validates for all defined params with reused parameter documentation once required and once optional works with optional works with required + with triply nested required parameters + validates triple nested parameters + with a required regexp parameter supplied in the POST body + validates id with a custom validation message - requires when missing + requires when empty valid when set + requires when missing + with a required non-empty string requires when empty - with multiple parameters per requires - validates for all defined params - with triply nested required parameters - validates triple nested parameters - -Grape::Util::StackableValues - #keys - returns merged keys with parent - returns all keys - #to_hash - returns a Hash representation - #delete - does not delete parent values - deletes a key - #[] - returns parent value when no value is set - combines parent and actual values - returns an array of values - parent values are not changed - #[]= - sets a value - pushes further values - can handle array values - #clone - copies all values - complex (i.e. not primitive) data types (ex. middleware, please see bug #930) - copies values; does not duplicate them - -Grape::Exceptions::Validation - fails when params are missing - when message is a String - does not store the message_key - when message is a symbol - stores message_key - -Grape::Middleware::Auth::Strategies - Basic Auth - throws a 401 is wrong auth is given - authenticates if given valid creds - throws a 401 if no auth is given - -Grape::Endpoint - put - responds - get - responds without ext - -Grape::Endpoint - put - responds - get - responds without ext - responds with ext - -Grape::Middleware::Versioner::Path - sets the API version based on the first path - does not cut the version out of the path - provides a nil version if no path is given - with specified versions as [:v1, "v2"] - throws an error if a non-allowed version is specified - allows versions that have been specified - with specified versions as ["v1", "v2"] - allows versions that have been specified - throws an error if a non-allowed version is specified - with prefix, but requested version is not matched - recognizes potential version - with a pattern - sets the version if it matches - ignores the version if it fails to match - with specified versions as [:v1, :v2] - allows versions that have been specified - throws an error if a non-allowed version is specified - with mount path - recognizes potential version - with specified versions as ["v1", :v2] - throws an error if a non-allowed version is specified - allows versions that have been specified - -Grape::Exceptions::Base - #to_s - is expected to eq "a_message" - #compose_message - when I18n does not enforce available locales - when the fallback locale is not available - returns the translated message - when the fallback locale is available - returns the translated message - when I18n enforces available locales - when the fallback locale is available - returns the translated message - when the fallback locale is not available - returns the translation string - #message - is expected to eq "a_message" - -Grape::Validations - using a custom validator with message_key - fails with message - using a custom length validator - under 140 characters - specified in the query string - over 140 characters - Grape::Validations::Base - behaves like deprecated class - raises an ActiveSupport::DeprecationException - using a custom body-only validator - ignores field in query - allows field in body - using a custom request/param validator - does not fail when we send non-admin fields only - fails when we send admin fields and we are not admin - does not fail when we send admin fields and we are admin - fail when non-admin user sets an admin field - does not fail when we send non-admin and admin=false fields only - -Grape -/build/reproducible-path/ruby-grape-2.0.0/lib/grape/eager_load.rb:20: warning: possibly useless use of :: in void context - eager_load! - compile! - -Grape::DSL::Settings - #api_class_setting - delegates to get_or_set - complex scenario - plays well - #namespace_inheritable - delegates to get_or_set - inherits values from surrounding namespace - #namespace_stackable - delegates to get_or_set - stacks values from surrounding namespace - #within_namespace - calls start and end for a namespace - returns the last result - #unset_route_setting - delegates to unset - #namespace_setting - delegates to get_or_set - sets a value until the end of a namespace - resets values after leaving nested namespaces - #unset_namespace_stackable - delegates to unset - #unset_global_setting - delegates to unset - #global_setting - delegates to get_or_set - #route_setting - sets a value until the next route - delegates to get_or_set - #unset_namespace_inheritable - delegates to unset - #unset - deletes a key from settings - #unset_namespace_setting - delegates to unset - #unset_api_class_setting - delegates to unset - #get_or_set - returns a value when nil is new value is provided - sets a values + requires when missing + valid when set + with a custom type + does not validate their type when it is missing Pending: (Failures listed here are expected and do not affect your suite's status) @@ -5247,10 +5283,10 @@ # Temporarily skipped with xit # ./spec/integration/multi_json/json_spec.rb:4 -Finished in 1 minute 14.46 seconds (files took 12.94 seconds to load) +Finished in 5.98 seconds (files took 1.31 seconds to load) 2171 examples, 0 failures, 1 pending -Randomized with seed 16708 +Randomized with seed 35329 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -5281,12 +5317,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4076524/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/4035971 and its subdirectories -I: Current time: Tue Apr 23 13:17:13 -12 2024 -I: pbuilder-time-stamp: 1713921433 +I: removing directory /srv/workspace/pbuilder/4076524 and its subdirectories +I: Current time: Tue May 27 21:41:36 +14 2025 +I: pbuilder-time-stamp: 1748331696