lib/membrane/schema_parser.rb in membrane-0.0.2 vs lib/membrane/schema_parser.rb in membrane-0.0.4

- old
+ new

@@ -1,6 +1,6 @@ -require "membrane/schema" +require "membrane/schemas" module Membrane end class Membrane::SchemaParser @@ -11,15 +11,15 @@ DictionaryMarker = Struct.new(:key_schema, :value_schema) EnumMarker = Struct.new(:elem_schemas) TupleMarker = Struct.new(:elem_schemas) def any - Membrane::Schema::Any.new + Membrane::Schemas::Any.new end def bool - Membrane::Schema::Bool.new + Membrane::Schemas::Bool.new end def enum(*elem_schemas) EnumMarker.new(elem_schemas) end @@ -51,35 +51,35 @@ do_parse(intermediate_schema) end def deparse(schema) case schema - when Membrane::Schema::Any + when Membrane::Schemas::Any "any" - when Membrane::Schema::Bool + when Membrane::Schemas::Bool "bool" - when Membrane::Schema::Class + when Membrane::Schemas::Class schema.klass.name - when Membrane::Schema::Dictionary + when Membrane::Schemas::Dictionary "dict(%s, %s)" % [deparse(schema.key_schema), deparse(schema.value_schema)] - when Membrane::Schema::Enum + when Membrane::Schemas::Enum "enum(%s)" % [schema.elem_schemas.map { |es| deparse(es) }.join(", ")] - when Membrane::Schema::List + when Membrane::Schemas::List "[%s]" % [deparse(schema.elem_schema)] - when Membrane::Schema::Record + when Membrane::Schemas::Record deparse_record(schema) - when Membrane::Schema::Regexp + when Membrane::Schemas::Regexp schema.regexp.inspect - when Membrane::Schema::Tuple + when Membrane::Schemas::Tuple "tuple(%s)" % [schema.elem_schemas.map { |es| deparse(es) }.join(", ")] - when Membrane::Schema::Value + when Membrane::Schemas::Value schema.value.inspect - when Membrane::Schema::Base + when Membrane::Schemas::Base schema.inspect else - emsg = "Expected instance of Membrane::Schema::Base, given instance of" \ + emsg = "Expected instance of Membrane::Schemas::Base, given instance of" \ + " #{schema.class}" raise ArgumentError.new(emsg) end end @@ -90,37 +90,37 @@ when Hash parse_record(object) when Array parse_list(object) when Class - Membrane::Schema::Class.new(object) + Membrane::Schemas::Class.new(object) when Regexp - Membrane::Schema::Regexp.new(object) + Membrane::Schemas::Regexp.new(object) when Dsl::DictionaryMarker - Membrane::Schema::Dictionary.new(do_parse(object.key_schema), + Membrane::Schemas::Dictionary.new(do_parse(object.key_schema), do_parse(object.value_schema)) when Dsl::EnumMarker elem_schemas = object.elem_schemas.map { |s| do_parse(s) } - Membrane::Schema::Enum.new(*elem_schemas) + Membrane::Schemas::Enum.new(*elem_schemas) when Dsl::TupleMarker elem_schemas = object.elem_schemas.map { |s| do_parse(s) } - Membrane::Schema::Tuple.new(*elem_schemas) - when Membrane::Schema::Base + Membrane::Schemas::Tuple.new(*elem_schemas) + when Membrane::Schemas::Base object else - Membrane::Schema::Value.new(object) + Membrane::Schemas::Value.new(object) end end def parse_list(schema) if schema.empty? raise ArgumentError.new("You must supply a schema for elements.") elsif schema.length > 1 raise ArgumentError.new("Lists can only match a single schema.") end - Membrane::Schema::List.new(do_parse(schema[0])) + Membrane::Schemas::List.new(do_parse(schema[0])) end def parse_record(schema) if schema.empty? raise ArgumentError.new("You must supply at least one key-value pair.") @@ -137,11 +137,11 @@ end parsed[key] = do_parse(value_schema) end - Membrane::Schema::Record.new(parsed, optional_keys) + Membrane::Schemas::Record.new(parsed, optional_keys) end def deparse_record(schema) lines = ["{"] @@ -151,9 +151,10 @@ dep_key = "optional(%s)" % [key.inspect] else dep_key = key.inspect end + dep_key = DEPARSE_INDENT + dep_key dep_val_schema_lines = deparse(val_schema).split("\n") dep_val_schema_lines.each_with_index do |line, line_idx| to_append = nil