Skip to content

Commit e8263e4

Browse files
committed
Set up basic structure for Slate writer. [zipmark#275]
1 parent ad4ef4a commit e8263e4

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

lib/rspec_api_documentation.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ module Writers
4343
autoload :IndexHelper
4444
autoload :CombinedTextWriter
4545
autoload :CombinedJsonWriter
46+
autoload :SlateWriter
4647
end
4748

4849
module Views
@@ -56,6 +57,7 @@ module Views
5657
autoload :TextileExample
5758
autoload :MarkdownIndex
5859
autoload :MarkdownExample
60+
autoload :SlateExample
5961
end
6062

6163
def self.configuration
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module RspecApiDocumentation
2+
module Views
3+
class SlateExample < MarkdownExample
4+
def initialize(example, configuration)
5+
super
6+
self.template_name = "rspec_api_documentation/slate_example"
7+
end
8+
end
9+
end
10+
end
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module RspecApiDocumentation
2+
module Writers
3+
class SlateWriter < MarkdownWriter
4+
def markup_example_class
5+
RspecApiDocumentation::Views::SlateExample
6+
end
7+
end
8+
end
9+
end

spec/writers/slate_writer_spec.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -*- coding: utf-8 -*-
2+
require 'spec_helper'
3+
4+
describe RspecApiDocumentation::Writers::SlateWriter do
5+
let(:index) { RspecApiDocumentation::Index.new }
6+
let(:configuration) { RspecApiDocumentation::Configuration.new }
7+
8+
describe ".write" do
9+
let(:writer) { double(:writer) }
10+
11+
it "should build a new writer and write the docs" do
12+
allow(described_class).to receive(:new).with(index, configuration).and_return(writer)
13+
expect(writer).to receive(:write)
14+
described_class.write(index, configuration)
15+
end
16+
end
17+
18+
context 'instance methods' do
19+
let(:writer) { described_class.new(index, configuration) }
20+
21+
describe '#markup_example_class' do
22+
subject { writer.markup_example_class }
23+
it { is_expected.to be == RspecApiDocumentation::Views::SlateExample }
24+
end
25+
26+
describe "#write" do
27+
before do
28+
template_dir = File.join(configuration.template_path, "rspec_api_documentation")
29+
FileUtils.mkdir_p(template_dir)
30+
File.open(File.join(template_dir, "markdown_index.mustache"), "w+") { |f| f << "{{ mustache }}" }
31+
FileUtils.mkdir_p(configuration.docs_dir)
32+
end
33+
34+
it "should write the index" do
35+
writer.write
36+
index_file = File.join(configuration.docs_dir, "index.markdown")
37+
expect(File.exists?(index_file)).to be_truthy
38+
end
39+
end
40+
end
41+
end

0 commit comments

Comments
 (0)