class RailsTwirp::Mapper

Public Class Methods

new(route_set) click to toggle source
# File lib/rails_twirp/mapper.rb, line 55
def initialize(route_set)
  @route_set = route_set
  @module = nil
end

Public Instance Methods

scope(**options) { || ... } click to toggle source
# File lib/rails_twirp/mapper.rb, line 66
def scope(**options)
  last_module = @module
  if (modyoule = options.delete(:module))
    @module = @module.nil? ? modyoule : "#{@module}/#{modyoule}"
  end
  raise ArgumentError, "Unknown scope argument #{options.keys.first}" unless options.empty?
  yield
ensure
  @module = last_module
end
service(service_definition, **options, &block) click to toggle source
# File lib/rails_twirp/mapper.rb, line 60
def service(service_definition, **options, &block)
  service_route_set = @route_set.services[service_definition]
  service_mapper = ServiceMapper.new(service_route_set, self)
  scope(**options) { service_mapper.instance_exec(&block) }
end

Private Instance Methods

_module() click to toggle source
# File lib/rails_twirp/mapper.rb, line 79
def _module
  @module
end