module Protobuf::Generate::Language::Helpers

Attributes

filename[RW]
template[RW]

Public Instance Methods

type_count(*types) click to toggle source
# File lib/protobuf/generate/language.rb, line 21
def type_count *types
  select{|e| e.kind_of?(Protobuf::Generate::Ast::Message)}.inject(0) do |count, message|
    count += message.fields.count{|f| types.map(&:to_s).include?(f.type)}
  end
end
type_enum?(type) click to toggle source
# File lib/protobuf/generate/language.rb, line 13
def type_enum? type
  !!find{|e| e.kind_of?(Protobuf::Generate::Ast::Enum) && e.name == type }
end
type_enum_default(type, default) click to toggle source
# File lib/protobuf/generate/language.rb, line 27
def type_enum_default type, default
  enum = find{|e| e.kind_of?(Protobuf::Generate::Ast::Enum) && e.name == type} # TODO: Or raise unknown type.
  (enum.fields.find{|f| f.name == default.to_s} || enum.fields.first).name
end
type_message?(type) click to toggle source
# File lib/protobuf/generate/language.rb, line 9
def type_message? type
  !!find{|e| e.kind_of?(Protobuf::Generate::Ast::Message) && e.name == type }
end
type_wire(type) click to toggle source
# File lib/protobuf/generate/language.rb, line 17
def type_wire type
  Hash[*%w{int32 0 int64 0 sint32 0 sint64 0 uint32 0 uint64 0 string 2 bool 0 float 5 double 1 fixed32 5 fixed64 1 sfixed32 5 sfixed64 1 bytes 2}][type]
end