grape-doc 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +48 -8
- data/VERSION +1 -1
- data/lib/grape/doc/generator.rb +4 -3
- data/test/test_generator.rb +1 -1
- metadata +1 -3
- data/test/sample.html +0 -42
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: caa394eadde9afd947824250ce504efef851025d
         | 
| 4 | 
            +
              data.tar.gz: 30a65e747ab167f41d4c4ac5b11aa54092d981fc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3b95bb7efabc6e93a542d38440af9fda0dee90b5e0020e6ca95753f932ce3ab7ceb37df72d0369c0369d27b75a3756dfa7b5a57ce22c43dfc4c14a071c162091
         | 
| 7 | 
            +
              data.tar.gz: c676d58047822cd7148de315b84838b25db853568c01581e197a67581ace8da1c36a41d63074bd2a685c799bb88f46e5bfda14a6cb1f2a3a37541f07b49dbeaf
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,18 +1,58 @@ | |
| 1 1 | 
             
            Grape-Doc
         | 
| 2 2 | 
             
            ========
         | 
| 3 3 |  | 
| 4 | 
            -
             | 
| 4 | 
            +
            ### Description
         | 
| 5 5 |  | 
| 6 | 
            -
             | 
| 6 | 
            +
            It's a Grape documentation generator for lazy developers. 
         | 
| 7 | 
            +
            The main goal is to make as clean and useful documentation
         | 
| 8 | 
            +
            as possible for 3. party developers to your application without
         | 
| 9 | 
            +
            sharing anything from the code.
         | 
| 7 10 |  | 
| 8 | 
            -
             | 
| 11 | 
            +
            The Documentation generator it self is a little evil because
         | 
| 12 | 
            +
            it not force but really count on it, that you make test for 
         | 
| 13 | 
            +
            your api endpoints. For now it's all based on rack-test,
         | 
| 14 | 
            +
            but support will be given for other testing frameworks too.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            But dont misunderstand this, it can live without it, 
         | 
| 17 | 
            +
            you just have to do more support for the others,
         | 
| 18 | 
            +
            because the documentation will lack curl samples and sample 
         | 
| 19 | 
            +
            response body and stuffs like that.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            #### Install
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                $ gem install grape-doc
         | 
| 9 24 |  | 
| 10 | 
            -
            Gemfile | 
| 25 | 
            +
            #### Gemfile
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                gem 'grape-doc'
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            #### Simple Use
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            ```ruby
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                GrapeDoc.generate
         | 
| 34 | 
            +
                #> this will create an api_doc.html in the project_folder/doc
         | 
| 35 | 
            +
                
         | 
| 36 | 
            +
            ```
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            I Would suggest run minitests first,
         | 
| 39 | 
            +
            with including all the test in the test folder that touch anything with your grape api classes.
         | 
| 40 | 
            +
            Because a rack-test-poc , there will be generated yaml files in the test/poc folder
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            #### Complex Use
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            ```ruby
         | 
| 11 45 |  | 
| 12 | 
            -
             | 
| 46 | 
            +
                GrapeDoc.generate   format: 'redmine', # or textile, or html
         | 
| 47 | 
            +
                                    path: File.join(__dir__,'..........')
         | 
| 48 | 
            +
                                    
         | 
| 13 49 |  | 
| 14 | 
            -
             | 
| 50 | 
            +
            ```
         | 
| 51 | 
            +
               
         | 
| 52 | 
            +
            well that was complex! right?
         | 
| 15 53 |  | 
| 16 | 
            -
             | 
| 54 | 
            +
            #### After words
         | 
| 17 55 |  | 
| 18 | 
            -
             | 
| 56 | 
            +
            I would strongly suggest using Grape build in desc method for api endpoints,
         | 
| 57 | 
            +
            and define every parameters ahead, so they will be included in the documentation,
         | 
| 58 | 
            +
            and validated on request!
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.4. | 
| 1 | 
            +
            0.4.1
         | 
    
        data/lib/grape/doc/generator.rb
    CHANGED
    
    | @@ -8,8 +8,9 @@ module GrapeDoc | |
| 8 8 | 
             
                  raise(ArgumentError,'invalid options given') unless opts.class <= Hash
         | 
| 9 9 | 
             
                  @options = {
         | 
| 10 10 | 
             
                    'format' => 'html',
         | 
| 11 | 
            -
            		    'path'   => File.join(Helpers.doc_folder_path,'api_doc | 
| 11 | 
            +
            		    'path'   => File.join(Helpers.doc_folder_path,'api_doc')
         | 
| 12 12 | 
             
                  }.merge(opts.reduce({}){|m,o| m.merge!(o[0].to_s => o[1]) ;m})
         | 
| 13 | 
            +
                  self.options['path'] = self.options['path'].to_s.sub(/\..*$/,'')
         | 
| 13 14 |  | 
| 14 15 | 
             
                  process_head
         | 
| 15 16 | 
             
                  process_table_of_content
         | 
| @@ -26,11 +27,11 @@ module GrapeDoc | |
| 26 27 | 
             
                  case @options['format'].to_s.downcase
         | 
| 27 28 |  | 
| 28 29 | 
             
                    when /redmine/,/textile/
         | 
| 29 | 
            -
                      File.write self.options['path'] | 
| 30 | 
            +
                      File.write self.options['path'] + '.textile',
         | 
| 30 31 | 
             
                                 document.to_textile
         | 
| 31 32 |  | 
| 32 33 | 
             
                    else
         | 
| 33 | 
            -
                      File.write self.options['path'] | 
| 34 | 
            +
                      File.write self.options['path'] + '.html',
         | 
| 34 35 | 
             
                                 document.to_textile.to_html
         | 
| 35 36 |  | 
| 36 37 |  | 
    
        data/test/test_generator.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: grape-doc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Adam Luzsi
         | 
| @@ -135,7 +135,6 @@ files: | |
| 135 135 | 
             
            - lib/grape/doc/helper.rb
         | 
| 136 136 | 
             
            - lib/grape/doc/parser.rb
         | 
| 137 137 | 
             
            - lib/grape/doc/prototype.rb
         | 
| 138 | 
            -
            - test/sample.html
         | 
| 139 138 | 
             
            - test/sample.textile
         | 
| 140 139 | 
             
            - test/test_all.rb
         | 
| 141 140 | 
             
            - test/test_collector.rb
         | 
| @@ -166,7 +165,6 @@ signing_key: | |
| 166 165 | 
             
            specification_version: 4
         | 
| 167 166 | 
             
            summary: Documentation generator for Grape module
         | 
| 168 167 | 
             
            test_files:
         | 
| 169 | 
            -
            - test/sample.html
         | 
| 170 168 | 
             
            - test/sample.textile
         | 
| 171 169 | 
             
            - test/test_all.rb
         | 
| 172 170 | 
             
            - test/test_collector.rb
         | 
    
        data/test/sample.html
    DELETED
    
    | @@ -1,42 +0,0 @@ | |
| 1 | 
            -
            <h1>Rest Api Documentation (grape-doc)</h1>
         | 
| 2 | 
            -
            <h2><span class="caps">GET</span>: /hello(.:format)</h2>
         | 
| 3 | 
            -
            <h3>Request</h3>
         | 
| 4 | 
            -
            <h4>description</h4>
         | 
| 5 | 
            -
            <ul>
         | 
| 6 | 
            -
            	<li>Hello world!</li>
         | 
| 7 | 
            -
            </ul>
         | 
| 8 | 
            -
            <h4>params</h4>
         | 
| 9 | 
            -
            <ul>
         | 
| 10 | 
            -
            	<li>test
         | 
| 11 | 
            -
            	<ul>
         | 
| 12 | 
            -
            		<li>required: false</li>
         | 
| 13 | 
            -
            		<li>type: String</li>
         | 
| 14 | 
            -
            		<li>desc: it’s a test string</li>
         | 
| 15 | 
            -
            	</ul></li>
         | 
| 16 | 
            -
            </ul>
         | 
| 17 | 
            -
            <h3>Response</h3>
         | 
| 18 | 
            -
            <h4>example</h4>
         | 
| 19 | 
            -
            <h5>curl sample with /hello</h5>
         | 
| 20 | 
            -
            <pre>$ curl -X GET "http://example.org/hello?test=hy" -H "Accept-Version: v1" -H "X-Token: blabla"</pre>
         | 
| 21 | 
            -
            <ul>
         | 
| 22 | 
            -
            	<li>status code: 200</li>
         | 
| 23 | 
            -
            	<li>format type: json</li>
         | 
| 24 | 
            -
            </ul>
         | 
| 25 | 
            -
            <h6>raw response body</h6>
         | 
| 26 | 
            -
            <pre>{"hello":"world!"}</pre>
         | 
| 27 | 
            -
            <h6>json formatted body with Class types</h6>
         | 
| 28 | 
            -
            <pre>{
         | 
| 29 | 
            -
              "hello": "String"
         | 
| 30 | 
            -
            }</pre>
         | 
| 31 | 
            -
            <h5>curl sample with /hello.json</h5>
         | 
| 32 | 
            -
            <pre>$ curl -X GET "http://example.org/hello.json?" -H "Accept-Version: v1" -H "X-Token: blabla"</pre>
         | 
| 33 | 
            -
            <ul>
         | 
| 34 | 
            -
            	<li>status code: 200</li>
         | 
| 35 | 
            -
            	<li>format type: json</li>
         | 
| 36 | 
            -
            </ul>
         | 
| 37 | 
            -
            <h6>raw response body</h6>
         | 
| 38 | 
            -
            <pre>{"hello":"world!"}</pre>
         | 
| 39 | 
            -
            <h6>json formatted body with Class types</h6>
         | 
| 40 | 
            -
            <pre>{
         | 
| 41 | 
            -
              "hello": "String"
         | 
| 42 | 
            -
            }</pre>
         |