Sha256: 20057e1f9bf9311f7f5a9841b6274776f5c486a2397ffb18c7ca71ebcc2faa6f

Contents?: true

Size: 740 Bytes

Versions: 6

Compression:

Stored size: 740 Bytes

Contents

require_relative '../swagger/operation'
require_relative '../swagger/tag'

module Swaggard
  module Parsers
    class Controller
      def run(yard_objects)
        tags = nil
        operations = {}

        yard_objects.each do |yard_object|
          if yard_object.type == :class
            tags = get_tags(yard_object)
          elsif tags && yard_object.type == :method
            name = yard_object.name
            operations[name.to_s] = yard_object
          end
        end

        return tags, operations
      end

      private

      def get_tags(yard_object)
        tags = yard_object.tags.select { |tag| tag.tag_name == 'tag' }

        tags.map { |tag| Swagger::Tag.new(yard_object, tag) }
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
swaggard-1.4.0 lib/swaggard/parsers/controller.rb
swaggard-1.3.0 lib/swaggard/parsers/controller.rb
swaggard-1.2.0 lib/swaggard/parsers/controller.rb
swaggard-1.1.1 lib/swaggard/parsers/controller.rb
swaggard-1.1.0 lib/swaggard/parsers/controller.rb
swaggard-1.0.2 lib/swaggard/parsers/controller.rb