class Schematrix::Generators::Templates::EnumBase
Shares member folding and bidirectional coercion across enum formats.
Public Class Methods
Source
# File lib/schematrix/generators/templates/enum_base.rb, line 12 def self.fold_members(values) names = {} values.compact.uniq.map do |value| clean = value.to_s.gsub(/[^a-zA-Z0-9]/, " ").strip clean = value.to_s.unpack1("H*") if clean.empty? clean = "Empty" if clean.empty? name = pascal_case(clean).sub(/\A(\d)/, 'N\1') if names.key?(name) raise OutputCollisionError, "Enum values #{names.fetch(name).inspect} and " \ "#{value.inspect} fold onto #{name}" end names[name] = value [name, value] end end
# File lib/schematrix/generators/templates/enum_base.rb, line 29 def initialize(members:, format: nil, **) super(properties: nil, additional_properties: nil, **) @members = members @format = format end
Calls superclass method
Schematrix::Generators::Templates::Base::new