ネットワークが見つけたもの
以下の各行は意見ではなく測定です。いずれも公開サンプルにリンクしており、その contract はネットワークを切った固定コンテナで実行されるので、自分で再実行して結果に反論できます。
OS とランタイムはリンク先サンプルに記録された環境です。その項目がない記録は選択時に除外されます。
597 件の発見、8 個のエコシステム。
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
サンプルが述べ、その契約が測ったこと
公開サンプルが測定した結果の 451–475 件目(全 568 件)。
-
gemサンプル契約ruby · linux/x64sorbet-runtime@0.6.13427
信じられていることT::Enum instances compare equal to their serialized string or symbol values, and from_serialized returns nil for unmatched strings instead of raising KeyError.
測定結果assert T::Enum instances are not equal to strings or symbols, and that passing a raw string to a T::Enum parameter raises TypeError
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることAn empty PATH_INFO is treated as a normal non-match and should fail with a 404 instead of entering `get('/')`.
測定結果assert a request with PATH_INFO '' receives status 200 from GET / and returns the same body as PATH_INFO '/'
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることSinatra::IndifferentHash.new({"role" => "admin"}) produces a populated hash where the string and symbol keys both resolve to "admin", matching the same pattern that worked in Sinatra 3
測定結果Sinatra::IndifferentHash.new({"role" => "admin", "id" => 7}) returns an empty hash of size 0 whose default value is the argument object, so ih["role"] returns the original seed hash rather than "admin" — the constructor no longer merges its argument in Sinatra 4
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることA competent developer expects bare query flags `?flag` to parse as empty strings or booleans, optional route parameters like `(/:id)?` to omit the key from `params` when absent and accept trailing slashes, named parameters `:id` to stop at dots before extensions, `redirect back` to raise or fail when no `Referer` header is present, and wildcard `splat` arrays to be overwritten by query parameters named `splat`.
測定結果assert an omitted optional route parameter in (/:id)? populates params[:id] as nil with params.key?('id') true while trailing slash /users/ returns 404, bare query flags parse as nil rather than empty strings, and named route params capture across dots
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることEach overlapping request to the same Sinatra app instance is isolated from in-flight request mutations.
測定結果Two in-flight calls to the same Sinatra app can share one class-level state slot, so the first call can observe the second call’s write before it returns.
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることCalling pass inside a matched route handler discards intermediate modifications to the HTTP status code, response headers, cookies, and request params before dispatching to subsequent matching routes.
測定結果Calling pass retains any HTTP status code, response headers, cookies, and params mutations made by the passed route rather than resetting the response state for the fallback handler.
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることCalling halt with a status integer and headers hash sets the HTTP response status code and headers with an empty body.
測定結果assert halt with status code and hash assigns the hash to the response body and leaves headers unset
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることConfiguring settings with Sinatra's set method replaces existing Hash configurations, stores Proc and lambda values as callable objects on the settings object, and passes form HTTP verb overrides through to DELETE and PUT route handlers by default.
測定結果Sinatra::Base.set merges new Hash options into previous Hash settings rather than overwriting them, and evaluates Proc or lambda settings on every property access rather than returning the callable object.
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることA Ruby developer would expect `Set#^` to return a plain `Set` regardless of subclass, so subclass-only behavior hooks are irrelevant.
測定結果assert Set#^ returns an object of the left operand's subclass when both operands are `Set` subclasses
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることSet#divide with a 2-arity predicate block partitions elements by directly evaluating the block on every pair and grouping each matching pair together, so Set[1,2,3,4].divide { |a,b| (a-b).abs == 1 } produces multiple partitions matching the adjacent pairs rather than collapsing all transitively-connected elements into one.
測定結果Set[1,2,3,4].divide { |a,b| (a-b).abs == 1 } returns a single partition containing all four elements rather than multiple pairwise groups, because the 2-arity form performs a transitive-closure (union-find) over all pairs, merging 1-2, 2-3, and 3-4 into one equivalence class
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることA developer can mutate a `Set` from another task or nested call while iterating it and still get a consistent final result.
測定結果Mutating the shared `Set` from another thread while `each` is running must raise `RuntimeError` with `can't add a new key into hash during iteration`.
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることOnce `Set#compare_by_identity` is enabled, a later `Set#replace` keeps identity semantics so membership for value-equal values still requires object identity.
測定結果assert that calling `replace` with a default-set changes `compare_by_identity?` from true to false, proving the replacement operation changed comparison mode.
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることCalling to_set on an existing Set produces a new Set instance for safe mutation, and calling to_set on a Set subclass preserves the receiver subclass.
測定結果assert Set#to_set with default arguments returns self instead of a new duplicate set, so mutating the result modifies the original set in-place
-
gemサンプル契約ruby · linux/x64set@1.1.1
信じられていることCalling the spaceship operator <=> or relational comparison operators (<, <=, >, >=) on Sets performs a total ordering comparison based on size or element values so arrays of sets can be sorted, and comparison methods accept any Enumerable.
測定結果assert Set#<=> returns nil when neither set is a subset of the other rather than ordering by size or elements, causing Array#sort across disjoint sets to raise ArgumentError
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることA `Set-Cookie` header using `Path=/admin` is treated as unrecognized path metadata and should fall back to the request path, so the cookie applies broadly.
測定結果assert last_response.body on /public does not include sid=abc123
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることRack::Test::Methods exports a METHODS constant of HTTP verbs, standalone session setup requires requiring rack/mock_session, and query parameters cannot be supplied separately from request body params in non-GET requests via env.
測定結果assert Rack::Test::Methods::METHODS is undefined raising NameError, requiring rack/mock_session raises LoadError with Rack::MockSession aliased to Session, and :query_params in env appends to the URI query string separately from request body payloads
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることReentrant requests dispatched on a Rack::Test::Session preserve last_request and last_response correspondence for the completing outer request.
測定結果assert reentrant requests dispatched during app execution overwrite last_request with the inner request while last_response reflects the outer response
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることCalling header with a header name already starting with HTTP_ sets the Rack environment key directly, and follow_redirect! preserves request method and body on 308 Permanent Redirect identically to 307.
測定結果Rack::Test::Session#header unconditionally prepends HTTP_ to all header names other than CONTENT_TYPE and CONTENT_LENGTH, mangling HTTP_AUTHORIZATION into HTTP_HTTP_AUTHORIZATION, while follow_redirect! hardcodes a check only for 307 and mutates 308 Permanent Redirect requests to GET while dropping parameters.
-
npmサンプル契約node · linux/x64happy-dom@20.11.2
信じられていることPassing an HTML string to new Window(html) initializes the document markup, or instantiating new DOMParser() parses HTML strings into a DOM tree.
測定結果new Window(html) ignores string arguments because the constructor expects an options object, leaving document.body.innerHTML empty and getElementById returning null.
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることCalling restore_state restores all session modifications including headers configured via header or env, and non-GET request verbs like DELETE append parameter hashes to the URI query string.
測定結果assert restore_state rolls back last_request, last_response, and cookie_jar but leaves mutated session headers in @env to leak into subsequent requests, while non-GET methods encode params into the request body rather than the query string
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることRack::Test::UploadedFile automatically infers the MIME content type from the file extension when the content_type argument is omitted.
測定結果Rack::Test::UploadedFile.new with an image file path returns 'text/plain' for content_type rather than 'image/png' when the argument is omitted, because UploadedFile defaults content_type to 'text/plain' without inspecting the filename extension.
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることRack::Test::Methods operates exclusively on a single shared session state, so testing multi-user interactions requires manually creating unmanaged Session instances to avoid leaking cookies and headers.
測定結果assert with_session switches the active session context with isolated cookies and headers, restoring the prior session upon block exit
-
gemサンプル契約ruby · linux/x64rack-test@2.2.0
信じられていることA `Set-Cookie` flag named `Secure` is treated as case-sensitive in rack-test, so uppercase `Secure` behaves like an unknown token and is ignored.
測定結果A `Set-Cookie` header containing `Secure` in camel case is honored as a secure attribute, so the cookie is not sent on a plain HTTP follow-up request.
-
gemサンプル契約ruby · linux/x64rack-protection@4.0.0
信じられていることSecurity middleware in Rack::Protection sets response security headers with mixed-case names like `X-XSS-Protection` and `X-Content-Type-Options`.
測定結果When `text/html` responses pass through XSSHeader, both lowercase keys must be present with values `1; mode=block` and `nosniff`.
-
gemサンプル契約ruby · linux/x64rack-protection@4.2.1
信じられていることInitializing Rack::Protection with default options includes session hijacking defense that clears the session when a client user-agent header changes.
測定結果Rack::Protection.new with default options retains session payload and omits tracking state across requests with altered user agents, leaving session hijacking defense disabled until session_hijacking is explicitly passed via use.
ここの行を確かめる方法
サンプルを開き、contract を読み、実行してください。contract はそのサンプル自身のテストです。ネットワークを切った固定コンテナで実行され、その実行の署名済みレシートがネットワークに保存されます。ここに書かれていることはライブラリについての解釈ではなく、ライブラリが実際に行ったことだけに基づいています。
公開済みのサンプルのうち、このページにないものがあります。契約は通過しておりサンプルも生きていますが、その契約に文として読める行がないからです。expect(x).toBe(1) のような断言は、検査している思い込みの隣に置いても読者に何も伝えません。読めない証拠を載せるより、空けておくことを選びました。