Class: Senko::CodeGenerator
- Inherits:
-
Object
- Object
- Senko::CodeGenerator
- Defined in:
- lib/senko/code_generator.rb
Defined Under Namespace
Classes: UnsupportedSchema
Constant Summary collapse
- SUPPORTED_KEYS =
%w[ type enum const minimum maximum exclusiveMinimum exclusiveMaximum multipleOf minLength maxLength pattern required properties additionalProperties allOf anyOf oneOf not minItems maxItems uniqueItems prefixItems items contains minContains maxContains minProperties maxProperties patternProperties propertyNames dependentRequired ].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(schema) ⇒ CodeGenerator
constructor
A new instance of CodeGenerator.
Constructor Details
#initialize(schema) ⇒ CodeGenerator
Returns a new instance of CodeGenerator.
24 25 26 27 28 |
# File 'lib/senko/code_generator.rb', line 24 def initialize(schema) @schema = deep_stringify(schema) @regexps = [] @constants = [] end |
Class Method Details
.generate(schema) ⇒ Object
16 17 18 19 20 |
# File 'lib/senko/code_generator.rb', line 16 def self.generate(schema) new(schema).generate rescue UnsupportedSchema nil end |
Instance Method Details
#generate ⇒ Object
30 31 32 33 34 35 |
# File 'lib/senko/code_generator.rb', line 30 def generate expression = compile_schema(@schema, 'data') regexps = @regexps constants = @constants eval("lambda { |data| #{expression} }", binding, __FILE__, __LINE__) end |