Sha256: 285c567f66dea894a4302d9964d8f6d4d2bfa4ac48d49e7f35d6bb72d74922c9

Contents?: true

Size: 641 Bytes

Versions: 1

Compression:

Stored size: 641 Bytes

Contents

# frozen_string_literal: true
# author: Vadim Shaveiko <@vshaveyko>
# :nodoc:
class RailsApiDoc::Params::Finder

  SUFFIX = 'Params'

  def initialize(object)
    @object = object
  end

  def call
    klass = find_class_name(@object).name.sub(/Ctrl$/, '')

    "#{klass}#{SUFFIX}".constantize
  end

  private

  def find_class_name(subject)
    if subject.respond_to?(:model_name)
      subject.model_name
    elsif subject.class.respond_to?(:model_name)
      subject.class.model_name
    elsif subject.is_a?(Class)
      subject
    elsif subject.is_a?(Symbol)
      subject.to_s.camelize
    else
      subject.class
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_api_documentation-0.3.4 lib/rails_api_doc/params/finder.rb