6
7
8
9
10
11
12
13
14
|
# File 'lib/zod_rails/mapping/enum_mapper.rb', line 6
def self.call(values, nullable: false, input_schema: false, has_default: false, validation_chain: "")
names = values.is_a?(Hash) ? values.keys : values
quoted = names.map { |name| JSON.generate(name.to_s) }
enum = "z.enum([#{quoted.join(", ")}])"
base = validation_chain.empty? ? enum : "z.string()#{validation_chain}.pipe(#{enum})"
suffix = determine_suffix(nullable: nullable, input_schema: input_schema, has_default: has_default)
"#{base}#{suffix}"
end
|