class Apipie::MethodDescription::ApisService
Service that builds the appropriate Apipie::MethodDescription::Api
required by Apipie::MethodDescription
Public Class Methods
Source
# File lib/apipie/method_description/apis_service.rb, line 8 def initialize(resource, controller_action, dsl) @resource = resource @controller_action = controller_action @dsl = dsl end
@param [Apipie::ResourceDescription] resource @param [Symbol] controller_action @param [Hash] dsl
Public Instance Methods
Source
# File lib/apipie/method_description/apis_service.rb, line 15 def call api_args.map do |http_method, path, desc, opts| Apipie::MethodDescription::Api.new( http_method, concern_subst(path), concern_subst(desc), opts ) end end
@return [Array<Apipie::MethodDescription::Api>]
Private Instance Methods
Source
# File lib/apipie/method_description/apis_service.rb, line 39 def api_args return @dsl[:api_args] if !api_from_routes? api_args = @dsl[:api_args].dup api_args_from_routes = routes.map do |route_info| [ route_info[:verb], route_info[:path], route_info[:desc], (route_info[:options] || {}).merge(from_routes: true) ] end api_args.concat(api_args_from_routes) end
@return [Array<Array>]
Source
# File lib/apipie/method_description/apis_service.rb, line 56 def api_from_routes? @dsl[:api_from_routes].present? end
Source
# File lib/apipie/method_description/apis_service.rb, line 28 def concern_subst(path) return if path.blank? if from_concern? @resource.controller._apipie_perform_concern_subst(path) else path end end
Source
# File lib/apipie/method_description/apis_service.rb, line 64 def description @dsl[:api_from_routes][:desc] end
Source
# File lib/apipie/method_description/apis_service.rb, line 60 def from_concern? @dsl[:from_concern] == true end
Source
# File lib/apipie/method_description/apis_service.rb, line 68 def options @dsl[:api_from_routes][:options] end
Source
# File lib/apipie/method_description/apis_service.rb, line 73 def routes Apipie.routes_for_action( @resource.controller, @controller_action, { desc: description, options: options } ) end
@return [Array<Hash>]