Sha256: 817117ad1b09d63b22d2c22acc23f4ce4a9430c632ee872e7117e25a8f13bfc4

Contents?: true

Size: 947 Bytes

Versions: 10

Compression:

Stored size: 947 Bytes

Contents

class Apipie::Generator::Swagger::PathDecorator < SimpleDelegator
  def param_names
    @param_names ||= scan(/:(\w+)/).map { |ar| ar[0].to_sym }
  end

  # @param [Symbol] param_name
  def param?(param_name)
    param_names.include?(param_name)
  end

  # @param [String] controller_method
  #
  # @return [Apipie::Generator::Swagger::PathDecorator]
  def swagger_path(controller_method = nil)
    current_path = gsub(/:(\w+)/, '{\1}').gsub(%r{/$}, '')

    unless current_path.starts_with?('/')
      warn_for_missing_slash(controller_method) if controller_method.present?

      current_path = "/#{current_path}"
    end

    current_path
  end

  private

  # @param [String] controller_method
  def warn_for_missing_slash(controller_method)
    Apipie::Generator::Swagger::Warning.for_code(
      Apipie::Generator::Swagger::Warning::ADDED_MISSING_SLASH_CODE,
      controller_method,
      { path: self }
    ).warn_through_writer
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
apipie-rails-1.4.2 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.4.1 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.4.0 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.3.0 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.2.3 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.2.2 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.2.1 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.2.0 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.1.0 lib/apipie/generator/swagger/path_decorator.rb
apipie-rails-1.0.0 lib/apipie/generator/swagger/path_decorator.rb