Diff of the two buildlogs: -- --- b1/build.log 2024-03-19 05:28:04.571054867 +0000 +++ b2/build.log 2024-03-19 05:28:48.565183569 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Mar 18 17:26:01 -12 2024 -I: pbuilder-time-stamp: 1710825961 +I: Current time: Tue Apr 22 01:51:07 +14 2025 +I: pbuilder-time-stamp: 1745236267 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -32,54 +32,86 @@ 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/41599/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/108426/tmp/hooks/D01_modify_environment starting +debug: Running on ionos6-i386. +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 Apr 21 11:51 /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/108426/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/108426/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + 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]="i686-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=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='be2c49354ed142f4a672e776206c5e42' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='41599' - PS1='# ' - PS2='> ' + INVOCATION_ID=5a6509f5d37c4616b9612f7f892b0530 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-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=108426 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.DPLZp3xN/pbuilderrc_rSbO --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.DPLZp3xN/b1 --logfile b1/build.log ruby-grape_2.0.0-3.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://78.137.99.97: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.DPLZp3xN/pbuilderrc_YOJ2 --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.DPLZp3xN/b2 --logfile b2/build.log ruby-grape_2.0.0-3.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://85.184.249.68:3128 I: uname -a - Linux ionos12-i386 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 16 11:24 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/41599/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Apr 19 17:48 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/108426/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -327,7 +359,7 @@ Get: 176 http://deb.debian.org/debian trixie/main i386 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 177 http://deb.debian.org/debian trixie/main i386 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 178 http://deb.debian.org/debian trixie/main i386 ruby-test-prof all 0.12.2+dfsg-1 [42.8 kB] -Fetched 50.6 MB in 3s (17.1 MB/s) +Fetched 50.6 MB in 3s (16.8 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:i386. (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 ... 19816 files and directories currently installed.) @@ -909,8 +941,8 @@ Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Mar 19 05:27:00 UTC 2024. -Universal Time is now: Tue Mar 19 05:27:00 UTC 2024. +Local time is now: Mon Apr 21 11:51:28 UTC 2025. +Universal Time is now: Mon Apr 21 11:51:28 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -1069,7 +1101,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/108426/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/108426/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 @@ -1101,7 +1137,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/d20240318-49231-gnveqv/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250422-113836-qswvwx/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: @@ -1121,7 +1157,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/d20240318-49231-gnveqv/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/d20250422-113836-qswvwx/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 @@ -1304,262 +1340,280 @@ /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 40713 +Randomized with seed 46066 + +Grape::Validations::Validators::AllOrNoneOfValidator + #validate! + 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 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 all restricted params are present + does not return a validation error + mixed with other params + does not return a validation error + when custom message is specified + returns a validation error + when mutually exclusive params are nested inside array + returns a validation error with full names of the params + +Grape::Validations::Validators::AllowBlankValidator + invalid input + refuses missing + refuses only whitespaces + refuses empty string + refuses nil + 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 nested missing date value + refuses a blank value in an existing group + accepts a missing group, even with a disallwed blank param + custom validation message + 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 + refuses a blank existing value in an existing scope + accepts a nested missing value + with valid input + accepts empty when boolean allow_blank + accepts empty when symbol allow_blank + accepts empty input + accepts false when boolean allow_blank + accepts valid input + accepts empty when datetime allow_blank + accepts empty when date allow_blank + accepts empty input when allow_blank is false + allow_blank when Numeric + accepts empty when float allow_blank + accepts empty when integer allow_blank + accepts empty when integer allow_blank + in an optional group + 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 + as an optional param + accepts a nested missing optional value + accepts a missing group, even with a disallwed blank param + refuses a blank existing value in an existing scope + with invalid input + refuses empty string + refuses empty string for an optional param + refuses only whitespaces + refuses nil + 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 blank existing value in an existing scope + accepts a nested missing value + refuses a string value in an optional hash group + valid input + accepts empty when symbol allow_blank + accepts empty input + accepts false when boolean allow_blank + accepts valid input + accepts empty input when allow_blank is false + allows missing optional strings + accepts empty when datetime allow_blank + accepts empty when date allow_blank + accepts empty when boolean allow_blank + accepts value when time allow_blank + allow_blank when Numeric + accepts empty when integer allow_blank + accepts empty when float allow_blank + accepts empty when integer allow_blank + +Grape::DSL::Routing + .routes + returns value received from #prepare_routes + when #routes was already called once + does not call prepare_routes again + .route_param + nests requirements option under param name + does not modify options parameter + calls #namespace with given params + .resources + is alias to #namespace + .resource + is alias to #namespace + .versions + returns last defined version + .do_not_route_head! + sets do not route head option + .scope + create a scope without affecting the URL + .prefix + sets a prefix for route + .get + delegates to .route + .do_not_route_options! + sets do not route options option + .options + delegates to .route + .segment + is alias to #namespace + .route + generates correct endpoint options + defines a new endpoint + marks end of the route + resets validations + does not duplicate identical endpoints + .patch + delegates to .route + .head + delegates to .route + .post + delegates to .route + .namespace + creates a new namespace with given name and options + calls #joined_space_path on Namespace + .put + delegates to .route + .mount + mounts on a nested path + mounts multiple routes at once + .version + sets a version for route + .delete + delegates to .route + .group + is alias to #namespace + +Grape::DSL::Headers + when headers are set + #header + delete + deletes a header key-value pair + get + returns a specifc value + returns all set headers + set + returns value + when no headers are set + #header + returns nil + +Grape::Exceptions::MissingOption + #message + contains the problem in the message Grape::DSL::Settings + #global_setting + delegates to get_or_set + #within_namespace + calls start and end for a namespace + returns the last result #namespace_stackable + delegates to get_or_set stacks values from surrounding namespace + #unset_global_setting + delegates to unset + #namespace_setting + resets values after leaving nested namespaces + delegates to get_or_set + sets a value until the end of a namespace + #api_class_setting delegates to get_or_set #get_or_set sets a values returns a value when nil is new value is provided + #unset_namespace_setting + delegates to unset #unset_api_class_setting delegates to unset - complex scenario - plays well - #namespace_inheritable - delegates to get_or_set - inherits values from surrounding namespace - #global_setting - delegates to get_or_set - #unset_namespace_setting + #unset_route_setting delegates to unset - #api_class_setting + #route_setting + sets a value until the next route delegates to get_or_set #unset_namespace_stackable delegates to unset + complex scenario + plays well #unset_namespace_inheritable delegates to unset - #unset_global_setting - delegates to unset + #namespace_inheritable + delegates to get_or_set + inherits values from surrounding namespace #unset deletes a key from settings - #route_setting - delegates to get_or_set - sets a value until the next route - #unset_route_setting - delegates to unset - #namespace_setting - delegates to get_or_set - resets values after leaving nested namespaces - sets a value until the end of a namespace - #within_namespace - calls start and end for a namespace - returns the last result -Grape::Endpoint - post - 405 +Grape::Presenters::Presenter + present + multiple presenter + instance + presents both dummy presenter + instance + presents dummy hash + represent + represent object -Grape::Validations::ParamsScope - returns a sensible error message within a nested context - includes deeply nested parameters within #declared(params) - includes level 2 nested parameters outside the given within #declared(params) - raises an error if the dependent parameter was never specified - includes the nested parameter within #declared(params) - when validations are dependent on a parameter with specific value - (case 14) - 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 8) - 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 12) - 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 3) - 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 - skips validation when base param is missing - (case 1) - 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 10) - 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 - (case 0) - includes the parameter within #declared(params) - skips validation when base param is missing - 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 - includes the parameter within #declared(params) - (case 2) - 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 - skips validation when base param is missing - (case 9) - 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 11) - 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) - (case 13) - 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 - (case 7) - 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 4) - skips validation when base param is missing - 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) - 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 6) - skips validation when base param does not have a specified value - includes the parameter within #declared(params) - skips validation when base param is missing - applies the validation when base param has the specific value - coercing values validation with proc - allows the proc to pass validation without checking in value - allows the proc to pass validation without checking -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 - param renaming - is expected to eq "any-any2" - is expected to eq "foo is empty" - is expected to eq "{\"baz\":{\"qux\":\"any\"}}" - is expected to eq 200 - renaming can be defined before default - renaming can be defined after default - is expected to eq "-there we go" - 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 - when validations are dependent on a parameter within an array param - passes none Hash params - when params have group attributes - with nested groups - when data is invalid - responds with HTTP error - returns a validation 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 successful response - with validations - when data is invalid - returns a validation error - applies group validations for every parameter - when parameter has the same validator as a group - prioritizes parameter validation over group validation - returns a successful response - with types - when created_at receives a valid date - returns a successful response - returns a date - when invalid date provided - responds with HTTP error - returns a validation error - 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 - when validations are dependent on a parameter - does not validate nested requires when given is false - does not raise if the dependent parameter is not the renamed one - includes the nested parameter within #declared(params) - returns a sensible error message within a nested context - applies only the appropriate validation - allows renaming of dependent on parameter - raises an error if the dependent parameter is the renamed one - detect unmet nested dependency - does not raise an error if when using nested given - allows nested dependent parameters - does not raise an error if the dependent parameter is a Hash - applies the validations of multiple parameters - applies the validations only if the parameter is present - includes level 2 nested parameters outside the given within #declared(params) - allows renaming of dependent parameters - includes the parameter within #declared(params) - raises an error if the dependent parameter was never specified - when the dependent parameter is not present #declared(params) - lateral parameter - evaluate_given_false - evaluate_given_true - lateral parameter within an array param - evaluate_given_true - evaluate_given_false - nested given parameter within an array param - evaluate_given_true - evaluate_given_false - lateral parameter within lateral hash parameter - evaluate_given_true - evaluate_given_false - nested given parameter within a nested given parameter within an array param - evaluate_given_false - evaluate_given_true - lateral hash parameter - evaluate_given_true - evaluate_given_false - nested given parameter - evaluate_given_true - evaluate_given_false - failing fast - when fail_fast is not defined - does not stop validation - when fail_fast is defined it stops the validation - for a single param - of other params - 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 - with range values - when both range endpoints are #kind_of? the type - rejects values outside the range - accepts values in the range - 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 right range endpoint isn't #kind_of? the type - raises exception - when left range endpoint isn't #kind_of? the type - raises exception - array without coerce type explicitly given - sets the type based on first element - raises exception when values are of different type - fails to call API without Array type - raises exception when range values have different endpoint types - parameters in group - errors when no type is provided - handles missing optional Array type - allows Hash as type - allows Array as type - errors with an unsupported type +Grape::Path + #initialize + remebers the settings + remembers the path + remembers the namespace + #mount_path + is nil when no mount path setting exists + splits the mount path + is nil when the mount path is nil + #path? + is false when the path is the root path + is true otherwise + is false when the path starts with whitespace + is false when the path is nil + #suffix + when path versioning is used + includes a '/' + when path versioning is not used + does not include a '/' when the path has a path + includes a '/' otherwise + does not include a '/' when the path has a namespace + when using a specific format + accepts specified format + #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 + #namespace? + is false when the namespace starts with whitespace + is false when the namespace is the root path + is false when the namespace is nil + is true otherwise + #path_with_suffix + combines the path and suffix + when using a specific format + might have a suffix with specified format + #path + uses the raw path after the namespace + uses the namespace after the mount path and root prefix + mount_path + is not included when it is nil + is included when it is not nil + root_prefix + is included after the mount path + is not included when it is nil + #root_prefix + is nil when the mount path is nil + splits the mount path + is nil when no root prefix setting exists -Grape::Exceptions::InvalidFormatter - #message - contains the problem in the message +Grape::API::Helpers + can access helpers from a mounted resource in a nested resource + can access helpers from a mounted resource Grape::Extensions::Hash::ParamBuilder in an endpoint @@ -1571,309 +1625,546 @@ #params is Hash -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::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::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 + i18n + i18n error on malformed input + gives an english fallback error when default locale message is blank + with a custom validation message + errors on malformed input + on custom coercion rules + performs no additional coercion + respects :coerce_with + still validates type + using coerce_with + parses parameters with Array type + parses parameters with Array[String] type + parses parameters with Array[Integer] type + accepts any callable + uses parse where available + parses parameters with Array[Array[String]] type and coerce_with + parses parameters even if type is valid + must be supplied with :type or :coerce + Array type and coerce_with should + not coerce missing field + coerce array as array + coerce nil value to array + Integer type and coerce_with should + coerce nil value to integer + coerce integer as integer + not coerce missing field + Integer type and coerce_with potentially returning nil + accepts value that coerces to nil + returns invalid value if coercion returns a wrong type + coerces to Integer + first-class JSON + works when declared optional + parses objects, hashes, and arrays + doesn't make sense using coerce_with + accepts Array[JSON] shorthand + coerces + BigDecimal + String + Integer + Nests integers + 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 + Array + Array of Bools + Set of type implementing parse + Array of Integers + Array of type implementing parse + Array of a custom type + empty string + primitive types + is coerced to nil for type Float + is coerced to nil for type FalseClass + is not coerced to nil for type String + is coerced to nil for type Integer + is coerced to nil for type Date + is coerced to nil for type BigDecimal + is coerced to nil for type Numeric + is coerced to nil for type TrueClass + is coerced to nil for type Symbol + is coerced to nil for type Time + is coerced to nil for type DateTime + is coerced to nil for type Grape::API::Boolean + 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] + structures types + is coerced to nil for type Set + is coerced to nil for type Array + json + BigDecimal + Grape::API::Boolean + File + Rack::Multipart::UploadedFile + collection + File + Set + Set of Bools + Set of Integers + 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 + 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 + structures types + respects the nil value + respects the nil value + respects the nil value + multiple types + may not be supplied together with a single type + coerces to first possible type + fails when no coercion is possible + for primitive collections + allows collections with multiple types + allows singular form declaration + allows multiple collection types + custom coercion rules + performs no additional coercion + respects :coerce_with + still validates type + when params is Hashie::Mash + for primitive collections + allows multiple collection types + allows collections with multiple types + allows singular form declaration -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 +Grape::Exceptions::UnknownOptions + #message + contains the problem in the message -Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder - in an api - #params - is a Hash - parses sub hash params - responds to string keys - params are indifferent to symbol or string keys - in an endpoint - #params - is of type Hash +Grape::DSL::Parameters + #all_or_none_of + adds an all or none of parameter validation + #at_least_one_of + adds an at least one of parameter validation + #includes + is alias to #use + #optional + adds an optional parameter + #requires + adds a required parameter + #with + creates a scope with group attributes + #mutually_exclusive + adds an mutally exclusive parameter validation + #use_scope + is alias to #use + #use + raises error when non-existent named param is called + calls processes associated with named params + #params + inherits params from parent + 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 + when params argument is not a array or a hash + returns empty hash + #exactly_one_of + adds an exactly of one parameter validation + #group + is alias to #requires -StrictHashConfiguration - set nested configs +MultiJson + uses multi_json (PENDING: Temporarily skipped with xit) -Grape::Presenters::Presenter - present - instance - presents dummy hash - multiple presenter - instance - presents both dummy presenter - represent - represent object +Grape::Util::ReverseStackableValues + #clone + copies all values + complex (i.e. not primitive) data types (ex. middleware, please see bug #930) + copies values; does not duplicate them + #to_hash + returns a Hash representation + #[]= + pushes further values + can handle array values + sets a value + #keys + returns merged keys with parent + returns all keys + #delete + deletes a key + does not delete parent values + #[] + returns parent value when no value is set + combines parent and actual values (actual first) + returns an array of values + parent values are not changed + +Grape::Endpoint + get + responds + put + responds Grape::API::Helpers - overriding subclass - given expected params - overrides helpers from a superclass - with lack of expected params - returns missing error - non overriding subclass - with lack of expected params - returns missing error - given expected params - inherits helpers from a superclass - example subclass - given expected params - inherits helpers from a superclass - with lack of expected params - returns missing error + defines parameters + +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::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 + api.type and api.subtype + sets preferred type + sets type and subtype to first choice of content type if no preference given + sets preferred type and subtype + with missing vendor option + fails + 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.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 set + is nil if not provided + api.vendor + is set + fails with 406 Not Acceptable if vendor is invalid + is set if format provided + when version is set + is set + fails with 406 Not Acceptable if vendor is invalid + is set if format provided + when multiple versions are specified + fails with another version + succeeds with v1 + succeeds with v2 + api.version + is set + fails with 406 Not Acceptable if version is invalid + is set if format provided + 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 + fails with 406 Not Acceptable if header is empty + succeeds if proper header is set + 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 Rack correctly populates params from a Tempfile when the app is mounted finds the app on the namespace -Grape::Middleware::Versioner - recognizes :path - recognizes :header - recognizes :accept_version_header - recognizes :param +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 passed + returns a validation error with full names of the params + when params are empty + does not return a validation error + when no mutually exclusive params are present + does not return a validation error + 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 mutually exclusive params are nested inside array + 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 deeply nested + returns a validation error with full names of the params + +Grape::API + remounting an API + with dynamic configuration + 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 executing a custom block on mount + mounts the endpoints only when configured to do so + when the configuration is read within the response block + will use the dynamic configuration on all routes + 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 + on the DescSCope + mounts the endpoint with the appropiate tags + when the configuration is read in a helper + will use the dynamic configuration on all routes + on the ParamScope + mounts the endpoint in the location it is configured + on dynamic checks + can read the configuration on lambdas + when executing a standard block within a `mounted` block with all dynamic params + mounts the API and obtains the description and headers definition + a very complex configuration example + when it should not be mounted + gets a response + when the namespace should be mounted + gets a response + when should be mounted is nil + gets a response + when the configuration is read within a namespace + will use the dynamic configuration on all routes + 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 + with a defined route + when mounting twice + can access the votes in both places + when mounting on namespace + can access the votes in both places + when mounting one instance + can access the endpoint + +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::Middleware::Error + defaults to a 500 status sets the status code based on the rack util status code symbol - sets the status code appropriately has a default message - defaults to a 500 status + sets the status code appropriately sets the error message appropriately with http code - adds the status code if wanted presents an error message + adds the status code if wanted -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::AtLeastOneOfValidator + #validate! + when exactly one of the restricted params is selected + does not return a validation error + when restricted params are nested inside array + 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 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 a subset of restricted params are present + 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 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 all restricted params are present + does not return a validation error + mixed with other params + does not return a validation error -Grape::Validations::Types::PrimitiveCoercer - #call - the strict mode - BigDecimal - returns a value as it is when the given value is BigDecimal - returns an error when the given value is not BigDecimal - Boolean - returns an error when the given value is not Boolean - returns a value as it is when the given value is Boolean - Time - coerces an empty string to nil - Integer - coerces an empty string to nil - accepts non-nil value - a type unknown in Dry-types - raises error on init - String - coerces to String - does not coerce an empty string to nil - DateTime - coerces an empty string to nil - Boolean - coerces an empty string to nil - coerces 'false' to false - coerces 'true' to true - returns an error when the given value cannot be coerced - coerces 'false' to false - coerces '1' to true - coerces 'true' to true - coerces '0' to false - BigDecimal - coerces an empty string to nil - coerces to BigDecimal - Symbol - coerces an empty string to nil - Float - coerces an empty string to nil - Numeric - accepts a non-nil value - coerces an empty string to nil +Grape::Middleware::Stack + #use + pushes a middleware class with block arguments onto the stack + pushes a middleware class 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 + inserts a middleware after an anonymous class given by its superclass + raises an error on an invalid index + #concat + adds non :use specs to @others + calls +merge_with+ with the :use specs + #insert + inserts a middleware class at the integer index + #insert_before + inserts a middleware before another middleware class + raises an error on an invalid index + inserts a middleware before an anonymous class given by its superclass + #build + returns a rack builder instance + when @others are present + applies the middleware specs stored in @others -MultiXml - uses multi_xml +Grape::Endpoint + when route modifies param value + param default should not change -Grape::Validations::ParamsScope::AttributesDoc - #document - documentation is disabled - does not document attributes - documentation is enabled - documents attributes - behaves like an optional doc attribute - does not mention it - false as a default value - is still documented - nil as a default value - is still documented - the description key instead of desc - adds the given description - 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 - behaves like an optional doc attribute - does not mention it - #extract_details - cleans up doc attrs needed for documentation only - tells when attributes are required - does not clean up doc attrs mandatory for validators +Grape::Validations::Validators::ExactlyOneOfValidator + #validate! + when none of the params are present + 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 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 a subset of params are present + returns a validation error + when custom message is specified + returns a validation error + when all params are present + returns a validation error + mixed with other params + returns a validation error + when exacly one param is present + does not return a validation error -Grape::Validations::Validators::ExceptValuesValidator - 2: req_except_custom_message - valid-type - 0: req_except - invalid-type3 - 4: req_except_empty - invalid-type1 - 8: opt_except_lambda_default - invalid-type3 - raises IncompatibleOptionValues on a default value in exclude - 10: opt_except_type_coerce_default - 3 - 8: opt_except_lambda_default - - 5: req_except_lambda - invalid-type1 - 7: opt_except_default - invalid-type3 - 11: opt_except_array_type_coerce_default - [3] - raises IncompatibleOptionValues when a default array has excluded values - 5: req_except_lambda - valid-type - 0: req_except - valid-type - 8: opt_except_lambda_default - invalid-type1 - raises IncompatibleOptionValues when type is incompatible with values array - 12: req_except_range - 11 - 9: req_except_type_coerce - invalid-type1 - 11: opt_except_array_type_coerce_default - ["3"] - 8: opt_except_lambda_default - valid-type - 11: opt_except_array_type_coerce_default - invalid-type1 - 6: req_except_lambda_custom_message - valid-type - 11: opt_except_array_type_coerce_default - - 10: opt_except_type_coerce_default - - 0: req_except - invalid-type1 - 7: opt_except_default - valid-type - 6: req_except_lambda_custom_message - invalid-type4 - 6: req_except_lambda_custom_message - invalid-type1 - 7: opt_except_default - invalid-type1 - 9: req_except_type_coerce - 11 - 12: req_except_range - 13 - 7: opt_except_default - - 9: req_except_type_coerce - 11 - 2: req_except_custom_message - invalid-type1 - 2: req_except_custom_message - invalid-type3 - 1: req_except_hash - valid-type - 1: req_except_hash - invalid-type3 - 5: req_except_lambda - invalid-type4 - 10: opt_except_type_coerce_default - invalid-type1 - 9: req_except_type_coerce - 3 - 3: req_except_no_value - invalid-type1 - 11: opt_except_array_type_coerce_default - 10 - 10: opt_except_type_coerce_default - 3 - 11: opt_except_array_type_coerce_default - [10] - 10: opt_except_type_coerce_default - 10 - 1: req_except_hash - invalid-type1 - 9: req_except_type_coerce - 3 +Grape::Middleware::Versioner + recognizes :header + recognizes :param + recognizes :accept_version_header + recognizes :path -Grape::API::Helpers - defines parameters +Grape::Endpoint + post + 405 + +Grape::DSL::Callbacks + .before_validation + adds a block to "before_validation" + .after + adds a block to "after" + .after_validation + adds a block to "after_validation" + .before + adds a block to "before" + +MultiXml + uses multi_xml + +Grape::Validations::MultipleAttributesIterator + #each + when params is a hash + yields the whole params hash without the list of attrs + 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 Grape::API - .represent -Grape::API - adds the association to the :representations setting -Grape::API - requires a :with option - .parser -Grape::API - parses data in format requested by content-type - lambda parser + .rescue_from klass, lambda Grape::API - uses parser for text/custom; charset=UTF-8 + can execute the lambda with an argument Grape::API - uses parser for text/custom - none parser class + rescues an error with the lambda + .namespace Grape::API - does not parse data - custom parser class + cancels itself after the block is over Grape::API - uses custom parser - multi_xml + accepts path segments correctly Grape::API - doesn't parse yaml - .call - it does not add to the app setup + `.segment` is an alias Grape::API - calls the app - .route_param + is stackable Grape::API - defines requirements with a single hash + comes after the prefix and version Grape::API - adds a parameterized route segment namespace - with param type definitions + `.resources` is an alias Grape::API - is used by passing to options - .default_error_status + `.group` is an alias Grape::API - has a default error status + is callable with nil just to push onto the stack Grape::API - uses the default error status in error! + is retrievable and converted to a path Grape::API - allows setting default_error_status + `.resource` is an alias + normal class methods + can find the appropiate name + is equal to itself body - plain text -Grape::API - returns blank body false Grape::API returns blank body - .version - when defined -Grape::API - returns version value - when not defined -Grape::API - returns nil - .compile! -Grape::API - compiles the instance for rack! -Grape::API - requires the grape/eager_load file - .rescue_from klass, lambda -Grape::API - can execute the lambda with an argument + plain text Grape::API - rescues an error with the lambda + returns blank body .version using param behaves like versioning Grape::API - does not overwrite version parameter with API version + is able to specify multiple versions +Grape::API + is able to specify version as a nesting Grape::API adds the prefix before the API version Grape::API - is able to specify version as a nesting + does not overwrite version parameter with API version Grape::API sets the API version -Grape::API - is able to specify multiple versions with different versions for the same endpoint - without a prefix + with a prefix Grape::API allows the same endpoint to be implemented - with a prefix + without a prefix Grape::API allows the same endpoint to be implemented with before block defined within a version block @@ -1890,401 +2181,409 @@ finds catch all Grape::API finds endpoint - .inherited - does not override methods inherited from Class - overriding within class - allows overriding the hook - overriding via composition - allows overriding the hook do_not_route_options! Grape::API does not include OPTIONS in Allow header Grape::API does not create an OPTIONS route - .finally - when the ensure block has no exceptions - when a handled error occurs inside the API call + .compile! Grape::API - executes the ensure code - when no errors occurs + compiles the instance for rack! Grape::API - executes the ensure code - with a helper + requires the grape/eager_load file + .mount + with a bare rack app Grape::API - has access to the helper - when an unhandled occurs inside the API call + anchors the routes, passing all subroutes to it Grape::API - executes the ensure code - when no API call is made + makes a bare Rack app available at the endpoint Grape::API - has not executed the ensure code - .endpoints + is able to cascade + mounting an API Grape::API - adds one for each route created - .error_format + mounts on a path Grape::API - rescues all errors and return :json with backtrace + mounts a prefixed API with nested resources Grape::API - rescues all errors and return :json + mounts a versioned API with nested resources Grape::API - rescues all errors and return :txt + responds to options with path versioning Grape::API - rescues all errors with a default formatter + applies the settings of the mounting api Grape::API - defaults the error formatter to format + applies auth to a mounted API with nested resources Grape::API - rescues all errors and return :txt with backtrace + recognizes potential versions with mounted path Grape::API - rescues error! and return txt - class + collects the routes of the mounted api Grape::API - returns a custom error format - with json format + mounts on a nested path Grape::API - rescues error! called with a hash and returns json + applies the settings to nested mounted apis Grape::API - rescues error! called with a string and returns json + mounts multiple versioned APIs with nested resources Grape::API - 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 + applies format to a mounted API with nested resources Grape::API - returns a custom error format - .default_format + responds to options + when some rescues are defined by mounted Grape::API - parses data in default format + prefers more specific rescues defined by mounted Grape::API - returns data in default format - .rescue_from :grape_exceptions + prefers rescues defined by mounted even if outer is more specific Grape::API - rescues grape exceptions + inherits parent rescues Grape::API - rescues grape exceptions with a user-defined handler + prefers rescues defined by mounted if they rescue similar error class + when mounting class extends a subclass of Grape::API + mounts APIs with the same superclass + when including a module + correctlies include module in nested mount + without a hash +Grape::API + calls through setting the route to "/" do_not_route_head! Grape::API + options does not contain HEAD +Grape::API does not allow HEAD on a GET request + with json default_error_formatter Grape::API - options does not contain HEAD - const_missing - raises an error - .route - plain + returns json error + .endpoint Grape::API - provides access to route info - with desc + path + .call + it does not add to the app setup Grape::API - returns route parameters + calls the app + routes + api structure with two versions and a namespace Grape::API - returns route description - instance_for_rack - when the app was mounted + returns versions Grape::API - returns the first mounted instance - when the app was not mounted + sets route versions Grape::API - returns the base_instance - .format - :txt + sets prefix Grape::API - forces txt without an extension + returns the latest version set Grape::API - does not force txt with an extension + sets route paths Grape::API - forces txt from a non-accepting header - :serializable_hash + sets a nested namespace + single method api structure Grape::API - array + returns one route + status Grape::API - root + can be set to arbitrary Integer value Grape::API - instance - :json + can be set with a status code symbol + api with a custom route setting Grape::API - does not force json with an extension + exposed + api structure with additional parameters Grape::API - forces json without an extension + splits a string Grape::API - can be overwritten with an explicit content type + splits a string with limit Grape::API - raised :error from middleware + sets params + empty api structure Grape::API - forces json from a non-accepting header - :txt only + returns an empty array of routes + api structure with an api without params Grape::API - forces txt without an extension + sets params + api structure with multiple apis Grape::API - accepts specified extension + sets params + cascading + via endpoint Grape::API - does not accept extensions other than specified + does not cascade Grape::API - forces txt from a non-accepting header - :xml + cascades + via version Grape::API - array + does not cascade Grape::API - string + cascades + .scope Grape::API - raised :error from middleware + scopes the various settings + .compile Grape::API - hash - with non-UTF-8 characters in specified format + sets the instance + .version using path + behaves like versioning Grape::API - converts the characters - .rescue_from klass, rescue_subclasses: boolean + is able to specify multiple versions Grape::API - rescues error as well as subclass errors with rescue_subclasses option set + adds the prefix before the API version Grape::API - sets rescue_subclasses to true by default + sets the API version Grape::API - does not rescue child errors if rescue_subclasses is false - custom middleware - .middleware + is able to specify version as a nesting Grape::API - includes all middleware from stacked settings + does not overwrite version parameter with API version + with catch-all + v1 Grape::API - includes middleware arguments from settings - .insert_after + finds endpoint Grape::API - runs after a given middleware - .insert_before + finds catch all + v2 Grape::API - runs before a given middleware - .use + finds catch all Grape::API - mounts behind error middleware + finds endpoint + with different versions for the same endpoint + without a prefix Grape::API - calls the middleware + allows the same endpoint to be implemented + with a prefix Grape::API - uses a block if one is given + allows the same endpoint to be implemented + with before block defined within a version block Grape::API - adds a block if one is given + calls before block that is defined within the version block + .configure Grape::API - does not show up outside the namespace + allows configuring the api + when given a block Grape::API - adds middleware + returns self Grape::API - does not destroy the middleware settings on multiple runs - .helpers + calls the block passing the config + when not given a block Grape::API - is accessible from the endpoint + returns a configuration object + with unsafe HTML format specified Grape::API - allows for modules + escapes the HTML + .version + when not defined Grape::API - allows multiple calls with modules and blocks + returns nil + when defined Grape::API - is scopable + returns version value + .finally + when the ensure block has no exceptions + when a handled error occurs inside the API call Grape::API - is reopenable - .logger + executes the ensure code + when no API call is made Grape::API - returns an instance of Logger class by default + has not executed the ensure code + when no errors occurs Grape::API - does not unnecessarily retain duplicate setup blocks - with a custom logger - exposes its interaface - .http_basic + executes the ensure code + with a helper Grape::API - can set instance variables accessible to routes + has access to the helper + when an unhandled occurs inside the API call Grape::API - protects any resources on the same scope + executes the ensure code + .route_param Grape::API - has access to the current endpoint + defines requirements with a single hash Grape::API - is scopable + adds a parameterized route segment namespace + with param type definitions Grape::API - has access to helper methods + is used by passing to options + .insert Grape::API - is callable via .auth as well - lifecycle - when the api_call has a controlled error + inserts middleware in a specific location in the stack + .prefix Grape::API - follows the errored life_cycle (skips after) - when the api_call has an exception + supports OPTIONS Grape::API - follows the errored life_cycle (skips after) - when the api_call fails validation + routes through with the prefix Grape::API - follows the failed_validation cycle (skips after_validation, api_call & after) - when the api_call succeeds + routes root through with the prefix Grape::API - follows the standard life_cycle - routes - api structure with an api without params + disallows POST + .rescue_from klass, block Grape::API - sets params - api with a custom route setting + rescues Exception + custom errors Grape::API - exposed - api structure with multiple apis + rescues an error via rescue_from :all Grape::API - sets params - status + rescues multiple specific errors Grape::API - can be set to arbitrary Integer value + does not rescue a different error Grape::API - can be set with a status code symbol - single method api structure + rescues a specific error Grape::API - returns one route - api structure with two versions and a namespace + rescues a subclass of an error by default + catch-all Grape::API - sets a nested namespace + anchor=true Grape::API - sets prefix + anchor=false + .helpers Grape::API - returns versions + is reopenable Grape::API - returns the latest version set + is accessible from the endpoint Grape::API - sets route paths + allows multiple calls with modules and blocks Grape::API - sets route versions - api structure with additional parameters + allows for modules Grape::API - splits a string + is scopable + .change! Grape::API - splits a string with limit + invalidates any compiled instance + desc Grape::API - sets params - empty api structure + does not inherit param descriptions in consequent namespaces Grape::API - returns an empty array of routes - filters + parses parameters when no description is given Grape::API - calls all filters when validation passes + empty array of routes Grape::API - calls filters in the correct order + allows to set the type attribute on :group element Grape::API - adds a after_validation filter +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 - adds a before filter + includes details Grape::API - calls only before filters when validation fails + does not symbolize params Grape::API - adds a before filter to current and child namespaces only + describes methods separately Grape::API - adds a after filter - .rescue_from klass, block + has params which does not include format and version as named captures Grape::API - rescues Exception - custom errors + groups nested params and prevents overwriting of params with same name in different groups Grape::API - rescues a subclass of an error by default + describes a method with parameters Grape::API - rescues a specific error + merges the parameters of nested namespaces Grape::API - does not rescue a different error + resets desc Grape::API - rescues an error via rescue_from :all + empty array of routes Grape::API - rescues multiple specific errors - .configure +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 - allows configuring the api - when not given a block + merges the parameters of the namespace with the parameters of the method Grape::API - returns a configuration object - when given a block + uses full name of parameters in nested groups + .rescue_from :grape_exceptions Grape::API - returns self + rescues grape exceptions with a user-defined handler Grape::API - calls the block passing the config - catch-all + rescues grape exceptions + .default_error_status Grape::API - anchor=true + uses the default error status in error! Grape::API - anchor=false - normal class methods - is equal to itself - can find the appropiate name - .rescue_from + allows setting default_error_status Grape::API - uses custom helpers defined by using #helpers method + has a default error status + const_missing + raises an error + .rescue_from klass, rescue_subclasses: boolean Grape::API - rescues all errors if rescue_from :all is called + does not rescue child errors if rescue_subclasses is false Grape::API - does not rescue errors when rescue_from is not set + sets rescue_subclasses to true by default Grape::API - rescues all errors with a json formatter + rescues error as well as subclass errors with rescue_subclasses option set + filters Grape::API -caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError - can rescue exceptions raised in the formatter + adds a before filter Grape::API - uses default_rescue_handler to handle invalid response from rescue_from + adds a after filter Grape::API - rescues only certain errors if rescue_from is called with specific errors + calls filters in the correct order Grape::API - mimics default ruby "rescue" handler - CustomError subclass of Grape::Exceptions::Base + adds a before filter to current and child namespaces only Grape::API - rescues custom grape exceptions + calls only before filters when validation fails Grape::API - does not re-raise exceptions of type Grape::Exceptions::Base - with multiple apis - avoids polluting global namespace - .endpoint + calls all filters when validation passes Grape::API - path - .version using accept_version_header + adds a after_validation filter + .version using header behaves like versioning Grape::API is able to specify multiple versions Grape::API - adds the prefix before the API version -Grape::API - does not overwrite version parameter with API version + sets the API version Grape::API is able to specify version as a nesting Grape::API - sets the API version - with different versions for the same endpoint - without a prefix -Grape::API - allows the same endpoint to be implemented - with a prefix + adds the prefix before the API version Grape::API - allows the same endpoint to be implemented + does not overwrite version parameter with API version with catch-all - v2 + v1 Grape::API finds catch all Grape::API finds endpoint - v1 -Grape::API - finds catch all + v2 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 - .content_type + with different versions for the same endpoint + with a prefix Grape::API - allows to override content-type + allows the same endpoint to be implemented + without a prefix Grape::API - removes existing content types + allows the same endpoint to be implemented + .parser Grape::API - sets additional content-type - with json default_error_formatter + parses data in format requested by content-type + lambda parser Grape::API - returns json error - .version using header - behaves like versioning + uses parser for text/custom Grape::API - sets the API version + uses parser for text/custom; charset=UTF-8 + multi_xml Grape::API - adds the prefix before the API version + doesn't parse yaml + custom parser class Grape::API - is able to specify version as a nesting + uses custom parser + none parser class +Grape::API + does not parse data + .version using accept_version_header + behaves like versioning Grape::API is able to specify multiple versions Grape::API + is able to specify version as a nesting +Grape::API + adds the prefix before the API version +Grape::API + sets the API version +Grape::API does not overwrite version parameter with 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 + without a prefix +Grape::API + allows the same endpoint to be implemented + with a prefix +Grape::API + allows the same endpoint to be implemented with catch-all v2 Grape::API @@ -2293,157 +2592,130 @@ finds endpoint v1 Grape::API - finds catch all -Grape::API finds endpoint - 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 - .prefix + finds catch all + with non-UTF-8 characters in specified format Grape::API - routes through with the prefix + converts the characters + .content_type Grape::API - disallows POST + allows to override content-type Grape::API - supports OPTIONS + sets additional content-type Grape::API - routes root through with the prefix - .change! + removes existing content types + .rescue_from Grape::API - invalidates any compiled instance - .scope + uses default_rescue_handler to handle invalid response from rescue_from Grape::API - scopes the various settings - .insert + mimics default ruby "rescue" handler Grape::API - inserts middleware in a specific location in the stack - .rescue_from klass, with: :method_name + rescues all errors with a json formatter Grape::API - aborts if the specified method name does not exist + rescues all errors if rescue_from :all is called Grape::API - rescues an error with the specified method name + rescues only certain errors if rescue_from is called with specific errors Grape::API - correctly chooses exception handler if :all handler is specified - custom route helpers on nested APIs - returns the given id when it is valid - returns an error when the id is bad - .compile + does not rescue errors when rescue_from is not set Grape::API - sets the instance - with unsafe HTML format specified +caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError + can rescue exceptions raised in the formatter Grape::API - escapes the HTML - .namespace + uses custom helpers defined by using #helpers method + with multiple apis + avoids polluting global namespace + CustomError subclass of Grape::Exceptions::Base Grape::API - `.group` is an alias + rescues custom grape exceptions Grape::API - comes after the prefix and version + does not re-raise exceptions of type Grape::Exceptions::Base + .route Grape::API - `.resource` is an alias + allows and properly constrain a GET method Grape::API - is stackable + allows for multiple verbs Grape::API - accepts path segments correctly + allows for :any as a verb Grape::API - `.resources` is an alias + allows for format in namespace with no path Grape::API - is callable with nil just to push onto the stack + 405 responses includes an Allow header specifying supported methods Grape::API - is retrievable and converted to a path + runs before filter exactly once on 405 bad method Grape::API - cancels itself after the block is over + handles empty calls Grape::API - `.segment` is an alias - .route + allows and properly constrain a HEAD method Grape::API - allows for catch-all in a namespace + overwrites the default HEAD request Grape::API - allows for multiple verbs + allows for multipart paths Grape::API - allows for no path + runs all filters and body with a custom OPTIONS method Grape::API 405 responses includes an Content-Type header Grape::API - allows for multiple paths + allows and properly constrain a DELETE method Grape::API - handles empty calls + allows for catch-all in a namespace Grape::API - allows and properly constrain a GET method + allows for format without corrupting a param Grape::API - returns a 201 response code for POST by default + allows for multiple paths Grape::API - allows and properly constrain a PUT method + allows for no path Grape::API - allows for multipart paths + allows and properly constrain a PATCH method Grape::API returns a 405 for an unsupported method with an X-Custom-Header Grape::API - overwrites the default HEAD request -Grape::API - allows and properly constrain a PATCH method + returns a 201 response code for POST by default Grape::API - allows for :any as a verb + runs only the before filter on 405 bad method Grape::API allows and properly constrain a OPTIONS method Grape::API - allows and properly constrain a HEAD method -Grape::API - allows and properly constrain a DELETE method -Grape::API - runs all filters and body with a custom OPTIONS method -Grape::API allows and properly constrain a POST method Grape::API - runs before filter exactly once on 405 bad method -Grape::API - allows for format in namespace with no path -Grape::API - 405 responses includes an Allow header specifying supported methods + allows and properly constrain a PUT method + post Grape::API - allows for format without corrupting a param + allows a(n) FalseClass json object in params Grape::API - runs only the before filter on 405 bad method - put + allows a(n) TrueClass json object in params Grape::API stores input in api.request.input Grape::API - stores input in api.request.input + allows a(n) Array 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) Hash json object in params -Grape::API - allows a(n) TrueClass json object in params -Grape::API stores input in api.request.input Grape::API - allows a(n) NilClass json object in params + stores input in api.request.input Grape::API - allows a(n) Array json object in params + allows a(n) Integer json object in params Grape::API - stores input in api.request.input + allows a(n) Hash json object in params Grape::API stores input in api.request.input Grape::API - allows a(n) Integer 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) String 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 stores input in api.request.input +Grape::API + allows a(n) NilClass json object in params chunked transfer encoding Grape::API stores input in api.request.input @@ -2471,118 +2743,102 @@ chunked transfer encoding Grape::API stores input in api.request.input - adds a 405 Not Allowed route that -Grape::API - has a X-Custom-Header -Grape::API - returns a 405 + root routes should work with Grape::API - contains error message in body + Accept-Version header versioned APIs Grape::API - has an Allow header - when a resource routes by POST, GET, PATCH, PUT, and DELETE - it adds an OPTIONS route for namespaced endpoints that + unversioned APIs Grape::API - returns a 204 + header versioned APIs with multiple headers Grape::API - has an empty body + param versioned APIs Grape::API - has an Allow header - adds an OPTIONS route for namespaced endpoints that + header versioned APIs + path versioned APIs + when array of versions provided Grape::API - returns a 204 + is expected to eql "root" Grape::API - has no Content-Length + is expected to eql "root" + when a single version provided Grape::API - calls the inner before filter + with a format Grape::API - has an empty body + without a format + when a resource routes by POST, GET, PATCH, PUT, and DELETE + it adds an OPTIONS route for namespaced endpoints that Grape::API - has an Allow header + has an Allow header Grape::API - calls the outer before filter + returns a 204 Grape::API - has no Content-Type - adds an OPTIONS route that + has an empty body + allows HEAD on a GET request that Grape::API - calls before hook + returns a 200 Grape::API has an empty body + adds an OPTIONS route for namespaced endpoints that Grape::API - has no Content-Type -Grape::API - has an Allow header -Grape::API - does not call before_validation hook + calls the outer before filter Grape::API has no Content-Length Grape::API - calls after hook -Grape::API - does not call after_validation hook -Grape::API returns a 204 - when hook behaviour is controlled by attributes on the route - when HEAD is called for the defined GET Grape::API - responds with 401 because before expectations in before hooks are not met - when HEAD is called for the defined GET + calls the inner before filter Grape::API - responds with 200 because before hooks are not called - when HTTP method is not defined + has an Allow header Grape::API - responds with a 405 status - when HTTP method is defined with attribute + has no Content-Type Grape::API - responds with the defined error in the before hook - when HTTP method is defined and everything is like the before hooks expect + has an empty body + format Grape::API - ends up in the endpoint - when HTTP method is defined and the underlying before hook expectation is not met + allows .txt Grape::API - ends up in the endpoint - when accessing env + allows .json + adds an OPTIONS route that Grape::API - returns a 405 for an unsupported method - root routes should work with + has an empty body Grape::API - param versioned APIs + does not call before_validation hook Grape::API - header versioned APIs + has no Content-Type Grape::API - header versioned APIs with multiple headers + calls before hook Grape::API - unversioned APIs + has an Allow header Grape::API - Accept-Version header versioned APIs - path versioned APIs - when a single version provided + calls after hook Grape::API - without a format + has no Content-Length Grape::API - with a format - when array of versions provided + returns a 204 Grape::API - is expected to eql "root" + does not call after_validation hook + adds a 405 Not Allowed route that Grape::API - is expected to eql "root" - format + has a X-Custom-Header Grape::API - allows .json + has an Allow header Grape::API - allows .txt + returns a 405 +Grape::API + contains error message in body when format is xml Grape::API returns a 405 for an unsupported method - post + when accessing env 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 Grape::API stores input in api.request.input Grape::API - stores input in api.request.input + allows a(n) NilClass json object in params Grape::API allows a(n) Array json object in params Grape::API @@ -2592,25 +2848,27 @@ Grape::API stores input in api.request.input Grape::API - allows a(n) FalseClass json object in params + allows a(n) Float json object in params Grape::API stores input in api.request.input Grape::API - stores input in api.request.input + allows a(n) TrueClass json object in params Grape::API stores input in api.request.input Grape::API - allows a(n) TrueClass json object in params + allows a(n) Symbol json object in params Grape::API stores input in api.request.input Grape::API - allows a(n) Float json object in params -Grape::API allows a(n) String json object in params Grape::API - allows a(n) NilClass json object in params + stores input in api.request.input Grape::API - allows a(n) Symbol json object in params + allows a(n) Hash json object in params +Grape::API + stores input in api.request.input +Grape::API + allows a(n) FalseClass json object in params chunked transfer encoding Grape::API stores input in api.request.input @@ -2638,2205 +2896,2126 @@ chunked transfer encoding Grape::API stores input in api.request.input - allows HEAD on a GET request that + when hook behaviour is controlled by attributes on the route + when HEAD is called for the defined GET Grape::API - has an empty body + responds with 401 because before expectations in before hooks are not met + when HEAD is called for the defined GET Grape::API - returns a 200 + responds with 200 because before hooks are not called + 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 HTTP method is not defined +Grape::API + responds with a 405 status + when HTTP method is defined and everything is like the before hooks expect +Grape::API + ends up in the endpoint + .http_basic +Grape::API + protects any resources on the same scope +Grape::API + can set instance variables accessible to routes +Grape::API + has access to helper methods +Grape::API + is callable via .auth as well +Grape::API + is scopable +Grape::API + has access to the current endpoint http_codes Grape::API + is used as presenter +Grape::API presented with + .inherited + does not override methods inherited from Class + overriding via composition + allows overriding the hook + overriding within class + allows overriding the hook + .route + with desc Grape::API - is used as presenter - format + returns route description Grape::API - sets content type for json error + returns route parameters + plain Grape::API - streams the content of the file with stream + provides access to route info + .default_format Grape::API - sets content type for error + returns data in default format Grape::API - does not include extension in id + parses data in default format + .logger Grape::API - includes extension in format + does not unnecessarily retain duplicate setup blocks Grape::API - sets content type for xml error + returns an instance of Logger class by default + with a custom logger + exposes its interaface + .endpoints Grape::API - sets content type for txt format + adds one for each route created + .format + :xml Grape::API - returns raw data when content type binary + string Grape::API - sets content type for xml + raised :error from middleware Grape::API - sets content type for binary format + array 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 + hash + :txt only Grape::API - sets content type for serializable hash format + accepts specified extension Grape::API - sets content type for json + forces txt without an extension Grape::API - does not set Cache-Control - env["api.format"] + forces txt from a non-accepting header Grape::API - uploads and downloads a PNG file via attachment + does not accept extensions other than specified + :txt Grape::API - uploads and downloads a PNG file via /attachment.png + forces txt without an extension Grape::API - uploads and downloads a Ruby file - with a custom content_type + forces txt from a non-accepting header Grape::API - sets content type + does not force txt with an extension + :serializable_hash Grape::API - sets content type for error - .formatter - custom formatter + instance Grape::API - uses custom formatter + array Grape::API - uses json - multiple formatters + root + :json Grape::API - sets another formatter + does not force json with an extension Grape::API - sets one formatter - custom formatter class + raised :error from middleware Grape::API - uses json + forces json without an extension Grape::API - uses custom formatter - desc + forces json from a non-accepting header Grape::API - does not symbolize params + can be overwritten with an explicit content type + lifecycle + when the api_call has a controlled error 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 + follows the errored life_cycle (skips after) + when the api_call fails validation Grape::API - parses parameters when no description is given + follows the failed_validation cycle (skips after_validation, api_call & after) + when the api_call succeeds Grape::API - resets desc + follows the standard life_cycle + when the api_call has an exception Grape::API - allows to set the type attribute on :group element + follows the errored life_cycle (skips after) + custom middleware + .use Grape::API - empty array of routes + adds middleware 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 + calls the middleware Grape::API - describes methods separately + uses a block if one is given Grape::API - uses full name of parameters in nested groups + does not show up outside the namespace Grape::API - does not inherit param descriptions in consequent namespaces + mounts behind error middleware Grape::API - groups nested params and prevents overwriting of params with same name in different groups + does not destroy the middleware settings on multiple runs Grape::API - describes a method with parameters + adds a block if one is given + .insert_before Grape::API - includes details + runs before a given middleware + .middleware Grape::API - has params which does not include format and version as named captures + includes middleware arguments from settings Grape::API - merges the parameters of nested namespaces + includes all middleware from stacked settings + .insert_after Grape::API - empty array of routes + runs after a given middleware + custom route helpers on nested APIs + returns the given id when it is valid + returns an error when the id is bad + .rescue_from klass, with: :method_name Grape::API - merges the parameters of the namespace with the parameters of the method - .version using path - behaves like versioning + correctly chooses exception handler if :all handler is specified Grape::API - does not overwrite version parameter with API version + aborts if the specified method name does not exist Grape::API - sets the API version + rescues an error with the specified method name + .formatter + custom formatter Grape::API - is able to specify version as a nesting + uses json Grape::API - is able to specify multiple versions + uses custom formatter + multiple formatters Grape::API - adds the prefix before the API version - with different versions for the same endpoint - without a prefix + sets one formatter Grape::API - allows the same endpoint to be implemented - with a prefix + sets another formatter + custom formatter class Grape::API - allows the same endpoint to be implemented - with catch-all - v1 + uses json Grape::API - finds catch all + uses custom formatter + instance_for_rack + when the app was not mounted Grape::API - finds endpoint - v2 + returns the base_instance + when the app was mounted Grape::API - finds catch all + returns the first mounted instance + .represent Grape::API - finds endpoint - with before block defined within a version block + adds the association to the :representations setting Grape::API - calls before block that is defined within the version block - .mount - with a bare rack app + requires a :with option + .error_format Grape::API - anchors the routes, passing all subroutes to it + rescues all errors with a default formatter Grape::API - makes a bare Rack app available at the endpoint + rescues all errors and return :txt with backtrace Grape::API - is able to cascade - without a hash + defaults the error formatter to format Grape::API - calls through setting the route to "/" - mounting an API + rescues all errors and return :json Grape::API - collects the routes of the mounted api + rescues error! and return txt Grape::API - mounts a versioned API with nested resources + rescues all errors and return :json with backtrace Grape::API - mounts multiple versioned APIs with nested resources + rescues all errors and return :txt + with + class Grape::API - responds to options + returns a custom error format + class +/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2447: warning: method redefined; discarding old call +/build/reproducible-path/ruby-grape-2.0.0/spec/grape/api_spec.rb:2470: warning: previous definition of call was here Grape::API - applies format to a mounted API with nested resources + returns a custom error format + with json format Grape::API - responds to options with path versioning + rescues error! called with a symbol and returns json Grape::API - applies auth to a mounted API with nested resources + rescues error! called with a hash and returns json Grape::API - mounts on a path + rescues error! called with a string and returns json + format Grape::API - applies the settings of the mounting api + sets content type for xml error Grape::API - mounts on a nested path + sets content type for txt format Grape::API - mounts a prefixed API with nested resources + includes extension in format Grape::API - applies the settings to nested mounted apis + sets content type for xml Grape::API - recognizes potential versions with mounted path - when mounting class extends a subclass of Grape::API - mounts APIs with the same superclass - when some rescues are defined by mounted + sets content type for json error Grape::API - inherits parent rescues + sets content type for error Grape::API - prefers rescues defined by mounted if they rescue similar error class + streams the content of the file with stream Grape::API - prefers rescues defined by mounted even if outer is more specific + returns raw data when content type binary Grape::API - prefers more specific rescues defined by mounted - when including a module - correctlies include module in nested mount - cascading - via endpoint + does not include extension in id Grape::API - cascades + sets content type for serializable hash format Grape::API - does not cascade - via version + sets content type for binary format Grape::API - does not cascade + sets content type for json Grape::API - cascades +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 + does not set Cache-Control + with a custom content_type +Grape::API + sets content type +Grape::API + sets content type for error + env["api.format"] +Grape::API + uploads and downloads a PNG file via /attachment.png +Grape::API + uploads and downloads a PNG file via attachment +Grape::API + uploads and downloads a Ruby file 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 when an instance is the root can call the instance endpoint + 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) with multiple moutes - responds the correct body at the 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 does not raise a FrozenError on first instance Grape::API - execute first request in reasonable time + an endpoint without documentation + still declares params internally + does not document parameters for the endpoint + an endpoint with documentation + allows documentation with a hash + documents parameters -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::Exceptions::InvalidFormatter + #message + contains the problem in the message -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 - #params - by default returns stringified parameter keys - with grape.routing_args - cuts version and route_info - when build_params_with: Grape::Extensions::Hash::ParamBuilder is specified - returns symbolized params - #headers - with non-HTTP_* stuff in env - does not include them - with symbolic header names - converts them to string - with http headers in env - cuts HTTP_ prefix and capitalizes header name words +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 -Rack::Sendfile - when calling sendfile - contains Sendfile headers - when streaming non file content - not contains Sendfile headers +Grape::Validations + require_validator + when not found + raises an error + when found + is expected to equal Grape::Validations::Validators::PresenceValidator + params + nested optional Array blocks + handles deep nesting + all_or_none_of + at_least_one_of + does no internal validations if the outer group is blank + handles validation within arrays + does internal validations if the outer group is present + adds to declared parameters + exactly_one_of + 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 + group + adds to declared parameters + errors when param not present + doesn't throw a missing param when param is present + 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 + required with a Hash block + adds to declared parameters + errors when nested param not present + errors when param is not a Hash + doesn't throw a missing param when param is present + errors when param not present + multiple validation errors + throws the validation errors + with block param + requires defaults to Array type + optional defaults to Array type + group defaults to Array type + in a group + errors when more than one from the set is present + does not falsely think the param is there if it is provided outside the block + errors when no parameter from the set is present + works when only one from the set is present + custom validation + when using optional with a custom validator + validates when param is present + validates with custom validator when param present and incorrect type + skips validation when parameter isn't present + 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 + peer namespaces does not have the validator + the parent namespace uses the validator + the nested namespace inherits the custom validator + namespaces nested in peers should also not have the validator + when using options on param + validates param with custom validator with options + 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 + 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 + at least one of + params + does not error when two are present + errors when none are present + does not error when one is present + with a custom validation message + does not error when two are present + errors when none are present + does not error when one is present + nested params + does not error when one is present + does not error when two are present + errors when none are present + with block and keyword argument + works + required with an Array and a Hash block + does not output index [0] for Hash types + named + with block + overrides default value for order_by + returns defaults + fails with invalid value + overrides default value for order + can be included in usual params + by #use + by #use with multiple params + can be defined + in helper module which kind of Grape::DSL::Helpers::BaseHelper + in helpers + optional + adds to declared parameters + doesn't validate when param not present + validates when params is present + requires :all or :none but except a non-existent field using Grape::Entity documentation + requires :none + adds only the entity documentation to declared params, nothing more + requires :all + adds only the entity documentation to declared params, nothing more + required + adds to declared parameters + errors when param not present + works when required field is present but nil + doesn't throw a missing param when param is present + all or none + optional params + with a custom validation message + errors when any one is present + works when none are present + works when all params are present + with block and empty args + works + group params with nested params which has a type + errors when group param is invalid + requires :all using Grape::Entity documentation + adds entity documentation to declared params + errors when required_field is not present + works when required_field is present + requires with nested params + validates correctly in deep nested params + required with an Array block + adds to declared parameters + doesn't throw a missing param when param is present + errors when param is not an Array + errors when param not present + doesn't throw a missing param when param is present but empty + mutually exclusive + more than one set of mutually exclusive params + errors for all sets + with a custom validation message + errors for all sets + in a group + works when only one from the set is present + errors when more than 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 + mutually exclusive params inside Hash group + invalidates if request param is invalid type + exactly one of + nested params + errors when two or more are present + succeeds when one is present + errors when none are present + params + errors when two or more are present + errors when none are present + succeeds when one is present + with a custom validation message + errors when none are present + succeeds when one is present + errors when two or more are present + hash with a required param with validation + works when all params match + errors when param is not a Hash + optional using Grape::Entity documentation + works when field_a and field_b are not present + works when field_a is present + works when field_b is present + adds entity documentation to declared params + validation within arrays + errors when param is not an Array + safely handles empty arrays and blank parameters + errors when a parameter is not present in array within array + handle errors for all array elements + errors when a parameter is not present + can handle new scopes within child elements + optional with an Array block + doesn't throw a missing param when both group and param are given + errors when group is present, but required param is not + errors when param is present but isn't an Array + doesn't throw a missing param when the group isn't present + adds to declared parameters -Grape::Util::InheritableSetting - #route - sets a value until the next route - works with route values - #namespace_stackable - works with stackable values - #api_class - is specific to the class - #namespace_reverse_stackable - works with reverse stackable values - #point_in_time_copy - decouples namespace stackable values - adds itself to original as clone - decouples namespace values - decouples namespace inheritable values - decouples namespace reverse stackable values - resets point_in_time_copies - decouples route values - #global - sets a global value - sets the global inherited values - handles different parents - overrides global values - #namespace_inheritable - works with inheritable values - handles different parents - #inherit_from - notifies clones - #to_hash - return all settings as a hash - #api_class - is specific to the class - #namespace - uses new values when a new namespace starts - sets a value until the end of a namespace +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::API::Instance - boolean constant - sets Boolean as a type - Params endpoint type - params type is a boolean +Grape::API::Helpers + default + default + public + private + patch + default + public + private -Grape::Validations::Types::ArrayCoercer - #call - an array of primitives - coerces elements in the array - an array of sets - coerces elements in the nested set - an array of arrays - coerces elements in the nested array +Grape::API::Helpers + defines parameters -Grape::Validations::Types - ::structure? - recognizes Hash as a structure - recognizes Set as a structure - recognizes Array as a structure - ::primitive? - recognizes String as a primitive - recognizes Integer as a primitive - recognizes Numeric as a primitive - recognizes Symbol as a primitive - recognizes Date as a primitive - recognizes BigDecimal as a primitive - recognizes Grape::API::Boolean as a primitive - recognizes Time as a primitive - recognizes Float as a primitive - recognizes DateTime as a primitive - identifies unknown types - ::special? - provides special handling for File - provides special handling for JSON - provides special handling for [JSON] - provides special handling for Rack::Multipart::UploadedFile - ::custom? - returns false if the type's #parse method takes other than one argument - returns false if the type does not respond to :parse - returns true if the type responds to :parse with one argument - ::build_coercer - has internal cache variables - caches the result of the build_coercer method - special types - when JSON - is expected to eq Grape::Validations::Types::Json - 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 +Grape::Endpoint + #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 only :artist_id without :id + return :filter and :id parameters in declared for second enpoint inside route_param + #declared; call from child namespace + is expected to eq 200 + with include_parent_namespaces: true + returns declared parameters from every parent namespace + without declaration + returns all requested parameters + with include_parent_namespaces: false + returns declared parameters only from current namespace + #declared + does not work in a before filter + includes attributes with value that evaluates to nil + builds nested params + shows nil for nested params if include_missing is true + includes attributes with value that evaluates to false + does not include renamed missing attributes if that option is passed + includes missing attributes with defaults when there are nested hashes + filters out any additional params that are given + shows nil for multiple allowed types if include_missing is true + does not include missing attributes when there are nested hashes + has as many keys as there are declared params + builds nested params when given array + does not include missing attributes if that option is passed + stringifies if that option is passed + builds arrays correctly + has a optional param with default value all the time + when the param is missing and include_missing=false + sets nested objects to be nil + when the param is missing and include_missing=true + includes all declared children when type=Hash + sets objects with type=Array to be an array + sets objects with type=Set to be a set + sets objects with type=Hash to be a hash + when params are not built with default class + returns an object that corresponds with the params class - hash + returns an object that corresponds with the params class - hash with indifferent access +W, [2025-04-22T01:51:41.474047 #113852] 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-04-22T01:51:41.474553 #113852] 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 + parameter renaming + with a renamed root parameter + validates the renamed parameter correctly (original name) + generates the correct parameter names for documentation + ignores the renamed parameter (as name) + maps the renamed parameter correctly (original name) + with a renamed hash with nested parameters + validates the renamed parameter correctly (original name) + generates the correct parameter names for documentation + ignores the renamed parameter (as name) + maps the renamed parameter correctly (original name) + with a deeply nested parameter structure + generates the correct parameter names for documentation + does not modify the request params + maps the renamed parameter correctly + maps no parameters when none are given + with a renamed hash with nested renamed parameter + ignores the renamed parameter (as name, 1) + maps the renamed parameter correctly (original name) + validates the renamed parameter correctly (original name) + ignores the renamed parameter (as name, 3) + ignores the renamed parameter (as name, 2) + generates the correct parameter names for documentation + #declared; mixed nesting + can access parent route_param -Grape -/build/reproducible-path/ruby-grape-2.0.0/lib/grape/eager_load.rb:20: warning: possibly useless use of :: in void context - compile! - eager_load! +Grape::Endpoint + get + responds without ext + responds with ext + put + responds -Grape::Exceptions::MissingMimeType - #message - contains the problem in the message - contains the resolution in the message +A named API + can access the name of the API -Grape::Util::ReverseStackableValues +Grape::Exceptions::ValidationErrors + 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 :grape_exceptions handler with block + with content_type xml + returns body parsing error message + with content_type json + returns body parsing error message + api without a rescue handler + with content_type text + can recover from failed body parsing + with content_type xml + can recover from failed body parsing + 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 :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 + can recover from failed body parsing + with content_type xml + can recover from failed body parsing + +Grape::Util::InheritableValues #delete deletes a key does not delete parent values + #[] + parent values are not changed + overwrites parent value with the current one + returns a value + returns parent value when no value is set + #[]= + sets a value #clone - copies all values - complex (i.e. not primitive) data types (ex. middleware, please see bug #930) + 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 + +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::DSL::Middleware + .insert + adds a middleware with the right operation + .middleware + returns the middleware stack + .insert_after + adds a middleware with the right operation + .use + adds a middleware with the right operation + .insert_before + adds a middleware with the right operation + +Grape::Util::StackableValues #[] + combines parent and actual values parent values are not changed - combines parent and actual values (actual first) returns parent value when no value is set returns an array of values - #keys - returns all keys - returns merged keys with parent + #clone + copies all values + complex (i.e. not primitive) data types (ex. middleware, please see bug #930) + copies values; does not duplicate them #[]= - pushes further values sets a value + pushes further values can handle array values + #delete + deletes a key + does not delete parent values + #keys + returns merged keys with parent + returns all keys #to_hash returns a Hash representation -Grape::Middleware::Auth::Strategies - Basic Auth - throws a 401 is wrong auth is given - throws a 401 if no auth is given - authenticates if given valid creds +Rack::Sendfile + when calling sendfile + contains Sendfile headers + when streaming non file content + not contains Sendfile headers -Grape::Endpoint - put - responds - get - responds +Grape::DSL::Helpers + .helpers + uses many provided modules + adds a module with the given block + uses provided modules + with an external file + sets Boolean as a Grape::API::Boolean + in child classes + is available -Grape::Exceptions::InvalidResponse +Validator with instance variables + passes validation every time + +Grape::Util::InheritableSetting + #route + works with route values + sets a value until the next route + #to_hash + return all settings as a hash + #namespace_reverse_stackable + works with reverse stackable values + #inherit_from + notifies clones + #api_class + is specific to the class + #namespace_stackable + works with stackable values + #global + handles different parents + sets the global inherited values + overrides global values + sets a global value + #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 + adds itself to original as clone + decouples namespace inheritable values + decouples namespace values + decouples namespace reverse stackable values + decouples route values + decouples namespace stackable values + +Grape::Request + #headers + with http headers in env + cuts HTTP_ prefix and capitalizes header name words + with symbolic header names + converts them to string + with non-HTTP_* stuff in env + does not include them + #params + by default returns stringified parameter keys + when build_params_with: Grape::Extensions::Hash::ParamBuilder is specified + returns symbolized params + with grape.routing_args + cuts version and route_info + 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 + +Grape::Exceptions::MissingGroupType #message - contains the problem in the message + is expected to include "group type is required" + Grape::Exceptions::MissingGroupTypeError + behaves like deprecated class + raises an ActiveSupport::DeprecationException -Grape::Validations::Validators::AllOrNoneOfValidator - #validate! - when mutually exclusive params are deeply nested - returns a validation error with full names of the params - when a subset of restricted params are present - returns a validation error - when restricted params are nested inside required hash - returns a validation error with full names of the params - when no restricted params are present - does not return a validation error - when custom message is specified - returns a validation error - when mutually exclusive params are nested inside array - returns a validation error with full names of the params - when all restricted params are present - does not return a validation error - mixed with other params - does not return a validation error +Grape::DSL::Desc + .desc + sets a description + can be set with a block + can be set with options and a block + +Grape::Middleware::Auth::DSL + .auth + can be called multiple times + sets auth parameters + .http_basic + sets auth parameters + .http_digest + when realm is not hash + sets auth parameters + when realm is a hash + sets auth parameters + +Grape + .config + is expected to eq {:param_builder=>Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder} + +Grape::API::Helpers + example subclass + given expected params + inherits helpers from a superclass + with lack of expected params + returns missing error + 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 + +Grape::API + works for specified format + doesn't work for format different than specified + works for unspecified format Grape::Endpoint - #route - returns route_info - #cookies - returns an instance of Cookies - #stream - returns default - set - as a stream object - sets Content-Length header to nil - sets Transfer-Encoding header to nil - returns value wrapped in StreamResponse - emits no deprecation warnings - sets Cache-Control header to no-cache - as a file path - sets Content-Length header to nil - sets Transfer-Encoding header to nil - returns file body wrapped in StreamResponse - sets Cache-Control header to no-cache - emits no deprecation warnings - does not change Cache-Control header - as a non-stream object - raises an error that the object must implement :each - #content_type - returns default - set - returns value - #error! - throws :error - default_error_status - sets status to default_error_status - thrown - sets status - #return_no_content - sets the status code and body - #status - returns status set - defaults to 200 on GET - raises error if unknow symbol is passed - accepts symbol for status - defaults to 200 on DELETE with a body present - raises error if status is not a integer or symbol - defaults to 204 on DELETE - defaults to 201 on POST - accepts unknown Integer status codes - defaults to 200 on GET - defaults to 200 on GET #present + with + entity + instance + presents dummy object + multiple entities + instance + presents both dummy objects dummy presents dummy object non mergeable entity instance fails - multiple entities - instance - presents both dummy objects - with - entity - instance - presents dummy object #declared is not available by default + #cookies + returns an instance of Cookies + #return_no_content + sets the status code and body #sendfile returns default set - as object - raises an error that only a file path is supported as file path - does not change the Transfer-Encoding header - returns value wrapped in StreamResponse - does not change the Cache-Control header does not change the Content-Length header sends no deprecation warnings - #redirect - default - sets location header - sets status to 302 - permanent - sets status to 301 - sets location header + does not change the Cache-Control header + returns value wrapped in StreamResponse + does not change the Transfer-Encoding header + as object + raises an error that only a file path is supported #body returns default - set - returns value false sets status to 204 - #version - defaults to nil - returns env[api.version] + set + returns value #file - 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 set as object (backward compatibility) - emits a warning that this method is deprecated 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 as file path 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 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 + #status + defaults to 201 on POST + raises error if unknow symbol is passed + defaults to 200 on GET + defaults to 200 on GET + raises error if status is not a integer or symbol + defaults to 200 on GET + accepts symbol for status + defaults to 204 on DELETE + returns status set + accepts unknown Integer status codes + defaults to 200 on DELETE with a body present + #redirect + default + sets location header + sets status to 302 + permanent + sets location header + sets status to 301 + #route + returns route_info + #stream + returns default + set + as a file path + sets Transfer-Encoding header to nil + does not change Cache-Control header + emits no deprecation warnings + sets Cache-Control header to no-cache + returns file body wrapped in StreamResponse + sets Content-Length header to nil + as a stream object + sets Transfer-Encoding header to nil + returns value wrapped in StreamResponse + emits no deprecation warnings + sets Content-Length header to nil + sets Cache-Control header to no-cache + as a non-stream object + raises an error that the object must implement :each + #error! + throws :error + default_error_status + sets status to default_error_status + thrown + sets status + #version + returns env[api.version] + defaults to nil + #content_type + returns default + set + returns value -Grape::Endpoint - put - responds - get - responds without ext - -MultiJson - uses multi_json (PENDING: Temporarily skipped with xit) - -Grape::Validations::Validators::MutualExclusionValidator - #validate! - when mutually exclusive params are deeply nested - returns a validation error with full names of the params - when all mutually exclusive params are present - returns a validation error - mixed with other params - 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 nested inside array - returns a validation error with full names of the params - when no mutually exclusive params are present - does not return a validation error - 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 passed - returns a validation error with full names of the params - when params are empty - does not return a validation error - -Grape::Endpoint - get - responds without ext - responds with ext - put - responds - -Grape::DSL::Callbacks - .before_validation - adds a block to "before_validation" - .before - adds a block to "before" - .after - adds a block to "after" - .after_validation - adds a block to "after_validation" - -Grape::DSL::RequestResponse - .default_error_formatter - sets a new error formatter - .default_error_status - sets a default error status - .default_format - returns the format without paramter - sets the default format - .content_type - sets a content type for a format - .content_types - returns all content types - .rescue_from - :grape_exceptions - sets a rescue handler declared through :with option - sets rescue all to true - sets given proc as rescue handler - sets given block as rescue handler - list of exceptions is passed - sets hash of exceptions as rescue handlers - sets given proc as rescue handler for each key in hash - rescues only base handlers if rescue_subclasses: false option is passed - sets a rescue handler declared through :with option for each key in hash - sets given block as rescue handler for each key in hash - :all - sets given proc as rescue handler - abort if :with option value is not Symbol, String or Proc - sets a rescue handler declared through :with option - sets given block as rescue handler - abort if both :with option and block are passed - sets rescue all to true - .represent - sets a presenter for a class - .error_formatter - understands syntactic sugar - sets a error_formatter - .format - sets a new format - .formatter - sets the formatter for a content type - .parser - sets a parser for a content type - -Grape::API - works for specified format - doesn't work for format different than specified - works for unspecified format - -Grape::Exceptions::InvalidVersionerOption - #message - contains the problem in the message - -Grape::Validations::Validators::ValuesValidator - allows numeric string for int value using lambda - raises IncompatibleOptionValues on an invalid default value from proc - validates against values in an endless range - validates default value from proc against values in a proc - allows values to be a kind of the coerced type not just an instance of it - does not allow an invalid value for a parameter - allows values to be a kind of the coerced type in an array - validates default value from proc - allows a valid default value - allows a valid default value - allows a blank value when the allow_blank option is true - does not allow invalid value using 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 a default value with except - does not allow an invalid value for a parameter using an endless range - raises IncompatibleOptionValues when values contains a value that is not a kind of the type - allows a valid value for a parameter - validates against an empty array in a proc - allows a proc for values -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 type is incompatible with values array - validates against values in a proc - rejects all values if values is an empty array -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 validate updated values without proc - raises IncompatibleOptionValues on an invalid default value - raises IncompatibleOptionValues when except contains a value that is not a kind of the type - allows value using lambda - does not allow an invalid value for a parameter using lambda - with a range of values - rejects a single value outside the range - allows a single value inside of the range - allows an array of values inside of the range - rejects an array of values if any of them are outside the range - 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 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 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 outside except and outside value - 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 -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 -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 - 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' - returns an error status code - when proc has an arity of 1 - accepts a valid value - rejects an invalid value - 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 - 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 - with a custom validation message - allows a valid value for a parameter - validates against values in a proc - does not allow an invalid value for a parameter using lambda - does not allow an invalid value for a parameter - 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 lambda values - chooses default - only evaluates values dynamically with each request - 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 - 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 - boolean values - rejects a value which is not in the list - allows a value from the list - 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) - 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 -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 an array of values if any of them matches except - 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) - 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) - allows any other value outside excepts when type is included - -Grape::Validations - using a custom length validator - under 140 characters - over 140 characters - specified in the query string - Grape::Validations::Base - behaves like deprecated class - raises an ActiveSupport::DeprecationException - using a custom validator with message_key - fails with message - using a custom body-only validator - allows field in body - ignores field in query - 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 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 +Grape::Validations::Types::PrimitiveCoercer + #call + a type unknown in Dry-types + raises error on init + Time + coerces an empty string to nil + BigDecimal + coerces an empty string to nil + coerces to BigDecimal + Float + coerces an empty string to nil + String + does not coerce an empty string to nil + coerces to String + Numeric + accepts a non-nil value + coerces an empty string to nil + DateTime + coerces an empty string to nil + Boolean + returns an error when the given value cannot be coerced + coerces 'false' to false + coerces 'true' to true + coerces '0' to false + coerces an empty string to nil + coerces '1' to true + coerces 'true' to true + coerces 'false' to false + Integer + accepts non-nil value + coerces an empty string to nil + Symbol + coerces an empty string to nil + the strict mode + BigDecimal + returns a value as it is when the given value is BigDecimal + returns an error when the given value is not BigDecimal + Boolean + returns an error when the given value is not Boolean + returns a value as it is when the given value is Boolean 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 - detection - uses the file extension format if provided before headers - uses the format parameter if one is provided - uses the requested format if provided in headers - uses the xml extension if one is provided - uses the json extension if one is provided - uses the default format if none is provided 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 - uses quality rankings to determine formats - ignores invalid quality rankings - handles quality rankings that have a default 1.0 value - parses headers with other attributes - detects from the Accept header - handles quality rankings mixed with nothing - ensures that a quality of 0 is less preferred than any other content type - parses headers with symbols as hash keys - with custom vendored content types - uses the custom type - format - uses custom json formatter - uses custom formatter - default - uses default json formatter - send file - returns a file response input - ignores multipart/form-data ignores application/x-www-form-urlencoded - parses the chunked body from PUT and copies values into rack.request.from_hash - ignores multipart/form-data + rewinds IO parses the chunked body from PATCH and copies values into rack.request.from_hash - parses the chunked body from POST and copies values into rack.request.from_hash - ignores application/x-www-form-urlencoded - ignores application/x-www-form-urlencoded - ignores multipart/form-data - ignores multipart/form-data rewinds IO ignores multipart/mixed - ignores multipart/related - ignores multipart/related - parses the body from an xml PATCH and copies values into rack.request.from_hash + ignores multipart/mixed + ignores application/x-www-form-urlencoded + ignores multipart/form-data parses the body from an xml POST and copies values into rack.request.from_hash + ignores multipart/mixed ignores multipart/related + ignores multipart/form-data + parses the body from an xml PUT and copies values into rack.request.from_hash ignores multipart/mixed + ignores multipart/form-data + ignores multipart/related ignores application/x-www-form-urlencoded - parses the body from an xml PUT and copies values into rack.request.from_hash parses the body from an xml DELETE and copies values into rack.request.from_hash - rewinds IO + parses the chunked body from PUT and copies values into rack.request.from_hash parses the chunked body from DELETE and copies values into rack.request.from_hash - ignores multipart/mixed - rewinds IO + ignores multipart/related ignores multipart/related rewinds IO - ignores multipart/mixed - application/json - parses the body from DELETE 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 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 + parses the body from an xml PATCH and copies values into rack.request.from_hash + ignores application/x-www-form-urlencoded + rewinds IO + ignores multipart/form-data + parses the chunked body from POST and copies values into rack.request.from_hash when body is empty does not read and parse the body 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 DELETE 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 - application/json; charset=utf-8 - parses the body from PATCH and copies values into rack.request.form_hash - application/json 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 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 PUT and copies values into rack.request.form_hash - when body is empty + parses the body from PATCH 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 + 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 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 + parses the body from PATCH and copies values into rack.request.form_hash + 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 POST and copies values into rack.request.form_hash 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 POST and copies values into rack.request.form_hash + application/json + 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 nil 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 - when body is nil - does not read and parse the body - when body is nil - does not read and parse the body + inheritable formatters + returns response by invalid formatter + accept header detection + handles quality rankings mixed with nothing + ignores invalid quality rankings + uses quality rankings to determine formats + parses headers with symbols as hash keys + ensures that a quality of 0 is less preferred than any other content type + handles quality rankings that have a default 1.0 value + parses headers with vendor and api version + parses headers with other attributes + detects from the Accept header + with custom vendored content types + uses the custom type + format + uses custom formatter + uses custom json formatter + default + uses default json formatter + serialization + looks at the bodies for possibly serializable data + xml + calls #to_xml if the content type is xml + default format + calls #to_json since default format is json + jsonapi + calls #to_json if the content type is jsonapi error handling rescues formatter-specific exceptions caught error of type StandardError in after callback inside Grape::Middleware::Formatter : StandardError does not rescue other exceptions - inheritable formatters - returns response by invalid formatter no content responses - does not modify a 154 response - does not modify a 148 response - does not modify a 110 response - does not modify a 135 response - does not modify a 196 response - does not modify a 198 response - does not modify a 191 response - does not modify a 195 response - does not modify a 161 response - does not modify a 168 response - does not modify a 173 response - does not modify a 128 response + does not modify a 124 response does not modify a 164 response - does not modify a 149 response - does not modify a 132 response - does not modify a 167 response - does not modify a 186 response - does not modify a 144 response - does not modify a 170 response - does not modify a 166 response - does not modify a 163 response - does not modify a 162 response - does not modify a 174 response - does not modify a 126 response - does not modify a 112 response - does not modify a 187 response - does not modify a 178 response - does not modify a 141 response - does not modify a 140 response - does not modify a 106 response does not modify a 204 response - does not modify a 114 response - does not modify a 127 response - does not modify a 147 response - does not modify a 157 response - does not modify a 113 response - does not modify a 129 response - does not modify a 159 response + does not modify a 169 response + does not modify a 187 response + does not modify a 145 response + does not modify a 190 response does not modify a 133 response - does not modify a 142 response - does not modify a 185 response - does not modify a 130 response - does not modify a 182 response + does not modify a 163 response + does not modify a 161 response + does not modify a 109 response does not modify a 143 response - does not modify a 151 response - does not modify a 197 response - does not modify a 155 response - does not modify a 152 response - does not modify a 176 response + does not modify a 189 response does not modify a 100 response - does not modify a 104 response - does not modify a 116 response + does not modify a 122 response + does not modify a 182 response + does not modify a 106 response + does not modify a 146 response + does not modify a 110 response + does not modify a 115 response + does not modify a 185 response + does not modify a 140 response + does not modify a 159 response + does not modify a 173 response + does not modify a 178 response + does not modify a 198 response + does not modify a 158 response + does not modify a 114 response + does not modify a 105 response + does not modify a 170 response + does not modify a 167 response + does not modify a 132 response + does not modify a 137 response + does not modify a 131 response + does not modify a 196 response + does not modify a 181 response + does not modify a 304 response + does not modify a 129 response + does not modify a 117 response + does not modify a 113 response does not modify a 108 response - does not modify a 199 response + does not modify a 123 response + does not modify a 151 response + does not modify a 111 response + does not modify a 125 response + does not modify a 183 response does not modify a 150 response + does not modify a 101 response does not modify a 184 response - does not modify a 181 response - does not modify a 131 response - does not modify a 188 response - does not modify a 180 response - does not modify a 117 response + does not modify a 128 response + does not modify a 104 response does not modify a 177 response + does not modify a 180 response + does not modify a 188 response + does not modify a 186 response + does not modify a 171 response + does not modify a 144 response + does not modify a 119 response does not modify a 172 response + does not modify a 193 response + does not modify a 134 response + does not modify a 126 response + does not modify a 192 response + does not modify a 139 response + does not modify a 152 response + does not modify a 112 response + does not modify a 142 response + does not modify a 135 response + does not modify a 191 response + does not modify a 165 response + does not modify a 168 response + does not modify a 197 response + does not modify a 118 response + does not modify a 116 response + does not modify a 194 response + does not modify a 166 response does not modify a 160 response - does not modify a 119 response - does not modify a 153 response - does not modify a 158 response - does not modify a 102 response does not modify a 121 response - does not modify a 194 response - does not modify a 146 response - does not modify a 165 response - does not modify a 190 response - does not modify a 134 response - does not modify a 183 response + does not modify a 149 response + does not modify a 154 response + does not modify a 157 response does not modify a 156 response - does not modify a 189 response - does not modify a 179 response - does not modify a 193 response + does not modify a 155 response + does not modify a 103 response + does not modify a 148 response does not modify a 136 response - does not modify a 304 response - does not modify a 101 response - does not modify a 109 response - does not modify a 115 response - does not modify a 111 response - does not modify a 105 response + does not modify a 141 response + does not modify a 130 response does not modify a 138 response - does not modify a 169 response - does not modify a 103 response + does not modify a 102 response + does not modify a 174 response + does not modify a 107 response + does not modify a 195 response + does not modify a 179 response + does not modify a 162 response + does not modify a 147 response + does not modify a 127 response does not modify a 120 response - does not modify a 145 response + does not modify a 153 response + does not modify a 199 response + does not modify a 176 response does not modify a 175 response - does not modify a 124 response - does not modify a 139 response - does not modify a 171 response - does not modify a 107 response - does not modify a 123 response - does not modify a 118 response - does not modify a 192 response - does not modify a 137 response - does not modify a 125 response - does not modify a 122 response + detection + uses the requested format if provided in headers + uses the xml extension if one is provided + uses the default format if none is provided + uses the json extension if one is provided + uses the file extension format if provided before headers + uses the format parameter if one is provided content-type + is set for txt is set to closest generic for custom vendored/versioned without registered type is set for json is set for vendored with registered type is set for xml - is set for txt is set for custom + send file + returns a file response -Grape::Exceptions::Base - #to_s - is expected to eq "a_message" - #message - is expected to eq "a_message" - #compose_message - when I18n does not enforce available locales - when the fallback locale is available - returns the translated message - when the fallback locale is not available - returns the translated message - when I18n enforces available locales - when the fallback locale is not available - returns the translation string - when the fallback locale is available - returns the translated message +Grape::API + .recognize_path + returns nil if given path does not match with registered routes + fetches endpoint by given path + +Grape::Validations::Validators::PresenceValidator + with multiple parameters per requires + validates for all defined params + with a custom validation message + valid when set + requires when empty + requires when missing + with reused parameter documentation once required and once optional + works with optional + works with required + with a custom type + does not validate their type when it is missing + with nested parameters + validates nested parameters + with triply nested required parameters + validates triple nested parameters + with required parameters and no type + validates name, company + with a required regexp parameter supplied in the POST body + validates id + without validation + does not validate for any params + with a required non-empty string + requires when empty + requires when missing + valid when set + +Grape::Exceptions::InvalidAcceptHeader + 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=true and with rescue_from :all handler and http_codes + 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 + 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 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=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 + 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=false, http_codes but without a rescue handler + that receives + 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 + 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 + 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=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 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 include the X-Cascade=pass header + does not accept the request + 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 not include the X-Cascade=pass header + does show rescue handler processing + +Grape::Validations::Validators::RegexpValidator + accepts nil + accepts valid input + invalid input + refuses empty + refuses inapppopriate + regexp with array + accepts valid items + refuses nil items + refuses inapppopriate items + accepts nil instead of array + refuses empty items + nested regexp with array + refuses inapppopriate + custom validation message + accepts nil + accepts valid input + regexp with array + accepts nil instead of array + refuses empty items + refuses inapppopriate items + refuses nil items + accepts valid items + with invalid input + refuses inapppopriate + refuses empty + +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 + the description key instead of desc + adds the given description + false 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 + documentation is disabled + does not document attributes + #extract_details + does not clean up doc attrs mandatory for validators + cleans up doc attrs needed for documentation only + tells when attributes are required + +Grape::API + execute first request in reasonable time + +Grape::Middleware::Error + + is possible to return errors in json format + + is possible to return errors in jsonapi format + with defaults + does not trap errors by default + + is possible to return hash errors in json format + + responds to custom Grape exceptions appropriately + 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 + + is possible to return the backtrace and the original exception in txt format + + is possible to return the backtrace and the original exception in xml format + + is possible to return hash errors in jsonapi format + + is possible to specify a custom formatter + + does not trap regular error! codes + with rescue_all + StandardError exception + defaults to a 500 status + sets the message appropriately + Non-StandardError exception + does not trap errors other than StandardError + + is possible to specify a different default status code + with rescue_options :backtrace and :exception set to true + is possible to return the backtrace and the original exception in json format + + is possible to return hash errors in xml format + + is possible to return errors in xml format + +Grape::Middleware::Versioner::Param + provides a nil version if no version is given + sets the API version based on the default param (apiver) + cuts (only) the version out of the params + 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 + with specified versions + throws an error if a non-allowed version is specified + allows versions that have been specified + 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 v2 request + responds correctly to a v1 request Grape::Endpoint + put + responds get - routes to a path with multiple params with dots - routes to namespace and path params with dots, with merged requirements - routes to namespace and path params with dots, with overridden requirements - routes to a namespace param with dots + responds without ext -Grape::Middleware::Versioner::Header +Grape::Middleware::Versioner::AcceptVersionHeader succeeds if :strict is set to false - succeeds if :strict is set to false and given an invalid header 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 v1 request - responds correctly to a v2 request - 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 set - is nil if not provided - when multiple versions are specified - succeeds with v2 - succeeds with v1 - fails with another version - api.type and api.subtype - sets preferred type - sets preferred type and subtype - sets type and subtype to first choice of content type if no preference given - with missing vendor option - fails - api.version - fails with 406 Not Acceptable if version is invalid - is set if format provided - is set when :strict is set - 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 - 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 + when :strict and cascade: false 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 - fails with 406 Not Acceptable if header contains a single invalid accept - api.vendor + api.version is set - fails with 406 Not Acceptable if vendor is invalid + fails with 406 Not Acceptable if version is not supported is set if format provided - when version is set - is set - fails with 406 Not Acceptable if vendor is invalid - is set if format provided + +Grape::Exceptions::UnknownValidator + #message + contains the problem in the message + +Grape::Validations::Validators::ValuesValidator + allows a valid default value + raises IncompatibleOptionValues when type is incompatible with values array +Error 'comparison of String with 0 failed' raised while validating attribute 'number' + does not allow non-numeric string value for int value using lambda + validates default value from proc against values in a proc + raises IncompatibleOptionValues on an invalid default value + does not allow invalid value using lambda + raises IncompatibleOptionValues on an invalid default value from proc +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 + validates default value from proc + rejects all values if values is an empty array + does not allow an invalid value for a parameter using lambda + allows a valid value for a parameter + raises IncompatibleOptionValues when except contains a value that is not a kind of the type + does not allow an invalid value for a parameter using an endless range + allows value using lambda + allows values to be a kind of the coerced type not just an instance of it + raises IncompatibleOptionValues when values contains a value that is not a kind of the type + allows a proc for values + validates against values in an endless range + allows numeric string for int value using lambda + allows a blank value when the allow_blank option is true + allows values to be a kind of the coerced type in an array + does not validate updated values without proc + validates against values in a proc + validates against an empty array in a 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 a default value with except + allows a valid default value + does not allow an invalid value for a parameter + with a range of values + rejects a single value outside the range + rejects an array of values if any of them are outside the range + allows an array of values inside of the range + allows a single value inside of the range + 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 + 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) + 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 + 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 + 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 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) + rejects a single invalid 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) + 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) + accepts multiple valid values + when proc has an arity of 1 + accepts a valid value + rejects an 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' + returns an error status code + 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) + 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 +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 + boolean values + allows a value from the list + rejects a value which is not in the list + 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) + 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 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) + 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 + with a custom validation message + validates against values in a proc + does not allow an invalid value for a parameter using lambda + does not allow an invalid value for a parameter + allows a valid value for a parameter + 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 + 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 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) + 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 + with a lambda values + only evaluates values dynamically with each request + chooses default Grape::Endpoint - sets itself in the env upon call + does not persist params between calls resets all instance variables (except block) between calls + sets itself in the env upon call allows explicit return calls - does not persist params between calls - #cookies - deletes cookie - is callable from within a block - deletes cookies with path - sets and update browser cookies - sets browser cookies and does not set response cookies anchoring - delete 200, with response body - responds to /example/and/some/more for the non-anchored delete method - delete 204, with nil has return value (no explicit body) - responds to /example delete method - delete 204, with empty array has return value (no explicit body) - responds to /example delete method - delete 204 - allows for the anchoring option with a delete method - responds to /example/and/some/more for the non-anchored delete method - anchors paths by default for the delete method all other - anchors paths by default for the OPTIONS method - allows for the anchoring option with a PATCH method - anchors paths by default for the GET method - anchors paths by default for the HEAD method anchors paths by default for the PATCH method - anchors paths by default for the POST method - responds to /example/and/some/more for the non-anchored POST method - anchors paths by default for the PUT method responds to /example/and/some/more for the non-anchored PATCH method - allows for the anchoring option with a HEAD method + allows for the anchoring option with a GET method + anchors paths by default for the HEAD method allows for the anchoring option with a PUT method - responds to /example/and/some/more for the non-anchored GET method responds to /example/and/some/more for the non-anchored HEAD method - allows for the anchoring option with a POST method + allows for the anchoring option with a OPTIONS method + anchors paths by default for the OPTIONS method + anchors paths by default for the PUT method + allows for the anchoring option with a PATCH method + anchors paths by default for the GET method + anchors paths by default for the POST method responds to /example/and/some/more for the non-anchored OPTIONS method + allows for the anchoring option with a HEAD method responds to /example/and/some/more for the non-anchored PUT method - allows for the anchoring option with a GET method - allows for the anchoring option with a OPTIONS method + allows for the anchoring option with a POST 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 + delete 204, with nil has return value (no explicit body) + responds to /example 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 200, with a return value (no explicit body) responds to /example delete method + delete 204, with empty array 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 + filters + allows adding to response with present + after filters + overrides the response body if it sets it + does not override the response body with its return + when terminating the response with error! + allows prior and parent filters of same type to run + breaks normal call chain + before filters + runs the before filter if set + version headers + result in a 406 response if they cannot be parsed by rack-accept + result in a 406 response if they are invalid + request + includes prefix + includes version v1 + includes version v1 + is set to the url requested + #params + default class + is a ActiveSupport::HashWithIndifferentAccess + sets a value to params + params + #cookies + sets browser cookies and does not set response cookies + is callable from within a block + deletes cookie + deletes cookies with path + sets and update browser cookies + #redirect + allows for an optional redirect body override + has status code 303 if it is not get request and it is http 1.1 + support permanent redirect + redirects to a url with status 302 + #initialize + takes a settings stack, options, and a block .before_each is able to override a helper is settable via block is settable via reference is able to stack helper - #initialize - takes a settings stack, options, and a block - validation errors - returns the errors, and passes headers + #headers + includes request headers + includes headers passed as symbols + includes additional request headers #error! - accepts a code - accepts an object and render it in format + sets the status code for the endpoint merges additional headers with headers set before call + accepts an object and render it in format accepts a frozen object accepts a message + accepts a code can specifiy headers does not merges additional headers with headers set after call - sets the status code for the endpoint - #params - sets a value to params - params - default class - is a ActiveSupport::HashWithIndifferentAccess - #redirect - allows for an optional redirect body override - 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 - filters - allows adding to response with present - after filters - overrides the response body if it sets it - does not override the response body with its return - 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 - .generate_api_method - raises ArgumentError if a block is not given - raises NameError if the method name is already in use - returns a Proc - #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 - instrumentation - notifies AS::N #params - parses from path segments does not accept text/plain in JSON format if application/json is specified as content type deeply converts nested params responds with a 415 for an unsupported content-type is available to the caller + parses from path segments content type with params does not response with 406 for same type without params responses with given content type in headers - 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 + from body parameters + converts XML bodies to params + returns a 400 if given an invalid multipart body + converts XML bodies to params + converts JSON bodies to params + does not include parameters not defined by the body + does not convert empty JSON bodies to params when the limit on multipart files is exceeded returns a 413 if given too many multipart files + sets a value to params + params with special requirements parses email param with provided requirements for params parses many params with provided regexps namespace requirements parse email param with provided requirements for params overrides outer namespace's requirements - from body parameters - converts XML bodies to params - does not convert empty JSON bodies to params - returns a 400 if given an invalid multipart body - does not include parameters not defined by the body - converts XML bodies to params - converts JSON bodies to params - 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 - request - includes prefix - is set to the url requested - includes version v1 - includes version v1 + precedence + route string params have higher precedence than body params + route string params have higher precedence than URL params + #status + is set as default to 201 for post + is set as default to 200 for get + is callable from within a block #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 - version headers - result in a 406 response if they are invalid - result in a 406 response if they cannot be parsed by rack-accept - #headers - includes headers passed as symbols - includes request headers - includes additional request headers + when performing an undefined method of an instance inside the API + raises NoMethodError but stripping the internals of the Object class + validation errors + returns the errors, and passes headers + #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 + .generate_api_method + raises NameError if the method name is already in use + returns a Proc + raises ArgumentError if a block is not given + instrumentation + notifies AS::N -Grape::Endpoint - #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 - #declared; from a nested mounted endpoint - can access parent attributes - parameter renaming - with a renamed hash with nested parameters - ignores the renamed parameter (as name) - generates the correct parameter names for documentation - validates the renamed parameter correctly (original name) - maps the renamed parameter correctly (original name) - with a renamed hash with nested renamed parameter - validates the renamed parameter correctly (original name) - generates the correct parameter names for documentation - ignores the renamed parameter (as name, 3) - maps the renamed parameter correctly (original name) - ignores the renamed parameter (as name, 1) - ignores the renamed parameter (as name, 2) - with a deeply nested parameter structure - maps no parameters when none are given - maps the renamed parameter correctly - generates the correct parameter names for documentation - does not modify the request params - with a renamed root parameter - validates the renamed parameter correctly (original name) - maps the renamed parameter correctly (original name) - generates the correct parameter names for documentation - ignores the renamed parameter (as name) - #declared - includes missing attributes with defaults when there are nested hashes - has as many keys as there are declared params - does not include missing attributes if that option is passed - has a optional param with default value all the time - builds nested params - builds arrays correctly - does not include missing attributes when there are nested hashes - does not include renamed missing attributes if that option is passed - builds nested params when given array - shows nil for nested params if include_missing is true - includes attributes with value that evaluates to false - does not work in a before filter - filters out any additional params that are given - includes attributes with value that evaluates to nil - shows nil for multiple allowed types if include_missing is true - stringifies if that option is passed - when the param is missing and include_missing=true - sets objects with type=Array to be an array - sets objects with type=Set to be a set - includes all declared children when type=Hash - sets objects with type=Hash to be a hash - when params are not built with default class - returns an object that corresponds with the params class - hash - returns an object that corresponds with the params class - hash with indifferent access -W, [2024-03-18T17:27:46.572795 #49283] 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-03-18T17:27:46.573802 #49283] 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 - when the param is missing and include_missing=false - sets nested objects to be nil - #declared; mixed nesting - can access parent route_param - #declared; call from child namespace - is expected to eq 200 - without declaration - returns all requested parameters - with include_parent_namespaces: false - returns declared parameters only from current namespace - with include_parent_namespaces: true - returns declared parameters from every parent namespace +Grape::API::Instance + boolean constant + sets Boolean as a type + Params endpoint type + params type is a boolean -Grape::API::Helpers - default - default - private - public - patch - default - private - public +Grape::Exceptions::Base + #to_s + is expected to eq "a_message" + #compose_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 + 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 + #message + is expected to eq "a_message" -Grape::Validations::Validators::ExactlyOneOfValidator - #validate! - when exacly one param is present - does not return a validation error - when none of the params are present - returns a validation error - when custom message is specified - returns a validation error - when params are deeply nested - returns a validation error with full names of the params - when a subset of params are present - returns 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 required hash - returns a validation error with full names of the params - 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 params are nested inside array - returns a validation error with full names of the params +Grape::Middleware::Auth::Base + authenticates if given valid creds + throws a 401 is wrong auth is given -Grape::Middleware::Stack - #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 - #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 - #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 an anonymous class given by its superclass - inserts a middleware after another middleware class - raises an error on an invalid index +Grape::DSL::RequestResponse + .represent + sets a presenter for a class + .formatter + sets the formatter for a content type + .default_error_status + sets a default error status + .rescue_from + list of exceptions is passed + sets a rescue handler declared through :with option for each key in hash + sets given block as rescue handler for each key in hash + sets given proc as rescue handler for each key in hash + sets hash of exceptions as rescue handlers + rescues only base handlers if rescue_subclasses: false option is passed + :all + sets given proc as rescue handler + sets a rescue handler declared through :with option + abort if both :with option and block are passed + sets given block as rescue handler + abort if :with option value is not Symbol, String or Proc + sets rescue all to true + :grape_exceptions + sets given proc as rescue handler + sets rescue all to true + sets given block as rescue handler + sets a rescue handler declared through :with option + .default_format + sets the default format + returns the format without paramter + .error_formatter + sets a error_formatter + understands syntactic sugar + .content_type + sets a content type for a format + .content_types + returns all content types + .format + sets a new format + .default_error_formatter + sets a new error formatter + .parser + sets a parser for a content type -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::Validations::ParamsScope + 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 + includes deeply nested parameters within #declared(params) + includes level 2 nested parameters outside the given within #declared(params) + when using custom types + coerces the parameter via the type's parse method + when validations are dependent on a parameter with specific value + (case 5) + skips validation when base param does not have a specified value + skips validation when base param is missing + applies the validation when base param has the specific value + includes the parameter within #declared(params) + (case 12) + 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) + (case 15) + 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 2) + skips validation when base param is missing + 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 + (case 1) + includes the parameter within #declared(params) + skips validation when base param does not have a specified value + skips validation when base param is missing + applies the validation when base param has the specific value + (case 13) + 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 + (case 11) + applies the validation when base param has the specific value + skips validation when base param does not have a specified value + includes the parameter within #declared(params) + (case 7) + includes the parameter within #declared(params) + skips validation when base param is missing + skips validation when base param does not have a specified value + applies the validation when base param has the specific value + (case 3) + skips validation when base param does not have a specified value + skips validation when base param is missing + includes the parameter within #declared(params) + applies the validation when base param has the specific value + (case 9) + 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 + (case 0) + 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 + skips validation when base param is missing + (case 10) + 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 6) + applies the validation when base param has the specific value + skips validation when base param does not have a specified value + skips validation when base param is missing + includes the parameter within #declared(params) + (case 4) + 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 14) + 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 8) + 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 + 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 + when validations are dependent on a parameter + does not raise an error if when using nested given + allows renaming of dependent parameters + allows renaming of dependent on parameter + includes the nested parameter within #declared(params) + raises an error if the dependent parameter was never specified + applies the validations only if the parameter is present + detect unmet nested dependency + applies the validations of multiple parameters + applies only the appropriate validation + returns a sensible error message within a nested context + does not raise an error if the dependent parameter is a Hash + includes level 2 nested parameters outside the given within #declared(params) + does not raise if the dependent parameter is not the renamed one + does not validate nested requires when given is false + allows nested dependent parameters + includes the parameter within #declared(params) + raises an error if the dependent parameter is the renamed one + when the dependent parameter is not present #declared(params) + nested given parameter + evaluate_given_true + evaluate_given_false + lateral parameter within lateral hash parameter + evaluate_given_false + evaluate_given_true + lateral hash parameter + evaluate_given_false + evaluate_given_true + lateral parameter within an array param + evaluate_given_true + evaluate_given_false + lateral parameter + evaluate_given_true + evaluate_given_false + nested given 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_true + evaluate_given_false + array without coerce type explicitly given + sets the type based on first element + raises exception when values are of different type + raises exception when range values have different endpoint types + fails to call API without 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 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 + applies group validations for every parameter + returns a validation error + with types + when created_at receives a valid date + returns a date + returns a successful response + when invalid date provided + returns a validation error + responds with HTTP error + with several group attributes + when correct data is provided + returns a successful response + when data is invalid + responds with HTTP error + returns a validation error + with nested groups + when data is invalid + responds with HTTP error + returns a validation error + when correct data is provided + returns a successful response + parameters in group + errors when no type is provided + allows Array as type + allows Hash as type + errors with an unsupported type + handles missing optional Array type + param renaming + is expected to eq 200 + renaming can be defined after default + is expected to eq "-there we go" + is expected to eq "any-any2" + is expected to eq "{\"baz\":{\"qux\":\"any\"}}" + is expected to eq "foo is empty" + renaming can be defined before default + with range values + when the default is an array + and is a subset of allowed values + does not raise an exception + and is the entire range of allowed values + does not raise an exception + when right range endpoint isn't #kind_of? the type + raises exception + when left range endpoint isn't #kind_of? the type + raises exception + when both range endpoints are #kind_of? the type + rejects values outside the range + accepts values in the range + coercing values validation with proc + allows the proc to pass validation without checking +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 + allows the proc to pass validation without checking in value + when validations are dependent on a parameter within an array param within #declared(params).to_json + applies the constraint within each value + when validations are dependent on a parameter within an array param + passes none Hash params + 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 Grape::Http::Headers + is expected to eq "X-Cascade" is expected to eq "Transfer-Encoding" is expected to eq "Location" is expected to eq "Allow" - is expected to eq "X-Cascade" - -Grape::DSL::Desc - .desc - can be set with a block - can be set with options and a block - sets a description -Grape::DSL::Validations - .reset_validations! - does not reset documentation description - resets validations - resets params - resets declared params - .params - returns a ParamsScope - evaluates block +Grape::Validations::Validators::SameAsValidator + / + is the same + is expected to eq "" + is not the same + is expected to eq "password_confirmation is not the same as password" + /custom-message + is the same + is expected to eq "" + is not the same + is expected to eq "password_confirmation not match" -Grape::Exceptions::UnsupportedGroupType +Grape::Exceptions::InvalidVersionerOption #message - is expected to include "group type must be Array, Hash, JSON or Array[JSON]" - Grape::Exceptions::UnsupportedGroupTypeError - behaves like deprecated class - raises an ActiveSupport::DeprecationException - -Grape::Exceptions::ValidationErrors - api without a rescue handler - with content_type text - can recover from failed body parsing - with content_type xml - can recover from failed body parsing - 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 :all handler - with content_type text - can recover from failed body parsing - with content_type json - can recover from failed body parsing - with content_type xml - can recover from failed body parsing - with no specific content_type - 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 - api with rescue_from :grape_exceptions handler with block - with content_type json - returns body parsing error message - with content_type xml - returns body parsing error message + contains the problem in the message -Grape::Validations::Validators::PresenceValidator - with a custom validation message - requires when empty - valid when set - requires when missing - without validation - does not validate for any params - with triply nested required parameters - validates triple nested parameters - with nested parameters - validates nested parameters - with multiple parameters per requires - validates for all defined params - with required parameters and no type - validates name, company - with a custom type - does not validate their type when it is missing - with a required non-empty string - valid when set - requires when empty - requires when missing - with reused parameter documentation once required and once optional - works with required - works with optional - with a required regexp parameter supplied in the POST body - validates id +Grape::Exceptions::InvalidResponse + #message + contains the problem in the message -Grape::Exceptions::MissingOption +Grape::Exceptions::MissingMimeType #message + contains the resolution in the message contains the problem in the message -Grape::DSL::Routing - .route - generates correct endpoint options - defines a new endpoint - resets validations - does not duplicate identical endpoints - marks end of the route - .segment - is alias to #namespace - .head - delegates to .route - .do_not_route_options! - sets do not route options option - .patch - delegates to .route - .namespace - calls #joined_space_path on Namespace - creates a new namespace with given name and options - .put - delegates to .route - .versions - returns last defined version - .scope - create a scope without affecting the URL - .resources - is alias to #namespace - .post - delegates to .route - .delete - delegates to .route - .prefix - sets a prefix for route - .version - sets a version for route - .options - delegates to .route - .group - is alias to #namespace - .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 - .get - delegates to .route - .route_param - does not modify options parameter - calls #namespace with given params - nests requirements option under param name - .do_not_route_head! - sets do not route head option - .resource - is alias to #namespace +Grape::Validations::Types + ::special? + provides special handling for Rack::Multipart::UploadedFile + provides special handling for File + provides special handling for [JSON] + provides special handling for JSON + ::build_coercer + caches the result of the build_coercer method + has internal cache variables + ::primitive? + recognizes Float as a primitive + recognizes Numeric as a primitive + recognizes Grape::API::Boolean as a primitive + recognizes BigDecimal as a primitive + recognizes DateTime as a primitive + recognizes Integer as a primitive + recognizes Symbol as a primitive + identifies unknown types + recognizes String as a primitive + recognizes Date as a primitive + recognizes Time as a primitive + ::custom? + returns true if the type responds to :parse with one argument + returns false if the type does not respond to :parse + returns false if the type's #parse method takes other than one argument + special types + when File + is expected to eq Grape::Validations::Types::File + when JSON + is expected to eq Grape::Validations::Types::Json + when Array[JSON] + is expected to eq Grape::Validations::Types::JsonArray + when Rack::Multipart::UploadedFile + is expected to eq Grape::Validations::Types::File + ::structure? + recognizes Set as a structure + recognizes Array as a structure + recognizes Hash as a structure -Grape::Validations - require_validator - when not found - raises an error - when found - is expected to equal Grape::Validations::Validators::PresenceValidator - params - required with a Hash block - doesn't throw a missing param when param is present - errors when param not present - adds to declared parameters - errors when nested param not present - errors when param is not a Hash - custom validation - when using requires with a custom validator - validates when param is not present - validates when param is 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 optional with a custom validator - validates with custom validator when param present and incorrect type - validates when param is present - skips validation when parameter isn't present - when using options on param - validates param with custom validator with options - required with an Array block - errors when param not present - doesn't throw a missing param when param is present - errors when param is not an Array - adds to declared parameters - doesn't throw a missing param when param is present but empty - group params with nested params which has a type - errors when group param is invalid - required - doesn't throw a missing param when param is present - works when required field is present but nil - adds to declared parameters - errors when param not present - multiple validation errors - throws the validation errors - optional - adds to declared parameters - validates when params is present - doesn't validate when param not present - validation within arrays - handle errors for all array elements - errors when a parameter is not present - can handle new scopes within child elements - safely handles empty arrays and blank parameters - errors when param is not an Array - errors when a parameter is not present in array within array - with block and empty args - works - requires :all or :none but except a non-existent field using Grape::Entity documentation - requires :none - adds only the entity documentation to declared params, nothing more - requires :all - adds only the entity documentation to declared params, nothing more - group - doesn't throw a missing param when param is present - adds to declared parameters - errors when param not present - 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 - 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 - required with an Array and a Hash block - does not output index [0] for Hash types - at least one of - params - does not error when two are present - errors when none are present - does not error when one is present - with a custom validation message - does not error when one is present - errors when none are present - does not error when two are present - nested params - does not error when two are present - errors when none are present - does not error when one is present - 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 - doesn't throw an error if the validation passes - errors if the validation fails - with block param - requires defaults to Array type - group defaults to Array type - optional defaults to Array type - exactly one of - params - errors when two or more are present - succeeds when one is present - errors when none are present - with a custom validation message - succeeds when one is present - errors when none are present - errors when two or more are present - nested params - errors when two or more are present - errors when none are present - succeeds when one is present - named - with block - returns defaults - overrides default value for order_by - overrides default value for order - fails with invalid value - can be included in usual params - by #use with multiple params - by #use - can be defined - in helpers - in helper module which kind of Grape::DSL::Helpers::BaseHelper - in a group - 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 - errors when no parameter from the set is present - all or none - optional params - with a custom validation message - works when none are present - errors when any one is present - works when all params are present - nested optional Array blocks - all_or_none_of - does internal validations if the outer group is present - adds to declared parameters - exactly_one_of - does no internal validations if the outer group is blank - handles deep nesting - at_least_one_of - handles validation within arrays - 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 - example based off actual real world use case - simplest example using Array -> Hash -> String - simplest example using Array -> Array -> Hash -> String - correctly indexes invalida data - multiple levels of optional and requires settings - with valid data - with invalid data - requires :none using Grape::Entity documentation - works when required_field is present - adds entity documentation to declared params - errors when required_field is not present - with block and keyword argument - works - hash with a required param with validation - works when all params match - errors when param is not a Hash - requires with nested params - validates correctly in deep nested params - mutually exclusive - 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 - in a group - errors when more than one from the set is present - works when only one from the set is present - optional with an Array block - adds to declared parameters - 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 - requires :all using Grape::Entity documentation - works when required_field is present - adds entity documentation to declared params - errors when required_field is not present +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::API - remounting an API - with dynamic configuration - 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 - 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 mounting an endpoint conditional on a configuration - mounts the endpoints only when configured to do so - 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 params are configured via a configuration - when the configured param is my_attr - requires the configured params - on the DescSCope - mounts the endpoint with the appropiate tags - on the ParamScope - mounts the endpoint in the location it is configured - on dynamic checks - can read the configuration on lambdas - 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 custom block on mount - mounts the endpoints only when configured to do so - when the configuration is read in a helper - will use the dynamic configuration on all routes - 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::Endpoint + get + no format + invalid format + json format -Grape::API - .recognize_path - fetches endpoint by given path - returns nil if given path does not match with registered routes +Grape::Exceptions::ValidationErrors + api + can return structured json with separate fields + message + is not repeated + is expected to include "FooBar is invalid" + is expected to eq 1 + #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 -Grape::Middleware::Versioner::AcceptVersionHeader - succeeds if :strict is set to false - succeeds if :strict is not set - api.version - is set - fails with 406 Not Acceptable if version is not supported - is set if format provided - when :strict and cascade: false - 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 is set - 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 +Grape::DSL::Logger + .logger + returns a logger + sets a logger -Grape::Exceptions::InvalidAcceptHeader - API with cascade=true and with rescue_from :all handler and http_codes - 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 - 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=false and rescue_from :all handler - 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 - 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 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=false and without a rescue handler - 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 - 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, 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 with status 200 - does return the expected result - 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=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 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=true and without a rescue handler - 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 - that received a request with correct vendor and version - behaves like a valid request - does return with status 200 - does return the expected result +Grape::Http::Headers + is expected to eq "X-Cascade" + is expected to eq "Location" + is expected to eq "Transfer-Encoding" + is expected to eq "Allow" -Grape::Validations::Validators::AtLeastOneOfValidator - #validate! - 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 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 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 - when restricted params are nested inside array - 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 +StrictHashConfiguration + set nested configs -Grape::Path - #initialize - remembers the path - remembers the namespace - remebers the settings - #path_with_suffix - combines the path and suffix - when using a specific format - might have a suffix with specified format - #suffix - when using a specific format - accepts specified format - when path versioning is not used - includes a '/' otherwise - does not include a '/' when the path has a namespace - does not include a '/' when the path has a path - when path versioning is used - includes a '/' - #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 not included when it is nil - is included when it is not nil - #root_prefix - splits the mount path - is nil when the mount path is nil - is nil when no root prefix setting exists - #path? - is false when the path starts with whitespace - is false when the path is the root path - is false when the path is nil - 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 - #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 - #mount_path - splits the mount path - is nil when no mount path setting exists - is nil when the mount path is nil +Grape::Validations::Types::SetCoercer + #call + a set of sets + coerces elements in the nested set + a set of primitives + coerces elements to the set + a set of sets of arrays + coerces elements in the nested set Grape::API - an endpoint without documentation - does not document parameters for the endpoint - still declares params internally - an endpoint with documentation - documents parameters - allows documentation with a hash - -Grape::Validations::Validators::CoerceValidator - coerce - error on malformed input (Array) - error on malformed input - coerces - Integer - BigDecimal - String - Grape::API::Boolean - Nests integers - File - collection - File - Rack::Multipart::UploadedFile - a custom type - coerces the given value - returning the InvalidValue instance when invalid - uses a custom message added to the invalid value - json - BigDecimal - Grape::API::Boolean - 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 FalseClass - is coerced to nil for type Symbol - is coerced to nil for type Numeric - is coerced to nil for type Date - is coerced to nil for type TrueClass - is coerced to nil for type Grape::API::Boolean - is coerced to nil for type Time - is not coerced to nil for type String - is coerced to nil for type Float - is coerced to nil for type Integer - is coerced to nil for type BigDecimal - is coerced to nil for type DateTime - 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]] - Set - Set of Integers - Set of Bools - nil values - 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 - 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 - Array - Array of type implementing parse - Array of Bools - Array of a custom type - Array of Integers - Set of type implementing parse - using coerce_with - must be supplied with :type or :coerce - parses parameters with Array type - parses parameters with Array[Integer] type - accepts any callable - parses parameters even if type is valid - uses parse where available - parses parameters with Array[Array[String]] type and coerce_with - parses parameters with Array[String] type - Array type and coerce_with should - not coerce missing field - coerce nil value to array - coerce array as array - 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 - Integer type and coerce_with should - coerce nil value to integer - not coerce missing field - coerce integer as integer - first-class JSON - accepts Array[JSON] shorthand - parses objects, hashes, and arrays - works when declared optional - doesn't make sense using coerce_with - converter - does not build a coercer multiple times - 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 - performs no additional coercion - respects :coerce_with - still validates type - multiple types - fails when no coercion is possible - may not be supplied together with a single type - coerces to first possible type - custom coercion rules - still validates type - performs no additional coercion - respects :coerce_with - when params is Hashie::Mash - for primitive collections - allows multiple collection types - allows collections with multiple types - allows singular form declaration - for primitive collections - allows multiple collection types - allows collections with multiple types - allows singular form declaration - -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::Validators::AllowBlankValidator - in an optional group - as a required param - refuses a blank value in an existing group - accepts a nested missing date value - accepts a missing group, even with a disallwed blank param - as an optional param - accepts a nested missing optional value - refuses a blank existing value in an existing scope - accepts a missing group, even with a disallwed blank param - 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 - refuses a blank existing value in an existing scope - accepts a nested missing value - valid input - accepts value when time allow_blank - allows missing optional strings - accepts empty when boolean allow_blank - accepts empty input - accepts empty input when allow_blank is false - accepts empty when date allow_blank - accepts false when boolean allow_blank - accepts empty when datetime allow_blank - accepts empty when symbol allow_blank - accepts valid input - allow_blank when Numeric - accepts empty when integer allow_blank - accepts empty when integer allow_blank - accepts empty when float allow_blank - invalid input - refuses nil - refuses only whitespaces - refuses missing - refuses empty string - custom validation message - in a required group - as a required param - refuses a string value in a required hash group - refuses a blank value in a required existing 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 - in an optional group - 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 - as a required param - refuses a blank value in an existing group - accepts a missing group, even with a disallwed blank param - accepts a nested missing date value - with valid input - accepts valid input - accepts empty when boolean allow_blank - accepts empty input - accepts empty when symbol allow_blank - accepts empty when date allow_blank - accepts false when boolean allow_blank - accepts empty input when allow_blank is false - accepts empty when datetime allow_blank - allow_blank when Numeric - accepts empty when integer allow_blank - accepts empty when integer allow_blank - accepts empty when float allow_blank - with invalid input - refuses empty string for an optional param - refuses only whitespaces - refuses nil - refuses empty string - -Grape::Util::InheritableValues - #clone - complex (i.e. not primitive) data types (ex. entity classes, please see bug #891) - copies values; does not duplicate them - #delete - does not delete parent values - deletes a key - #[] - returns a value - parent values are not changed - overwrites parent value with the current one - returns parent value when no value is set - #to_hash - returns a Hash representation - #[]= - sets a value - -Grape::Validations::MultipleAttributesIterator - #each - 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 - when params is a hash - yields the whole params hash without the list of attrs - -Grape::DSL::Middleware - .use - adds a middleware with the right operation - .insert - adds a middleware with the right operation - .insert_before - adds a middleware with the right operation - .middleware - returns the middleware stack - .insert_after - adds a middleware with the right operation + with a global namespace function + works Grape::Parser + .builtin_parsers + returns an instance of Hash + includes json and xml parsers by default .parsers includes built-in parsers returns an instance of Hash @@ -4844,238 +5023,142 @@ includes added parser with :parsers option includes passed :parsers values - .builtin_parsers - includes json and xml parsers by default - returns an instance of Hash .parser_for - calls .parsers returns parser correctly - when parser does not exist - returns nil + calls .parsers when parser is available returns registered parser if available + when parser does not exist + returns nil when parser is an instance of Symbol returns object which can be called returns an instance of Method -Grape::Middleware::Versioner::Path - provides a nil version if no path is given - sets the API version based on the first path - does not cut the version out of the path - with specified versions as ["v1", "v2"] - allows versions that have been specified - throws an error if a non-allowed version is 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 - 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 - with specified versions as [:v1, "v2"] - throws an error if a non-allowed version is specified - allows versions that have been specified - -Grape::Middleware::Versioner::Param - sets the API version based on the default param (apiver) - provides a nil version if no version is given - cuts (only) the version out of the params - when no version is set - returns a 200 (matches the first version found) - with specified versions - throws an error if a non-allowed version is specified - allows versions that have been specified - when there are multiple versions with a custom param - responds correctly to a v1 request - responds correctly to a v2 request - when there are multiple versions without a custom param - responds correctly to a v1 request - responds correctly to a v2 request - with specified parameter name - does not set the API version based on the default param - sets the API version based on the custom parameter name - -Grape::Exceptions::UnknownValidator - #message - contains the problem in the message +Grape::Validations::SingleAttributeIterator + #each + when params is a hash + yields params and every single attribute from the list + 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 Grape::Middleware::Base has the app as an accessor - is able to access the response calls through to the app - header - is able to set a header - #context - allows access to response context - after callback with errors - does not overwrite the application response - with patched warnings - does show a warning - after callback - overwrites application response + is able to access the response callbacks - calls #after calls #before - header overwrite - overwrites header by after headers + calls #after + #context + allows access to response context options persists options passed at initialization defaults persists the default options overrides default options when provided - callbacks on error - calls #after + header + is able to set a header + header overwrite + overwrites header by after headers #response when Array body - status returns the memoized Rack::Response instance + status header when Rack::Response - status returns the memoized Rack::Response instance - header body + status + header + after callback + overwrites application response + after callback with errors + does not overwrite the application response + with patched warnings + does show a warning + callbacks on error + calls #after -Validator with instance variables - passes validation every time - -Grape::DSL::Headers - when headers are set - #header - set - returns value - delete - deletes a header key-value pair - get - returns a specifc value - returns all set headers - when no headers are set - #header - returns nil - -Grape::Exceptions::MissingGroupType - Grape::Exceptions::MissingGroupTypeError +Grape::Exceptions::UnsupportedGroupType + Grape::Exceptions::UnsupportedGroupTypeError behaves like deprecated class raises an ActiveSupport::DeprecationException #message - is expected to include "group type is required" - -Grape::Util::StackableValues - #to_hash - returns a Hash representation - #[] - combines parent and actual values - returns parent value when no value is set - parent values are not changed - returns an array of values - #delete - does not delete parent values - deletes a key - #keys - returns all keys - returns merged keys with parent - #clone - copies all values - complex (i.e. not primitive) data types (ex. middleware, please see bug #930) - copies values; does not duplicate them - #[]= - can handle array values - sets a value - pushes further values - -Grape::API::Helpers - can access helpers from a mounted resource - can access helpers from a mounted resource in a nested resource - -Grape::Middleware::Auth::Base - throws a 401 is wrong auth is given - authenticates if given valid creds + is expected to include "group type must be Array, Hash, JSON or Array[JSON]" -Grape::DSL::Parameters - #use_scope - is alias to #use - #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 - #at_least_one_of - adds an at least one of parameter validation - #mutually_exclusive - adds an mutally exclusive parameter validation - #requires - adds a required parameter - #optional - adds an optional parameter - #exactly_one_of - adds an exactly of one parameter validation - #with - creates a scope with group attributes - #includes - is alias to #use - #group - is alias to #requires - #params - inherits params from parent - when params argument is not a array or a hash - returns empty hash - when params argument is an array of hashes - returns values of each hash for @element key - when params argument is a hash - returns value for @element key +Grape::DSL::Validations + .reset_validations! + resets declared params + does not reset documentation description + resets params + resets validations + .params + evaluates block + returns a ParamsScope -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::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 a pattern + sets the version if it matches + ignores the version if it fails to match + 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 + 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] + allows versions that have been specified + throws an error if a non-allowed version is 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 Grape::Validations::Validators::DefaultValidator - set default values for optional params sets lambda based defaults at the time of call - set default value for optional param - sets default values for grouped arrays set default values for missing params in the request - allows optional arrays to be omitted - lets you leave required values nested inside an optional blank - allows optional arrays with optional params set default values for optional params and allow to use required fields in the same time + allows optional arrays with optional params + set default values for optional params + set default value for optional param + allows optional arrays to be omitted does not allows faulty optional arrays + lets you leave required values nested inside an optional blank + sets default values for grouped arrays optional with nil as value - variant-member-type collections + special types 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 + structures types 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 + variant-member-type collections 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 @@ -5087,7 +5170,6 @@ 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 @@ -5096,153 +5178,107 @@ respects the default value respects the default value optional group with defaults - 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 from parent defaults for inner param if parent param is not provided - sets default value 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 array without default value includes optional param with default value returns nil for optional array if param is not provided + 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 from parent defaults for inner param if parent param is not provided + sets default value for optional hash if param is not provided 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 + returns nil for optional hash if param is not provided array with default values and given conditions applies the default values only if the conditions are met -Grape::Endpoint - when route modifies param value - param default should not change - -Grape::Validations::Validators::RegexpValidator - accepts nil - accepts valid input - custom validation message - accepts nil - accepts valid input - with invalid input - refuses inapppopriate - refuses empty - regexp with array - accepts valid items - refuses nil items - refuses empty items - accepts nil instead of array - refuses inapppopriate items - invalid input - refuses empty - refuses inapppopriate - nested regexp with array - refuses inapppopriate - regexp with array - refuses empty items - refuses nil items - refuses inapppopriate items - accepts nil instead of array - accepts valid items - -Grape::API - with a global namespace function - works - -Grape::Endpoint - get - no format - json format - invalid format - -Grape::Exceptions::ValidationErrors - api - can return structured json with separate fields - #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 - message - is not repeated - is expected to include "FooBar is invalid" - is expected to eq 1 - initialize - assigns headers through base class - -Grape::Middleware::Error - - is possible to return hash errors in xml format - - is possible to return the backtrace and the original exception in txt format - with rescue_all - StandardError exception - defaults to a 500 status - sets the message appropriately - Non-StandardError exception - does not trap errors other than StandardError - 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 xml format - - is possible to specify a custom formatter - - is possible to return errors in jsonapi format - - 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 - - does not trap regular error! codes - - is possible to return errors in json format - - is possible to return the backtrace and the original exception in xml format - - is possible to return hash errors in json format - with defaults - does not trap errors by default - - is possible to specify a different default status code - -Grape - .config - is expected to eq {:param_builder=>Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder} - -Grape::Http::Headers - is expected to eq "Location" - is expected to eq "Transfer-Encoding" - is expected to eq "Allow" - is expected to eq "X-Cascade" - -Grape::API::Helpers - defines parameters - -Grape::DSL::Logger - .logger - sets a logger - returns a logger +Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder + in an api + #params + params are indifferent to symbol or string keys + is a Hash + responds to string keys + parses sub hash params + in an endpoint + #params + is of type Hash -Grape::Exceptions::UnknownOptions - #message - contains the problem in the message +Grape::Validations + using a custom body-only validator + allows field in body + ignores field in query + Grape::Validations::Base + behaves like deprecated class + raises an ActiveSupport::DeprecationException + using a custom length validator + over 140 characters + specified in the query string + under 140 characters + using a custom request/param validator + fail when non-admin user sets an admin field + does not fail when we send non-admin fields only + does not fail when we send non-admin and admin=false 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 + using a custom validator with message_key + fails with message -A named API - can access the name of the API +Grape::Validations::Validators::ExceptValuesValidator + 9: req_except_type_coerce - 11 + 6: req_except_lambda_custom_message - invalid-type1 + 8: opt_except_lambda_default - + 9: req_except_type_coerce - 11 + raises IncompatibleOptionValues when a default array has excluded values + 4: req_except_empty - invalid-type1 + 6: req_except_lambda_custom_message - invalid-type4 + 2: req_except_custom_message - invalid-type1 + 1: req_except_hash - invalid-type3 + 11: opt_except_array_type_coerce_default - + 7: opt_except_default - invalid-type1 + 8: opt_except_lambda_default - invalid-type3 + 5: req_except_lambda - invalid-type4 + 0: req_except - invalid-type3 + 0: req_except - invalid-type1 + 8: opt_except_lambda_default - valid-type + 10: opt_except_type_coerce_default - + 12: req_except_range - 13 + 9: req_except_type_coerce - 3 + 7: opt_except_default - invalid-type3 + 6: req_except_lambda_custom_message - valid-type + 7: opt_except_default - valid-type + 5: req_except_lambda - valid-type + 9: req_except_type_coerce - 3 + raises IncompatibleOptionValues when type is incompatible with values array + 10: opt_except_type_coerce_default - 10 + 2: req_except_custom_message - invalid-type3 + 11: opt_except_array_type_coerce_default - [3] + raises IncompatibleOptionValues on a default value in exclude + 1: req_except_hash - valid-type + 5: req_except_lambda - invalid-type1 + 10: opt_except_type_coerce_default - 3 + 9: req_except_type_coerce - invalid-type1 + 11: opt_except_array_type_coerce_default - 10 + 11: opt_except_array_type_coerce_default - invalid-type1 + 3: req_except_no_value - invalid-type1 + 0: req_except - valid-type + 1: req_except_hash - invalid-type1 + 8: opt_except_lambda_default - invalid-type1 + 10: opt_except_type_coerce_default - 3 + 11: opt_except_array_type_coerce_default - [10] + 12: req_except_range - 11 + 11: opt_except_array_type_coerce_default - ["3"] + 10: opt_except_type_coerce_default - invalid-type1 + 2: req_except_custom_message - valid-type + 7: opt_except_default - -Grape::Middleware::Auth::DSL - .http_basic - sets auth parameters - .auth - can be called multiple times - sets auth parameters - .http_digest - when realm is a hash - sets auth parameters - when realm is not hash - sets auth parameters +Grape::Validations::Validators::Base + #inherited + when validator is anonymous + does not register the validator + 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 Pending: (Failures listed here are expected and do not affect your suite's status) @@ -5250,10 +5286,10 @@ # Temporarily skipped with xit # ./spec/integration/multi_json/json_spec.rb:4 -Finished in 15.38 seconds (files took 4.37 seconds to load) +Finished in 6.23 seconds (files took 1.32 seconds to load) 2171 examples, 0 failures, 1 pending -Randomized with seed 40713 +Randomized with seed 46066 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -5284,12 +5320,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/108426/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/108426/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/41599 and its subdirectories -I: Current time: Mon Mar 18 17:28:03 -12 2024 -I: pbuilder-time-stamp: 1710826083 +I: removing directory /srv/workspace/pbuilder/108426 and its subdirectories +I: Current time: Tue Apr 22 01:51:47 +14 2025 +I: pbuilder-time-stamp: 1745236307