Class: Hegel::Generators::BinaryGenerator
- Inherits:
-
Hegel::Generator
- Object
- Hegel::Generator
- Hegel::Generators::BinaryGenerator
- Defined in:
- lib/hegel/generators.rb,
sig/hegel.rbs
Overview
Hegel::Syntax::Methods#binary. A byte String of [min_size, max_size] bytes, unbounded above by default.
Instance Method Summary collapse
- #do_draw(tc) ⇒ String
-
#initialize(min_size:, max_size:) ⇒ BinaryGenerator
constructor
A new instance of BinaryGenerator.
Methods inherited from Hegel::Generator
Constructor Details
#initialize(min_size:, max_size:) ⇒ BinaryGenerator
Returns a new instance of BinaryGenerator.
429 430 431 432 433 |
# File 'lib/hegel/generators.rb', line 429 def initialize(min_size:, max_size:) super() @min_size = min_size @max_size = max_size end |
Instance Method Details
#do_draw(tc) ⇒ String
435 436 437 438 439 440 441 442 443 444 |
# File 'lib/hegel/generators.rb', line 435 def do_draw(tc) max_size = @max_size || LibHegel::HEGEL_COLLECTION_MAX_SIZE_UNBOUNDED raise Hegel::Error, "binary: max_size < min_size" if max_size < @min_size # hegel_generate_bytes already returns an Encoding::BINARY String # (see LibHegel::Real#generate_bytes); force_encoding here would # be redundant at best, and wrong the moment a caller's own bytes # happened to be valid UTF-8 and got silently relabelled as text. tc.generate_bytes(@min_size, max_size) end |