Sha256: 385318ba621a5b57cbaa86e983b209ccf51a88a0d9ab2d17c4bac619a5616253
Contents?: true
Size: 770 Bytes
Versions: 7
Compression:
Stored size: 770 Bytes
Contents
module ResoTransport Member = Struct.new(:name, :value, :annotation) do def self.from_stream(args) new(args["Name"], args["Value"]) end end Enum = Struct.new(:name, :type, :is_flags) do def self.from_stream(args) new("#{args[:schema].namespace}.#{args["Name"]}", args["UnderlyingType"], args["IsFlags"]) end def members @members ||= [] end def parse_value(value) mapping.fetch(value, value) end def encode_value(value) "'#{mapping.invert.fetch(value, value)}'" end def mapping @mapping ||= generate_member_map || {} end def generate_member_map members.map {|mem| { mem.name => mem.annotation || mem.name } }.reduce(:merge!) end end end
Version data entries
7 entries across 7 versions & 1 rubygems