module Genesis::Protocol

Use some metaprogramming to DRY up protocol definition

Public Class Methods

included(base) click to toggle source
# File lib/genesis/protocol.rb, line 4
def self.included(base) # rubocop:disable Metrics/MethodLength
  class << base
    def included(base)
      protocol = self
      base.define_singleton_method(:protocol) { protocol.protocol }
    end

    def server
      Kernel.const_get((to_s.split('::')[0..-2] << 'Server').join('::'))
    end

    def start_block
    end
  end
end