Sha256: fd5b4eea30eac506d43e38500bc9d3c574d00150cfd73d2df0cc8b4855ff72c3

Contents?: true

Size: 1.53 KB

Versions: 5

Compression:

Stored size: 1.53 KB

Contents

module GrapeDoc
  class ApiDocParts

    class StringBasic < String

      class << self
        def markdown=(obj)
          @markdown=obj
        end
        def markdown
          @markdown || self.to_s.split('::')[-1].downcase
        end
      end

      def initialize(*args)
        args[0] = Parser.parse(args[0])
        self.replace(args[0])
      end

      def markdown
        self.class.markdown
      end

      alias to_textile to_s

    end

    class StringObject < StringBasic

      def to_textile
        "#{markdown}. #{self.to_s}\n"
      end

    end

    class StringObjectEnded < StringObject

      def to_textile
        "#{markdown}#{self}#{markdown}\n"
      end

    end

    class ArrayObject < Array

      class << self
        def markdown=(obj)
          @markdown=obj
        end
        def markdown
          @markdown || self.to_s.downcase
        end
      end

      def initialize(object)
        object = Parser.parse(object)
        self.replace(object)
      end

      def markdown
        self.class.markdown
      end

      def to_textile
        self.map{|e|
          case e

            when ArrayObject
              e.map{|e|

                text = if e.respond_to?(:to_textile)
                         e.to_textile
                       else
                         e.to_s
                       end

                "#{markdown}#{markdown} #{text}"

              }.join("\n")

            else
              "#{markdown} #{e}"

          end
        }.push('').join("\n")
      end

    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
grape-doc-0.3.4 lib/grape/doc/prototype.rb
grape-doc-0.3.3 lib/grape/doc/prototype.rb
grape-doc-0.3.0 lib/grape/doc/prototype.rb
grape-doc-0.1.1 lib/grape/doc/prototype.rb
grape-doc-0.1.0 lib/grape/doc/prototype.rb