Schema objects can't be used with Set implementations (whether Ruby's or Eventide's) because of a lack of a specialized implementation of the hash method needed to generate a consistent hash key.
Calculate the hash value by first creating a representation of the raw attributes, and then deriving a hash key from that data.
Consider adding a raw_attributes method to the Schema module, and/or augmenting the existing attributes method with a boolean transform (defaults to true) parameter to control whether the attributes are subject to any transformation logic.
Schema objects can't be used with
Setimplementations (whether Ruby's or Eventide's) because of a lack of a specialized implementation of thehashmethod needed to generate a consistent hash key.Calculate the hash value by first creating a representation of the raw attributes, and then deriving a hash key from that data.
Consider adding a
raw_attributesmethod to theSchemamodule, and/or augmenting the existingattributesmethod with a booleantransform(defaults totrue) parameter to control whether the attributes are subject to any transformation logic.