Sha256: 3e7fc09f8e32b2b889807a0d79f0302de8453a6c5e8064acbd0bf4095460cc23
Contents?: true
Size: 794 Bytes
Versions: 18
Compression:
Stored size: 794 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"].to_s.downcase == "true") 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
18 entries across 18 versions & 1 rubygems