Sha256: c8da096f3a2a3a2c8ee70c474d64a900e74783b8e1f9b31808aa7d3492923815
Contents?: true
Size: 1.38 KB
Versions: 217
Compression:
Stored size: 1.38 KB
Contents
class Jets::Resource class Standardizer attr_reader :definition def initialize(*definition) @definition = definition.flatten end def template camelize(standarize(@definition)) end def camelize(attributes) Jets::Camelizer.transform(attributes) end def standarize(definition) first, second, third, _ = definition if definition.size == 1 && first.is_a?(Hash) # long form first # pass through elsif definition.size == 2 && second.is_a?(Hash) # medium form logical_id, attributes = first, second attributes.delete(:properties) if attributes[:properties].nil? || attributes[:properties].empty? { logical_id => attributes } elsif definition.size == 2 && second.is_a?(String) # short form logical_id, type = first, second { logical_id => { type: type }} elsif definition.size == 3 && (second.is_a?(String) || second.is_a?(NilClass))# short form logical_id, type, properties = first, second, third template = { logical_id => { type: type }} attributes = template.values.first attributes[:properties] = properties unless properties.empty? template else # Dont understand this form raise "Invalid form provided. definition #{definition.inspect}" end end end end
Version data entries
217 entries across 217 versions & 4 rubygems