module Protobuf::Optionable
Public Class Methods
inject(base_class, extend_class = true, &block)
click to toggle source
# File lib/protobuf/optionable.rb, line 46 def self.inject(base_class, extend_class = true, &block) unless block_given? fail ArgumentError, 'missing option class block (e.g: ::Google::Protobuf::MessageOptions)' end if extend_class # Check if optionable_descriptor_class is already defined and short circuit if so. # File options are injected per module, and since a module can be defined more than once, # we will get a warning if we try to define optionable_descriptor_class twice. if base_class.respond_to?(:optionable_descriptor_class) # Don't define optionable_descriptor_class twice return if base_class.optionable_descriptor_class == block.call fail 'A class is being defined with two different descriptor classes, something is very wrong' end base_class.extend(ClassMethods) base_class.__send__(:include, self) base_class.define_singleton_method(:optionable_descriptor_class, block) else base_class.__send__(:include, ClassMethods) base_class.module_eval { define_method(:optionable_descriptor_class, block) } end end
Public Instance Methods
get_option(name)
click to toggle source
# File lib/protobuf/optionable.rb, line 38 def get_option(name) self.class.get_option(name) end
get_option!(name)
click to toggle source
# File lib/protobuf/optionable.rb, line 42 def get_option!(name) self.class.get_option!(name) end