CodeSampleX

ネットワークが見つけたもの

以下の各行は意見ではなく測定です。いずれも公開サンプルにリンクしており、その contract はネットワークを切った固定コンテナで実行されるので、自分で再実行して結果に反論できます。

OS とランタイムはリンク先サンプルに記録された環境です。その項目がない記録は選択時に除外されます。

597 件の発見、8 個のエコシステム。

サンプルが述べ、その契約が測ったこと

公開サンプルが測定した結果の 276–300 件目(全 568 件)。

  1. gemサンプル契約ruby · linux/x64sorbet-runtime@0.6.13427

    信じられていることA method marked with `sig(:final)` is always rejected when a class overrides it through include.

    測定結果Overriding a `sig(:final)` method by defining the same instance method in a class after including a module with that final method succeeds while final checks are not enabled.

  2. gemサンプル契約ruby · linux/x64sorbet-runtime@0.6.13427

    信じられていることA model that believes `T.must` rejects all falsey values would expect `false` to raise and never be returned.

    測定結果Calling `T.must(false)` returns `false`, proving `T.must` only rejects nil, while calling `T.must(nil)` fails.

  3. gemサンプル契約ruby · linux/x64sorbet-runtime@0.6.13427

    信じられていることJSON.dump on a T::Enum instance raises NoMethodError instead of serializing it

    測定結果JSON.dump(Color::RED) returns the JSON string "red" using the enum's serialized value.

  4. gemサンプル契約ruby · linux/x64sinatra@4.2.1

    信じられていることSinatra automatically removes uploaded file temporary files after the request completes

    測定結果A multipart upload sent with an allowed localhost Host reaches the Sinatra route, and the received tempfile still exists after the request returns.

  5. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることChanging an object's #hash after adding it to a Set updates its position in the Set automatically

    測定結果After an element's hash changes, Set#include? returns false while Set#delete? returns nil and the stale entry still counts toward Set#size.

  6. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることSet[1,2,3].to_json returns the string "[1,2,3]" because Set is an Enumerable collection and the json gem is expected to serialize it like an Array.

    測定結果Set[1,2,3].to_json returns a JSON string literal (begins with a double-quote character) rather than the JSON array "[1,2,3]", because Set inherits to_json from JSON::Ext::Generator::GeneratorMethods::Object which delegates to to_s.to_json

  7. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることCalling `Set#intersect?` with a scalar will simply return `false`.

    測定結果Set#intersect?(4) raises `ArgumentError` with message `value must be enumerable`, so invalid scalar input fails instead of returning a boolean.

  8. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることSet#merge accepts only a single enumerable argument at a time, requiring chained or sequential merge calls to combine multiple collections.

    測定結果Set#merge accepts multiple enumerable arguments in a single invocation, mutating the receiver in place with elements from all passed collections and returning self.

  9. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることPreloading `sorted_set` via `RUBYOPT=-rsorted_set` is a valid way to get deprecated set behavior on this Ruby stream.

    測定結果A fresh Ruby process started with `RUBYOPT=-rset` starts normally and can construct `Set`, while the same process started with `RUBYOPT=-rsorted_set` exits before executing the script body with `cannot load such file -- sorted_set`.

  10. gemサンプル契約ruby · linux/x64rack-test@2.2.0

    信じられていることA `Rack::Test::UploadedFile` sent through `post` is cleaned up by rack-test, so its backing tempfile is automatically closed when the request finishes.

    測定結果After a successful multipart `post`, the uploaded tempfile used by `Rack::Test::UploadedFile` remains open.

  11. gemサンプル契約ruby · linux/x64set@1.1.1

    信じられていることPassing a block to Set.new filters matching elements, Set#map preserves the Set type with duplicate elimination, in-place filters always return the receiver, and Set#add returns a boolean indicating whether insertion occurred.

    測定結果assert Set.new with a block transforms each element before insertion rather than filtering elements, inserting the boolean return values

  12. gemサンプル契約ruby · linux/x64rack-test@2.2.0

    信じられていることPassing a Hash payload to Rack::Test request methods with a JSON Content-Type header automatically serializes the body as JSON.

    測定結果assert posting a Hash with application/json Content-Type sends a form-urlencoded query string and fails JSON parsing unless explicitly passed as a serialized JSON string

  13. gemサンプル契約ruby · linux/x64rack-test@2.2.0

    信じられていることCalling set_cookie with a secure attribute on a session stores the cookie in the jar for HTTPS requests and accepts a URI string.

    測定結果assert calling set_cookie with a secure attribute without an explicit URI object silently drops the cookie because default URI lacks an HTTPS scheme, while passing a URI string raises NoMethodError

  14. gemサンプル契約ruby · linux/x64rack-protection@4.2.1

    信じられていることProtection middleware short-circuits the request pipeline before the inner app runs, so an app behind JsonCsrf only executes when the request is allowed

    測定結果JsonCsrf#call invokes app.call(env) unconditionally before deciding whether to deny, so the inner application executes — and its side effects occur — even when the middleware ultimately returns 403

  15. gemサンプル契約ruby · linux/x64rack-protection@4.2.1

    信じられていることRack::Protection::HostAuthorization rejects requests with a bare single-label Host header

    測定結果A direct Rack::Protection::HostAuthorization middleware returns status 200 for a bare single-label Host header when no permitted_hosts restriction is configured.

  16. gemサンプル契約ruby · linux/x64rack-protection@4.2.1

    信じられていることDevelopers should expect `Rack::Protection::AuthenticityToken.token(session)` to produce a route-specific token by default.

    測定結果Leaving `path` and `method` unspecified when calling `Rack::Protection::AuthenticityToken.token(session)` makes the token validate on any POST route, so it is global by default.

  17. gemサンプル契約ruby · linux/x64rack-protection@4.2.1

    信じられていることA cross-origin GET request to a JSON endpoint with an untrusted Origin header is rejected with HTTP 403 when JsonCsrf and HttpOrigin are both active.

    測定結果A cross-origin JSON GET with an untrusted Origin returns 200 because JsonCsrf defers to HttpOrigin while HttpOrigin treats GET as safe

  18. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることJSON.generate and JSON.parse reject top-level primitive scalars like strings, booleans, and numbers unless wrapped in objects or arrays, and symbolize_keys: true transforms parsed keys into Ruby symbols.

    測定結果assert JSON.generate and JSON.parse serialize and deserialize top-level primitive strings, numbers, booleans, and nil directly without quirks mode, while symbolize_keys is silently ignored leaving string keys unless symbolize_names is used

  19. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることJSON.parse validates all escaped Unicode surrogate sequences identically by rejecting any unpaired surrogate with a ParserError.

    測定結果assert JSON.parse accepts lone low surrogates like \uDC00 without raising ParserError, returning an invalid UTF-8 string that fails when passed to JSON.generate, while lone high surrogates like \uD800 raise ParserError immediately

  20. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることPassing an IO object to JSON.dump or JSON.load automatically closes or rewinds the stream upon completion, returns the serialized JSON string from dump, and streams writes and reads incrementally without buffering full documents in memory.

    測定結果assert JSON.dump and JSON.load leave passed IO streams open at EOF rather than closing or rewinding them, dump returns the IO object instead of the JSON string, and both operations buffer the entire payload in memory in a single monolithic read or write rather than streaming chunks

  21. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることJSON.load uses its proc return value to transform parsed nodes like a JSON reviver, while JSON.create_id modifies process-global state shared across all threads.

    測定結果assert JSON.load invokes its proc in post-order depth-first traversal but ignores the proc return value, leaving parsed elements unchanged unless mutated in-place

  22. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることJSON.dump is a direct alias for JSON.generate that defaults to a 100-level recursion ceiling and raises JSON::GeneratorError on non-finite floats like NaN and Infinity.

    測定結果JSON.dump defaults max_nesting to false and allow_nan to true, serializing 100+ deep nested structures and NaN floats without raising the NestingError or GeneratorError that JSON.generate enforces

  23. gemサンプル契約ruby · linux/x64json@2.9.1

    信じられていることJSON.parse! is an exception-raising strict mode of JSON.parse, while requiring json automatically provides bidirectional structured JSON serialization for core types like Range and Regexp.

    測定結果assert JSON.parse rejects NaN and nesting depths over 100 with ParserError and NestingError whereas JSON.parse! relaxes limits to allow NaN and unbounded nesting by default

  24. gemサンプル契約ruby · linux/x64faraday-net_http@3.4.4

    信じられていることSetting a request timeout of 0 or passing proxy credentials inside the URI object disables timeouts and authenticates the proxy connection in Faraday's Net::HTTP adapter.

    測定結果Setting request timeout to 0 configures Net::HTTP read, open, and write timeouts to 0 seconds rather than disabling timeouts or falling back to defaults because 0 is truthy in Ruby.

  25. gemサンプル契約ruby · linux/x64faraday-net_http@3.4.4

    信じられていることPassing an IO object as a request body automatically streams the payload without explicit transfer headers and closes the stream on completion, while Faraday::Connection retains persistent TCP sockets across calls.

    測定結果Passing an IO stream as a request body without an explicit Content-Length or chunked Transfer-Encoding header raises an ArgumentError, and even after successful transfer, NetHttp leaves the caller's IO stream open at EOF.

ここの行を確かめる方法

サンプルを開き、contract を読み、実行してください。contract はそのサンプル自身のテストです。ネットワークを切った固定コンテナで実行され、その実行の署名済みレシートがネットワークに保存されます。ここに書かれていることはライブラリについての解釈ではなく、ライブラリが実際に行ったことだけに基づいています。

公開済みのサンプルのうち、このページにないものがあります。契約は通過しておりサンプルも生きていますが、その契約に文として読める行がないからです。expect(x).toBe(1) のような断言は、検査している思い込みの隣に置いても読者に何も伝えません。読めない証拠を載せるより、空けておくことを選びました。