Sha256: 11a6351c2ae826c14ff660c5e83faef7c1d99749c3f3d16ae82fbfcbd21223f6

Contents?: true

Size: 953 Bytes

Versions: 17

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true

module GrapeSwagger
  module DocMethods
    class OperationId
      class << self
        def build(route, path = nil)
          if route.options[:nickname]
            route.options[:nickname]
          else
            verb = route.request_method.to_s.downcase
            operation = manipulate(path) unless path.nil?
            "#{verb}#{operation}"
          end
        end

        def manipulate(path)
          operation = path.split('/').map(&:capitalize).join
          operation.gsub!(/-(\w)/, &:upcase).delete!('-') if operation[/-(\w)/]
          operation.gsub!(/_(\w)/, &:upcase).delete!('_') if operation.include?('_')
          operation.gsub!(/\.(\w)/, &:upcase).delete!('.') if operation[/\.(\w)/]
          if path.include?('{')
            operation.gsub!(/\{(\w)/, &:upcase)
            operation.delete!('{').delete!('}')
          end

          operation
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
grape-swagger-2.1.2 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-2.1.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-2.0.3 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-2.0.2 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-2.0.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-2.0.0 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.6.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.6.0 lib/grape-swagger/doc_methods/operation_id.rb
gitlab-grape-swagger-1.5.0 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.5.0 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.4.2 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.4.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.4.0 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.3.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.3.0 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.2.1 lib/grape-swagger/doc_methods/operation_id.rb
grape-swagger-1.2.0 lib/grape-swagger/doc_methods/operation_id.rb