0.01
No commit activity in last 3 years
No release in over 3 years
Generate API examples from params and response of controller specs
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
< 5, >= 3.2.9
>= 0
>= 0

Runtime

>= 0
>= 0
 Project Readme

GhostWriter

Build Status Gem Version Code Climate

Generate API examples from params and response of controller/request specs

Support RSpec2 & RSpec3.

Installation

Add this line to your application's Gemfile:

gem 'ghost_writer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ghost_writer

Usage

Write controller spec or request spec, and...

bundle exec ghost_writer spec/controllers # execute specs and generate docs at [Rails.root]/doc/api_examples

Command options

  • --output, -o Set output directory
  • --format, -f Set output document format (markdown or rst)
  • --clear , -c Clear output directory before running specs

Spec helper configuration

Caution: Using ghost_writer command and Defining after fook manually at the same time, after hook is executed twice, because of it document_index is cleared.

# spec_helper
RSpec.configure do |config|
  # The difference with previous version. already no need including Module and Defining after hook
  GhostWriter.output_dir = "api_docs" # Optional (default is "api_examples")
  GhostWriter.output_format = :rst # Optional (default is :markdown)
  GhostWriter.github_base_url = "https://github.com/joker1007/ghost_writer/tree/master/output_examples" # Optional
end

# posts_controller_spec
require 'spec_helper'

describe PostsController do
  describe "GET index" do
    it "should be success", generate_api_doc: true do # Add metadata :generate_api_doc
      get :index
      response.should be_success
    end

    it "should be success", generate_api_doc: "index_error" do # if metadata value is string, use it as filename
      get :index
      response.status.should eq 404
    end
  end
end

If GhostWriter.output_dir is set, generate docs at [Rails.root]/doc/[output_dir]

If GhostWriter.github_base_url is set, link index is based on the url, like output_examples

And set environment variable GENERATE_API_DOC or GhostWriter.output_flag true at runtime. If you don't set, this gem doesn't generate docs.

ghost_writer command set GhostWriter.output_flag true automatically.

Output Example

Please look at output_examples

License

MIT

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request