Sha256: 13910295e75618ab287dd41611d2e8a866a7fa074b36545e7034fd26b36d97de

Contents?: true

Size: 849 Bytes

Versions: 5

Compression:

Stored size: 849 Bytes

Contents

module Wukong
  module DocHelpers

    # Handles the Wukong.processor syntax.
    class ProcessorHandler < YARD::Handlers::Ruby::ClassHandler

      handles method_call(:processor)

      # :nodoc:
      def base_processor_class
        @base_processor_class ||= YARD::CodeObjects::ClassObject.new(namespace, "Wukong::Processor")
      end

      # :nodoc:
      def process
        processor_name  = statement.parameters.first.jump(:tstring_content, :ident).source
        class_name      = Gorillib::Inflector.camelize(processor_name)
        processor_class = create_class(class_name, base_processor_class)
        processor_body  = statement.last.last
        
        push_state(:owner => processor_class, :scope => :class, :namespace => processor_class) do
          parse_block(processor_body)
        end
      end
      
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
ul-wukong-4.1.1 lib/wukong/doc_helpers/processor_handler.rb
ul-wukong-4.1.0 lib/wukong/doc_helpers/processor_handler.rb
wukong-4.0.0 lib/wukong/doc_helpers/processor_handler.rb
wukong-3.0.1 lib/wukong/doc_helpers/processor_handler.rb
wukong-3.0.0 lib/wukong/doc_helpers/processor_handler.rb