Sha256: cb03f3e22eac0099c346dad62c79af4ea4e12d0ef893c41861b8533ef23bc2bd
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module Azeroth # @api private # @author Darthjee # # Builder resposible for adding routes methods to the controller class RoutesBuilder < Sinclair::Model initialize_with(:model, :builder, :options, writter: false) # @method initialize(model:, builder:, options:) # @param model [Model] resource interface # @param builder [Sinclair] methods builder # @param options [Option] # @return [RoutesBuilder] # Append the routes methods to be built # # @return [Array<Sinclair::MethodDefinition>] def append options.actions.each do |route| add_method(route, &route_code(route)) end end private # @method model # @api private # @private # # Resource interface # # @return [Model] # @method builder # @api private # @private # # Methods builder # # @return [Sinclair] # @method options # @api private # @private # # Buiding options # # @return [Options] delegate :add_method, to: :builder # @method add_method # @api private # @private # # Appends a method # # @return [Array<Sinclair::MethodDefinition>] def route_code(route) model_interface = model options_object = options handler_class = Azeroth::RequestHandler.const_get( route.to_s.capitalize ) proc do handler_class.new( self, model_interface, options_object ).process end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
azeroth-1.0.0 | lib/azeroth/routes_builder.rb |