Class: Synthra::Types::JsonArray
- Defined in:
- lib/synthra/types/json_array.rb
Overview
JSON array type generator (stub implementation)
Instance Method Summary collapse
- #generate_edge(rng, context, args) ⇒ Object
- #generate_from_schema(rng, context, schema_name, count) ⇒ Object private
- #generate_from_template(rng, context, template, count) ⇒ Object private
- #generate_invalid(rng, context, args) ⇒ Object
- #generate_random(rng, context, args) ⇒ Object
Instance Method Details
#generate_edge(rng, context, args) ⇒ Object
21 22 23 |
# File 'lib/synthra/types/json_array.rb', line 21 def generate_edge(rng, context, args) rng.sample([[], [{}], [{}, {}]]) end |
#generate_from_schema(rng, context, schema_name, count) ⇒ Object (private)
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/synthra/types/json_array.rb', line 31 def generate_from_schema(rng, context, schema_name, count) registry = context.instance_variable_get(:@registry) if context return [] unless registry schema = registry.schema(schema_name) return [] unless schema # Generate a seed from the rng to get consistent results seed = rng.int(0, 2_147_483_647) Array.new(count) { |i| schema.generate(seed: seed + i, registry: registry) } rescue StandardError [] end |
#generate_from_template(rng, context, template, count) ⇒ Object (private)
45 46 47 |
# File 'lib/synthra/types/json_array.rb', line 45 def generate_from_template(rng, context, template, count) Array.new(count) { template.dup } end |
#generate_invalid(rng, context, args) ⇒ Object
25 26 27 |
# File 'lib/synthra/types/json_array.rb', line 25 def generate_invalid(rng, context, args) rng.sample([nil, "not-an-array", 123, {}]) end |
#generate_random(rng, context, args) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/synthra/types/json_array.rb', line 7 def generate_random(rng, context, args) count = args[:count] || 1 schema = args[:schema] template = args[:template] if schema generate_from_schema(rng, context, schema, count) elsif template generate_from_template(rng, context, template, count) else Array.new(count) { {} } end end |