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