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