lib/polyn/cli/schema_loader.rb in polyn-cli-0.2.0 vs lib/polyn/cli/schema_loader.rb in polyn-cli-0.3.0
- old
+ new
@@ -19,11 +19,10 @@
def initialize(thor, **opts)
@thor = thor
@client = connect
@store_name = opts.fetch(:store_name, STORE_NAME)
@bucket = client.key_value(@store_name)
- @cloud_event_schema = Polyn::Cli::CloudEvent.to_h.freeze
@schemas_dir = opts.fetch(:schemas_dir, File.join(Dir.pwd, "schemas"))
@schemas = {}
@existing_schemas = {}
end
@@ -45,11 +44,10 @@
attr_reader :thor,
:schemas,
:client,
:bucket,
- :cloud_event_schema,
:schemas_dir,
:store_name,
:existing_schemas
def connect
@@ -70,15 +68,14 @@
schema_files = Dir.glob(File.join(schemas_dir, "/**/*.json"))
validate_unique_schema_names!(schema_files)
schema_files.each do |schema_file|
thor.say "Loading 'schema #{schema_file}'"
- data_schema = JSON.parse(File.read(schema_file))
+ schema = JSON.parse(File.read(schema_file))
schema_name = File.basename(schema_file, ".json")
- validate_schema!(schema_name, data_schema)
+ validate_schema!(schema_name, schema)
Polyn::Cli::Naming.validate_message_name!(schema_name)
- schema = compose_cloud_event(data_schema)
schemas[schema_name] = schema
end
end
@@ -110,17 +107,9 @@
JSONSchemer.schema(schema)
rescue StandardError => e
raise Polyn::Cli::ValidationError,
"Invalid JSON Schema document for event #{schema_name}\n#{e.message}\n"\
"#{JSON.pretty_generate(schema)}"
- end
-
- def compose_cloud_event(data_schema)
- cloud_event_schema.merge({
- "definitions" => cloud_event_schema["definitions"].merge({
- "datadef" => data_schema,
- }),
- })
end
def load_existing_schemas
sub = client.subscribe("#{key_prefix}.>")