Module: Synthra::Generator::Modes
- Defined in:
- lib/synthra/generator/modes.rb
Overview
Generation modes for different types of fake data
Defined Under Namespace
Classes: BaseMode, EdgeMode, HostileMode, InvalidMode, MixedMode, RandomMode
Constant Summary collapse
- EDGE_STRINGS =
Curated edge case strings
[ "", # empty " ", # single space " ", # multiple spaces "\t\n\r", # whitespace chars "🎉💀🔥👻", # emojis "Ù…Ø±ØØ¨Ø§", # RTL Arabic "日本語", # Japanese "SELECT * FROM users;", # SQL injection attempt '{"key": "value"}', # JSON in string "<script>alert(1)</script>", # XSS attempt "a" * 1000, # very long "NULL", # string null "undefined", # string undefined "true", # string boolean "123", # string number "\x00\x00", # null bytes "O'Brien", # apostrophe "a\nb\nc" # newlines ].freeze
- EDGE_NUMBERS =
Curated edge case numbers
[ 0, -1, 1, -2_147_483_648, # INT_MIN 2_147_483_647, # INT_MAX 9_223_372_036_854_775_807, # BIGINT_MAX Float::MIN, Float::MAX ].freeze
- EDGE_DATES =
Curated edge case dates
[ Date.new(1970, 1, 1), # Unix epoch Date.new(2000, 2, 29), # Leap day Date.new(2038, 1, 19), # Y2038 Date.new(2020, 1, 1), # Fixed date for determinism (replaces Date.today) Date.new(1, 1, 1), # Very old Date.new(9999, 12, 31) # Far future ].freeze
Class Method Summary collapse
-
.create(mode, rng) ⇒ BaseMode
Factory method to create mode instance.
Class Method Details
.create(mode, rng) ⇒ BaseMode
Factory method to create mode instance
Creates an appropriate mode instance based on the mode symbol.
430 431 432 433 434 435 436 437 438 439 440 |
# File 'lib/synthra/generator/modes.rb', line 430 def self.create(mode, rng) case mode when :random then RandomMode.new(rng) when :edge then EdgeMode.new(rng) when :invalid then InvalidMode.new(rng) when :hostile then HostileMode.new(rng) when :mixed then MixedMode.new(rng) else raise ArgumentError, "Unknown mode: #{mode}" end end |