class Protobuf::Generators::GroupGenerator
Attributes
groups[R]
indent_level[R]
order[W]
Public Class Methods
new(indent_level = 0)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 16 def initialize(indent_level = 0) @groups = Hash.new { |h, k| h[k] = [] } @headers = {} @comments = {} @handlers = {} @indent_level = indent_level @order = [:enum, :message_declaration, :options, :message, :extended_message, :service] init_printer(indent_level) end
Public Instance Methods
add_comment(type, message)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 36 def add_comment(type, message) @comments[type] = message end
add_enums(enum_descriptors, options)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 30 def add_enums(enum_descriptors, options) enum_descriptors.each do |enum_descriptor| @groups[:enum] << EnumGenerator.new(enum_descriptor, indent_level, options) end end
add_extended_messages(extended_messages, skip_empty_fields = true)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 40 def add_extended_messages(extended_messages, skip_empty_fields = true) extended_messages.each do |message_type, field_descriptors| next if skip_empty_fields && field_descriptors.empty? @groups[:extended_message] << ExtensionGenerator.new(message_type, field_descriptors, indent_level) end end
add_extension_fields(field_descriptors)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 47 def add_extension_fields(field_descriptors) field_descriptors.each do |field_descriptor| @groups[:extension_field] << FieldGenerator.new(field_descriptor, indent_level) end end
add_extension_ranges(extension_ranges, &item_handler)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 53 def add_extension_ranges(extension_ranges, &item_handler) @groups[:extension_range] = extension_ranges @handlers[:extension_range] = item_handler end
add_header(type, message)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 58 def add_header(type, message) @headers[type] = message end
add_message_declarations(descriptors)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 62 def add_message_declarations(descriptors) descriptors.each do |descriptor| @groups[:message_declaration] << MessageGenerator.new(descriptor, indent_level, :declaration => true) end end
add_message_fields(field_descriptors)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 68 def add_message_fields(field_descriptors) field_descriptors.each do |field_descriptor| @groups[:field] << FieldGenerator.new(field_descriptor, indent_level) end end
add_messages(descriptors, options = {})
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 74 def add_messages(descriptors, options = {}) descriptors.each do |descriptor| @groups[:message] << MessageGenerator.new(descriptor, indent_level, options) end end
add_options(option_descriptor)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 26 def add_options(option_descriptor) @groups[:options] << OptionGenerator.new(option_descriptor, indent_level) end
add_services(service_descriptors)
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 80 def add_services(service_descriptors) service_descriptors.each do |service_descriptor| @groups[:service] << ServiceGenerator.new(service_descriptor, indent_level) end end
compile()
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 86 def compile @order.each do |type| items = @groups[type] next if items.empty? item_handler = @handlers[type] item_header = @headers[type] header(item_header) if item_header item_comment = @comments[type] comment(item_comment) if item_comment items.each do |item| if item_handler puts item_handler.call(item) else print item.to_s end end puts if type == :message_declaration || type == :options end end
to_s()
click to toggle source
# File lib/protobuf/generators/group_generator.rb, line 111 def to_s compile print_contents end