rspec-illustrate 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d870dec93914bb6ba39750aec5ee4d761ddaf57a
4
+ data.tar.gz: 00f1fd8e6e03a31c48d0d93ecf0d86e0fa94ab6f
5
+ SHA512:
6
+ metadata.gz: d3af7d4a069a34fdf20488e10ef6d8996e71aeeb0c2fecb8d3e718580d05dc55d41e1b71999ede0e109580f543a6b7fe03fc1a250eb16def5d69ca9dc3fb7ae4
7
+ data.tar.gz: 4e226af173505d8fdb5fde8eddb74bb6da99fc842382205495221f77f20b9519d661b57fb3cb65551991f9ae127988f43cf182e147e9c60fff0d27c9e4285dec
data/README.md CHANGED
@@ -68,14 +68,55 @@ Array
68
68
  [1, 2, 3]
69
69
  ```
70
70
 
71
+ ## Import test results and illustrations into YARD
72
+
73
+ RSpec-Illustrate comes with a template for YARD and an RSpec formatter that
74
+ outputs a specific HTML format that the template can import.
75
+
76
+ To create the test report you have to execute RSpec with the specific formatter.
77
+ You need to add the following to your `Rakefile`:
78
+ ```ruby
79
+ require "rspec/core/rake_task"
80
+ RSpec::Core::RakeTask.new(:spec) do |t|
81
+ t.rspec_opts = "--format RSpec::Formatters::YARD --out ./doc/api.rspec"
82
+ end
83
+ ```
84
+
85
+ Keep in mind that the file must end with `.rspec` in order for the template to
86
+ understand it's an RSpec output file. You load the template by invoking `require
87
+ rspec/illustrate/yard` and you import it by giving it to YARD as a normal input
88
+ file. Add the following to your `Rakefile`:
89
+
90
+ ```ruby
91
+ require 'yard'
92
+ require 'rspec/illustrate/yard'
93
+ YARD::Rake::YardocTask.new(:doc) do |t|
94
+ t.files = ['lib/**/*.rb', 'doc/api.rspec']
95
+ end
96
+ task :doc => [:spec]
97
+ ```
98
+
99
+ You can also include it as an extra file if you want to view it as a complete
100
+ test report (it is HTML after all). Simply add it to the list of extra files by
101
+ adding it after the `-` sign:
102
+
103
+ ```ruby
104
+ require 'yard'
105
+ require 'rspec/illustrate/yard'
106
+ YARD::Rake::YardocTask.new(:doc) do |t|
107
+ t.files = ['lib/**/*.rb', 'doc/api.rspec', '-', 'doc/api.rspec']
108
+ end
109
+ task :doc => [:spec]
110
+ ```
111
+
71
112
 
72
113
  ## Development
73
114
 
74
115
  After checking out the repo, run `bin/setup` to install dependencies.
75
116
 
76
- To install this gem onto your local machine, run `bundle exec rake install`. To
77
- release a new version, update the version number in `version.rb`, and then run
78
- `bundle exec rake release` to create a git tag for the version, push git commits
117
+ To install this gem onto your local machine, run `rake install`. To release a
118
+ new version, update the version number in `version.rb`, and then run `rake
119
+ release` to create a git tag for the version, push git commits
79
120
  and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
80
121
 
81
122
  ## Contributing
data/Rakefile CHANGED
@@ -1,15 +1,25 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/clean'
2
3
  Bundler.setup
3
4
  Bundler::GemHelper.install_tasks
4
5
 
5
6
  require "rspec/core/rake_task"
7
+ desc "Execute RSpec and create a test report at ./doc/api.rspec."
6
8
  RSpec::Core::RakeTask.new(:spec) do |t|
7
- t.rspec_opts = "--format RSpec::Formatters::IllustratedDocumentationFormatter"
9
+ t.rspec_opts = "--format RSpec::Formatters::YARD --out ./doc/api.rspec"
8
10
  end
9
11
 
10
- RSpec::Core::RakeTask.new(:html) do |t|
11
- t.rspec_opts = "--format RSpec::Formatters::IllustratedHtmlFormatter --out ./doc/specs.html"
12
+ require 'yard'
13
+ require 'rspec/illustrate/yard'
14
+ desc "Create documentation."
15
+ YARD::Rake::YardocTask.new(:doc) do |t|
16
+ t.files = ['lib/**/*.rb', 'doc/api.rspec', '-', 'doc/api.rspec']
12
17
  end
18
+ CLEAN.include("doc")
19
+ CLEAN.include(".yardoc")
20
+ task :doc => [:spec]
13
21
 
14
- task :test => :spec
15
- task :default => :spec
22
+ desc "Execute tests."
23
+ RSpec::Core::RakeTask.new(:test)
24
+
25
+ task :default => :test
@@ -16,7 +16,7 @@ RSpec.configure do |c|
16
16
  label = illustration.has_key?(:label) ?
17
17
  "--- #{illustration[:label].to_s} ---\n" : ""
18
18
 
19
- return label << illustration[:content].to_s
19
+ return label << illustration[:text].to_s
20
20
  })
21
21
  end
22
22
 
@@ -10,11 +10,10 @@ RSpec.configure do |c|
10
10
  html << "<span>#{illustration[:label].to_s}</span>"
11
11
  end
12
12
 
13
- content = illustration[:content]
14
- if content.respond_to?(:to_html) then
15
- html << content.to_html
13
+ if illustration[:html] then
14
+ html << illustration[:html]
16
15
  else
17
- html << "<pre>#{content.to_s}</pre>"
16
+ html << "<pre>#{illustration[:text]}</pre>"
18
17
  end
19
18
 
20
19
  return html << "</dd>"
@@ -0,0 +1,153 @@
1
+ require 'rspec/formatters/illustration_formatter'
2
+ require 'rexml/document'
3
+
4
+ RSpec.configure do |c|
5
+ c.add_setting(:title, :default => "RSpec results")
6
+ end
7
+
8
+ module RSpec
9
+ module Formatters
10
+
11
+ # An RSpec output formatter that writes in a specific HTML format that can
12
+ # be imported by the YARD template. The output can also be viewed as a
13
+ # stand-alone test report.
14
+ class YARD
15
+ include RSpec::Formatters
16
+
17
+ # @return [String] the path to the CSS file in the YARD-template, which
18
+ # will be imported into the header so the output HTML can
19
+ # be viewed as a stand-alone document.
20
+ CSS_FILE = File.join(File.dirname(__FILE__), '..','..','..',
21
+ 'yard-template', 'default', 'fulldoc', 'html', 'css', 'rspec.css')
22
+
23
+ RSpec::Core::Formatters.register self, :example_passed, :example_pending,
24
+ :example_failed, :stop
25
+
26
+ def initialize(output)
27
+ @output = output
28
+ @document = REXML::Document.new("<!DOCTYPE html>")
29
+
30
+ html = @document.add_element("html")
31
+ head = html.add_element("head")
32
+ head.add_element("style").text = IO.read(CSS_FILE)
33
+ @body = html.add_element("body")
34
+ end
35
+
36
+ # Called by RSpec for each example that passes.
37
+ # @param passed [RSpec::Core::Notifications::ExampleNotification]
38
+ def example_passed(passed)
39
+ node = xml_node_for_notification(passed, :show_when_passed)
40
+ node.attributes["class"] = "rspec_example_passed"
41
+ end
42
+
43
+ # Called by RSpec for each example that is pending.
44
+ # @param pending [RSpec::Core::Notifications::ExampleNotification]
45
+ def example_pending(pending)
46
+ node = xml_node_for_notification(pending, :show_when_pending)
47
+ node.attributes["class"] = "rspec_example_pending"
48
+ end
49
+
50
+ # Called by RSpec for each example that failes.
51
+ # @param failure [RSpec::Core::Notifications::FailedExampleNotification]
52
+ def example_failed(failure)
53
+ node = xml_node_for_notification(failure, :show_when_pending)
54
+ node.attributes["class"] = "rspec_example_failed"
55
+ node.add_element("exception").text = failure.exception.message
56
+ node.add_element("backtrace").text = failure.formatted_backtrace.join("\n")
57
+ end
58
+
59
+ # Called by RSpec when the test suite is complete.
60
+ # @param notification [RSpec::Core::Notifications::ExamplesNotification]
61
+ def stop(notification)
62
+ @document.elements["html/head"].add_element("title").text =
63
+ RSpec.configuration.title
64
+ @document.write @output
65
+ end
66
+
67
+ private
68
+
69
+ # @param notification[RSpec::Core::Notifications:ExampleNotification]
70
+ # @return [REXML::Element] a new XML node that corresponds to the specific example.
71
+ def xml_node_for_notification(notification, filter_key)
72
+ example = notification.example
73
+ node = xml_node_for_example_group(example.example_group).add_element("div")
74
+ node.add_element("p", {'class'=>'rspec_example_paragraph'}).text = example.description
75
+
76
+ filter(illustrations_of(notification), filter_key).each{|illustration|
77
+ node.add_element(node_for_illustration(illustration))
78
+ }
79
+
80
+ node
81
+ end
82
+
83
+ # Creates a <div> node for the given illustration.
84
+ # @param illustration [Hash] the illustration.
85
+ # @return [REXML::Element] the XML node for the illustration.
86
+ def node_for_illustration(illustration)
87
+ node = REXML::Element.new("div")
88
+ node.add_attribute('class', 'rspec_illustration')
89
+
90
+ if label = illustration[:label] then
91
+ node.add_element("p", {'class'=>'rspec_illustration_label'}).text = label
92
+ end
93
+
94
+ if illustration.has_key?(:html) then
95
+ node.add_element(REXML::Text.new(illustration[:html], true, nil, true))
96
+ else
97
+ node.add_element("pre", {'class'=>'rspec_illustration_content'}).text =
98
+ REXML::Text.new(illustration[:text], true, nil, true)
99
+ end
100
+
101
+ node
102
+ end
103
+
104
+ # @param example_group [RSpec::Core::ExampleGroup]
105
+ # @return [REXML::Element] the XML node that corresponds to the specific example group,
106
+ # which will be created if it doesn't exist.
107
+ def xml_node_for_example_group(example_group)
108
+ node = @body
109
+
110
+ path = example_group.parent_groups.reverse
111
+ if example_group.described_class then
112
+ path = path.drop_while{|group|
113
+ group.described_class != example_group.described_class
114
+ }
115
+
116
+ # use the class/module description as the YARD specific CodeObject id
117
+ codeobject_id = path.shift.description
118
+
119
+ # merge root with first element if it is a method.
120
+ if path.size >= 1 && (path.first.description.start_with?('#') ||
121
+ path.first.description.start_with?('.')) then
122
+ codeobject_id = "#{codeobject_id}#{path.shift.description}"
123
+ end
124
+
125
+ # create first node with YARD-specific 'CodeObject' path as id.
126
+ node = xml_child_node_for_group(codeobject_id, codeobject_id, @body)
127
+ end
128
+
129
+ path.inject(node){|node, group|
130
+ xml_child_node_for_group(group.name, group.description, node)
131
+ }
132
+ end
133
+
134
+
135
+ # @param id [String] the id of the node.
136
+ # @param caption [String] the description of the node.
137
+ # @param parent [REXML::Element] the parent node to search within.
138
+ # @return [REXML::Element] the xml child node with the id and caption, which will be
139
+ # created if it doesn't exist.
140
+ def xml_child_node_for_group(id, caption, parent=@body)
141
+ child_node = parent.elements["div[@id='rspec_#{id}']"]
142
+ return child_node.elements["div[@class='rspec_example_group_children']"] if child_node
143
+
144
+ child_node = parent.add_element "div", {'id' => "rspec_#{id}",
145
+ 'class'=>"rspec_example_group"}
146
+ child_node.add_element("div", {'class'=>'rspec_example_group_title'}).text = caption
147
+ child_node.add_element("div", {'class'=>'rspec_example_group_children'})
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+ end
@@ -1,6 +1,6 @@
1
1
  module RSpec
2
2
  module Illustrate
3
3
  # The version used by gemspec
4
- VERSION = "0.1.3"
4
+ VERSION = "0.2.0"
5
5
  end
6
6
  end
@@ -0,0 +1,55 @@
1
+
2
+ # Register the template
3
+ YARD::Templates::Engine.register_template_path File.join(File.dirname(__FILE__), '..', '..', '..', 'yard-template')
4
+ # Make sure *.rspec files are treated as HTML files if they are included as
5
+ # extra files (like test reports and such).
6
+ YARD::Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS[:html] << "rspec"
7
+
8
+ require 'rspec/illustrate/version'
9
+ require 'rexml/document'
10
+
11
+ module YARD
12
+ module Parser
13
+ # Parses the output from the RSpec::Illustrate::YARD formatter (which is valid
14
+ # html) and inserts the nodes into the corresponding CodeObject.
15
+ class RSpecParser < YARD::Parser::Base
16
+
17
+ def initialize(source, filename)
18
+ @source = source
19
+ end
20
+
21
+ # @see YARD::Parser::Base#parse
22
+ def parse
23
+ document = REXML::Document.new(@source)
24
+ document.elements.each("html/body/div") {|element|
25
+ if (path = element.attributes["id"].sub(/^rspec_/, '')) then
26
+ if codeobject = YARD::Registry.at(path) then
27
+ # only grab the <div> that contains the child elements, and omit
28
+ # caption since we already gave a Specification header.
29
+ examples = element.elements["div[@class='rspec_example_group_children']"]
30
+ (codeobject[:rspec] ||= []).concat(examples.to_a)
31
+ else
32
+ log.warn "Could not find code object for #{path}, adding it to top level namespace."
33
+ (YARD::Registry.root[:rspec] ||= []).concat(element.to_a)
34
+ end
35
+ end
36
+ }
37
+ self
38
+ end
39
+
40
+ # @see YARD::Parser::Base#tokenize
41
+ def tokenize
42
+ []
43
+ end
44
+
45
+ # @see YARD::Parser::Base#enumerator
46
+ def enumerator
47
+ nil
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ # Register the parser so YARD knows how to handle *.rspec files.
54
+ YARD::Parser::SourceParser.register_parser_type(:rspec_parser, YARD::Parser::RSpecParser, 'rspec')
55
+
@@ -12,7 +12,7 @@ module RSpec
12
12
  # @param args [Array<Hash, Symbol>] Additional options.
13
13
  # @return The given illustration object.
14
14
  def illustrate(content, *args)
15
- illustration = { :content => content,
15
+ illustration = { :text => content,
16
16
  :show_when_passed => true,
17
17
  :show_when_failed => true,
18
18
  :show_when_pending => true }
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["erik@erisc.se"]
11
11
 
12
12
  spec.summary = %q{RSpec extension gem for including illustrative objects in your specs.}
13
- spec.description = %q{A plugin to RSpec that allows you to define illustrative objects in your examples that will be forwarded to the output formatter. This will allow your output spec to become more readable, illustrative, and explanatory.}
13
+ spec.description = %q{A plugin to RSpec and YARD that allows you to define illustrative objects in your examples that will be forwarded to the output formatter. The results can be imported into YARD, which makes your generated specs and documentation more readable, illustrative, and explanatory.}
14
14
  spec.homepage = "https://github.com/ErikSchlyter/rspec-illustrate"
15
15
  spec.license = "MIT"
16
16
 
@@ -18,8 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.required_ruby_version = '>= 1.9.3'
21
- spec.add_dependency 'rspec-core', '~> 3.2.1'
22
- spec.add_dependency 'rspec-expectations', '~> 3.2.0'
21
+ spec.add_dependency 'rspec-core', '~> 3.2'
22
+ spec.add_dependency 'rspec-expectations', '~> 3.2'
23
23
  spec.add_development_dependency "bundler", "~> 1.8"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "yard", "~> 0.8"
26
+ spec.add_development_dependency "redcarpet", "~> 3.2"
25
27
  end
@@ -0,0 +1,50 @@
1
+ .rspec_example_group {
2
+ }
3
+
4
+ .rspec_example_group_title {
5
+ padding: 0px 0px 3px 7px;
6
+ margin: 3px 0px 3px 0px;
7
+ }
8
+
9
+ .rspec_example_group_children {
10
+ padding: 0px 0px 0px 0px;
11
+ margin: 3px 0px 10px 20px;
12
+ border-left: lightgrey dotted 1px;
13
+ }
14
+
15
+ .rspec_example_passed, .rspec_example_failed, .rspec_example_pending {
16
+ padding: 2px 0px 2px 7px;
17
+ margin: 0px 0px 1px 0px;
18
+ }
19
+
20
+ .rspec_example_passed {
21
+ background-color:#E0FFE0;
22
+ }
23
+
24
+ .rspec_example_pending {
25
+ background-color:#FFFFE0;
26
+ }
27
+
28
+ .rspec_example_failed {
29
+ background-color:#FFA0A0;
30
+ }
31
+
32
+ .rspec_example_paragraph {
33
+ margin:0;
34
+ }
35
+
36
+ .rspec_illustration {
37
+ margin: 10px 0px 0px 24px;
38
+ }
39
+
40
+ .rspec_illustration_label {
41
+ font-style: italic;
42
+ margin: 0px 0px 0px 0px;
43
+ }
44
+
45
+ .rspec_illustration_content {
46
+ margin: 7px 7px 7px 0px;
47
+ padding: 4px;
48
+ background-color: rgba(255, 255, 255, 0.5);
49
+ border: rgba(0, 0, 0, 0.1) solid 1px;
50
+ }
@@ -0,0 +1,15 @@
1
+ def init
2
+ options.files.each{|file|
3
+ if file.filename.end_with?('.rspec') then
4
+ document = REXML::Document.new(File.new(file.filename))
5
+
6
+ if title = document.elements["html/head/title"] then
7
+ file.attributes[:title] = title.text
8
+ end
9
+ if body = document.elements["html/body"] then
10
+ file.contents = body.to_s
11
+ end
12
+ end
13
+ }
14
+ super
15
+ end
@@ -0,0 +1,8 @@
1
+ <div id="footer">
2
+ Generated on <%= Time.now.strftime("%c") %> by
3
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
4
+ <%= YARD::VERSION %>, using
5
+ <a href="https://github.com/ErikSchlyter/rspec-illustrate" target="_parent">rspec-illustrate</a>
6
+ <%= RSpec::Illustrate::VERSION %>
7
+ (ruby-<%= RUBY_VERSION %>).
8
+ </div>
@@ -0,0 +1,5 @@
1
+
2
+ def stylesheets
3
+ super + %w(css/rspec.css)
4
+ end
5
+
@@ -0,0 +1,6 @@
1
+ def init
2
+ super
3
+ sections.last.place(:specs).before(:source)
4
+ end
5
+
6
+
@@ -0,0 +1,6 @@
1
+ <% if object[:rspec] && !object[:rspec].empty? %>
2
+ <div class="tags">
3
+ <p class="tag_title">Specifications:</p>
4
+ <%= object[:rspec].collect{|example| example.to_s}.join %>
5
+ </div>
6
+ <% end %>
@@ -0,0 +1,4 @@
1
+ def init
2
+ super
3
+ sections.place(:specs).after(:children)
4
+ end
@@ -0,0 +1,4 @@
1
+ <% if object[:rspec] && !object[:rspec].empty? %>
2
+ <h2>Specifications</h2>
3
+ <%= object[:rspec].collect{|example| example.to_s}.join %>
4
+ <% end %>
metadata CHANGED
@@ -1,90 +1,110 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-illustrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Erik Schlyter
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-03-30 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec-core
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 3.2.1
19
+ version: '3.2'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 3.2.1
26
+ version: '3.2'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec-expectations
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 3.2.0
33
+ version: '3.2'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: 3.2.0
40
+ version: '3.2'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bundler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: '1.8'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: '1.8'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: '10.0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: '10.0'
78
- description: A plugin to RSpec that allows you to define illustrative objects in your
79
- examples that will be forwarded to the output formatter. This will allow your output
80
- spec to become more readable, illustrative, and explanatory.
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.8'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.8'
83
+ - !ruby/object:Gem::Dependency
84
+ name: redcarpet
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.2'
97
+ description: A plugin to RSpec and YARD that allows you to define illustrative objects
98
+ in your examples that will be forwarded to the output formatter. The results can
99
+ be imported into YARD, which makes your generated specs and documentation more readable,
100
+ illustrative, and explanatory.
81
101
  email:
82
102
  - erik@erisc.se
83
103
  executables: []
84
104
  extensions: []
85
105
  extra_rdoc_files: []
86
106
  files:
87
- - .gitignore
107
+ - ".gitignore"
88
108
  - Gemfile
89
109
  - LICENSE.txt
90
110
  - README.md
@@ -94,35 +114,42 @@ files:
94
114
  - lib/rspec/formatters/illustrated_html_formatter.rb
95
115
  - lib/rspec/formatters/illustrated_json_formatter.rb
96
116
  - lib/rspec/formatters/illustration_formatter.rb
117
+ - lib/rspec/formatters/yard.rb
97
118
  - lib/rspec/illustrate.rb
98
119
  - lib/rspec/illustrate/version.rb
120
+ - lib/rspec/illustrate/yard.rb
99
121
  - rspec-illustrate.gemspec
122
+ - yard-template/default/fulldoc/html/css/rspec.css
123
+ - yard-template/default/fulldoc/html/setup.rb
124
+ - yard-template/default/layout/html/footer.erb
125
+ - yard-template/default/layout/html/setup.rb
126
+ - yard-template/default/method_details/html/setup.rb
127
+ - yard-template/default/method_details/html/specs.erb
128
+ - yard-template/default/module/html/setup.rb
129
+ - yard-template/default/module/html/specs.erb
100
130
  homepage: https://github.com/ErikSchlyter/rspec-illustrate
101
131
  licenses:
102
132
  - MIT
133
+ metadata: {}
103
134
  post_install_message:
104
135
  rdoc_options: []
105
136
  require_paths:
106
137
  - lib
107
138
  required_ruby_version: !ruby/object:Gem::Requirement
108
- none: false
109
139
  requirements:
110
- - - ! '>='
140
+ - - ">="
111
141
  - !ruby/object:Gem::Version
112
142
  version: 1.9.3
113
143
  required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
144
  requirements:
116
- - - ! '>='
145
+ - - ">="
117
146
  - !ruby/object:Gem::Version
118
147
  version: '0'
119
- segments:
120
- - 0
121
- hash: 3602209029501457242
122
148
  requirements: []
123
149
  rubyforge_project:
124
- rubygems_version: 1.8.23
150
+ rubygems_version: 2.2.2
125
151
  signing_key:
126
- specification_version: 3
152
+ specification_version: 4
127
153
  summary: RSpec extension gem for including illustrative objects in your specs.
128
154
  test_files: []
155
+ has_rdoc: