class RailsTwirp::ServiceMapper::Mapping

Attributes

action[R]
controller[R]

Public Class Methods

new(to:, **options) click to toggle source
# File lib/rails_twirp/mapper.rb, line 8
def initialize(to:, **options)
  controller, @action = split_to(to)
  @controller = add_controller_module(controller, options.delete(:module))
  raise ArgumentError, "Unknown argument #{options.keys.first}" unless options.empty?
end

Public Instance Methods

to_s() click to toggle source
# File lib/rails_twirp/mapper.rb, line 14
def to_s
  "#{controller}##{action}"
end

Private Instance Methods

add_controller_module(controller, modyoule) click to toggle source
# File lib/rails_twirp/mapper.rb, line 29
def add_controller_module(controller, modyoule)
  return controller unless modyoule

  if controller&.start_with?("/")
    -controller[1..]
  else
    -[modyoule, controller].compact.join("/")
  end
end
split_to(to) click to toggle source

copied from Rails

# File lib/rails_twirp/mapper.rb, line 21
def split_to(to)
  if /#/.match?(to)
    to.split("#").map!(&:-@)
  else
    []
  end
end