raddocs 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,325 @@
1
+ CodeMirror.defineMode("xml", function(config, parserConfig) {
2
+ var indentUnit = config.indentUnit;
3
+ var Kludges = parserConfig.htmlMode ? {
4
+ autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
5
+ 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
6
+ 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
7
+ 'track': true, 'wbr': true},
8
+ implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
9
+ 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
10
+ 'th': true, 'tr': true},
11
+ contextGrabbers: {
12
+ 'dd': {'dd': true, 'dt': true},
13
+ 'dt': {'dd': true, 'dt': true},
14
+ 'li': {'li': true},
15
+ 'option': {'option': true, 'optgroup': true},
16
+ 'optgroup': {'optgroup': true},
17
+ 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
18
+ 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
19
+ 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
20
+ 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
21
+ 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
22
+ 'rp': {'rp': true, 'rt': true},
23
+ 'rt': {'rp': true, 'rt': true},
24
+ 'tbody': {'tbody': true, 'tfoot': true},
25
+ 'td': {'td': true, 'th': true},
26
+ 'tfoot': {'tbody': true},
27
+ 'th': {'td': true, 'th': true},
28
+ 'thead': {'tbody': true, 'tfoot': true},
29
+ 'tr': {'tr': true}
30
+ },
31
+ doNotIndent: {"pre": true},
32
+ allowUnquoted: true,
33
+ allowMissing: false
34
+ } : {
35
+ autoSelfClosers: {},
36
+ implicitlyClosed: {},
37
+ contextGrabbers: {},
38
+ doNotIndent: {},
39
+ allowUnquoted: false,
40
+ allowMissing: false
41
+ };
42
+ var alignCDATA = parserConfig.alignCDATA;
43
+
44
+ // Return variables for tokenizers
45
+ var tagName, type;
46
+
47
+ function inText(stream, state) {
48
+ function chain(parser) {
49
+ state.tokenize = parser;
50
+ return parser(stream, state);
51
+ }
52
+
53
+ var ch = stream.next();
54
+ if (ch == "<") {
55
+ if (stream.eat("!")) {
56
+ if (stream.eat("[")) {
57
+ if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
58
+ else return null;
59
+ }
60
+ else if (stream.match("--")) return chain(inBlock("comment", "-->"));
61
+ else if (stream.match("DOCTYPE", true, true)) {
62
+ stream.eatWhile(/[\w\._\-]/);
63
+ return chain(doctype(1));
64
+ }
65
+ else return null;
66
+ }
67
+ else if (stream.eat("?")) {
68
+ stream.eatWhile(/[\w\._\-]/);
69
+ state.tokenize = inBlock("meta", "?>");
70
+ return "meta";
71
+ }
72
+ else {
73
+ type = stream.eat("/") ? "closeTag" : "openTag";
74
+ stream.eatSpace();
75
+ tagName = "";
76
+ var c;
77
+ while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;
78
+ state.tokenize = inTag;
79
+ return "tag";
80
+ }
81
+ }
82
+ else if (ch == "&") {
83
+ var ok;
84
+ if (stream.eat("#")) {
85
+ if (stream.eat("x")) {
86
+ ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
87
+ } else {
88
+ ok = stream.eatWhile(/[\d]/) && stream.eat(";");
89
+ }
90
+ } else {
91
+ ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
92
+ }
93
+ return ok ? "atom" : "error";
94
+ }
95
+ else {
96
+ stream.eatWhile(/[^&<]/);
97
+ return null;
98
+ }
99
+ }
100
+
101
+ function inTag(stream, state) {
102
+ var ch = stream.next();
103
+ if (ch == ">" || (ch == "/" && stream.eat(">"))) {
104
+ state.tokenize = inText;
105
+ type = ch == ">" ? "endTag" : "selfcloseTag";
106
+ return "tag";
107
+ }
108
+ else if (ch == "=") {
109
+ type = "equals";
110
+ return null;
111
+ }
112
+ else if (/[\'\"]/.test(ch)) {
113
+ state.tokenize = inAttribute(ch);
114
+ return state.tokenize(stream, state);
115
+ }
116
+ else {
117
+ stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);
118
+ return "word";
119
+ }
120
+ }
121
+
122
+ function inAttribute(quote) {
123
+ return function(stream, state) {
124
+ while (!stream.eol()) {
125
+ if (stream.next() == quote) {
126
+ state.tokenize = inTag;
127
+ break;
128
+ }
129
+ }
130
+ return "string";
131
+ };
132
+ }
133
+
134
+ function inBlock(style, terminator) {
135
+ return function(stream, state) {
136
+ while (!stream.eol()) {
137
+ if (stream.match(terminator)) {
138
+ state.tokenize = inText;
139
+ break;
140
+ }
141
+ stream.next();
142
+ }
143
+ return style;
144
+ };
145
+ }
146
+ function doctype(depth) {
147
+ return function(stream, state) {
148
+ var ch;
149
+ while ((ch = stream.next()) != null) {
150
+ if (ch == "<") {
151
+ state.tokenize = doctype(depth + 1);
152
+ return state.tokenize(stream, state);
153
+ } else if (ch == ">") {
154
+ if (depth == 1) {
155
+ state.tokenize = inText;
156
+ break;
157
+ } else {
158
+ state.tokenize = doctype(depth - 1);
159
+ return state.tokenize(stream, state);
160
+ }
161
+ }
162
+ }
163
+ return "meta";
164
+ };
165
+ }
166
+
167
+ var curState, setStyle;
168
+ function pass() {
169
+ for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);
170
+ }
171
+ function cont() {
172
+ pass.apply(null, arguments);
173
+ return true;
174
+ }
175
+
176
+ function pushContext(tagName, startOfLine) {
177
+ var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent);
178
+ curState.context = {
179
+ prev: curState.context,
180
+ tagName: tagName,
181
+ indent: curState.indented,
182
+ startOfLine: startOfLine,
183
+ noIndent: noIndent
184
+ };
185
+ }
186
+ function popContext() {
187
+ if (curState.context) curState.context = curState.context.prev;
188
+ }
189
+
190
+ function element(type) {
191
+ if (type == "openTag") {
192
+ curState.tagName = tagName;
193
+ return cont(attributes, endtag(curState.startOfLine));
194
+ } else if (type == "closeTag") {
195
+ var err = false;
196
+ if (curState.context) {
197
+ if (curState.context.tagName != tagName) {
198
+ if (Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())) {
199
+ popContext();
200
+ }
201
+ err = !curState.context || curState.context.tagName != tagName;
202
+ }
203
+ } else {
204
+ err = true;
205
+ }
206
+ if (err) setStyle = "error";
207
+ return cont(endclosetag(err));
208
+ }
209
+ return cont();
210
+ }
211
+ function endtag(startOfLine) {
212
+ return function(type) {
213
+ if (type == "selfcloseTag" ||
214
+ (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(curState.tagName.toLowerCase()))) {
215
+ maybePopContext(curState.tagName.toLowerCase());
216
+ return cont();
217
+ }
218
+ if (type == "endTag") {
219
+ maybePopContext(curState.tagName.toLowerCase());
220
+ pushContext(curState.tagName, startOfLine);
221
+ return cont();
222
+ }
223
+ return cont();
224
+ };
225
+ }
226
+ function endclosetag(err) {
227
+ return function(type) {
228
+ if (err) setStyle = "error";
229
+ if (type == "endTag") { popContext(); return cont(); }
230
+ setStyle = "error";
231
+ return cont(arguments.callee);
232
+ }
233
+ }
234
+ function maybePopContext(nextTagName) {
235
+ var parentTagName;
236
+ while (true) {
237
+ if (!curState.context) {
238
+ return;
239
+ }
240
+ parentTagName = curState.context.tagName.toLowerCase();
241
+ if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) ||
242
+ !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
243
+ return;
244
+ }
245
+ popContext();
246
+ }
247
+ }
248
+
249
+ function attributes(type) {
250
+ if (type == "word") {setStyle = "attribute"; return cont(attribute, attributes);}
251
+ if (type == "endTag" || type == "selfcloseTag") return pass();
252
+ setStyle = "error";
253
+ return cont(attributes);
254
+ }
255
+ function attribute(type) {
256
+ if (type == "equals") return cont(attvalue, attributes);
257
+ if (!Kludges.allowMissing) setStyle = "error";
258
+ return (type == "endTag" || type == "selfcloseTag") ? pass() : cont();
259
+ }
260
+ function attvalue(type) {
261
+ if (type == "string") return cont(attvaluemaybe);
262
+ if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();}
263
+ setStyle = "error";
264
+ return (type == "endTag" || type == "selfCloseTag") ? pass() : cont();
265
+ }
266
+ function attvaluemaybe(type) {
267
+ if (type == "string") return cont(attvaluemaybe);
268
+ else return pass();
269
+ }
270
+
271
+ return {
272
+ startState: function() {
273
+ return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, context: null};
274
+ },
275
+
276
+ token: function(stream, state) {
277
+ if (stream.sol()) {
278
+ state.startOfLine = true;
279
+ state.indented = stream.indentation();
280
+ }
281
+ if (stream.eatSpace()) return null;
282
+
283
+ setStyle = type = tagName = null;
284
+ var style = state.tokenize(stream, state);
285
+ state.type = type;
286
+ if ((style || type) && style != "comment") {
287
+ curState = state;
288
+ while (true) {
289
+ var comb = state.cc.pop() || element;
290
+ if (comb(type || style)) break;
291
+ }
292
+ }
293
+ state.startOfLine = false;
294
+ return setStyle || style;
295
+ },
296
+
297
+ indent: function(state, textAfter, fullLine) {
298
+ var context = state.context;
299
+ if ((state.tokenize != inTag && state.tokenize != inText) ||
300
+ context && context.noIndent)
301
+ return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
302
+ if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
303
+ if (context && /^<\//.test(textAfter))
304
+ context = context.prev;
305
+ while (context && !context.startOfLine)
306
+ context = context.prev;
307
+ if (context) return context.indent + indentUnit;
308
+ else return 0;
309
+ },
310
+
311
+ compareStates: function(a, b) {
312
+ if (a.indented != b.indented || a.tokenize != b.tokenize) return false;
313
+ for (var ca = a.context, cb = b.context; ; ca = ca.prev, cb = cb.prev) {
314
+ if (!ca || !cb) return ca == cb;
315
+ if (ca.tagName != cb.tagName) return false;
316
+ }
317
+ },
318
+
319
+ electricChars: "/"
320
+ };
321
+ });
322
+
323
+ CodeMirror.defineMIME("application/xml", "xml");
324
+ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
325
+ CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
@@ -1,3 +1,29 @@
1
+ :javascript
2
+ function mirror(textarea, contentType, options) {
3
+ $textarea = $(textarea);
4
+ if ($textarea.val() != '') {
5
+ if(contentType.indexOf('json') >= 0) {
6
+ $textarea.val(JSON.stringify(JSON.parse($textarea.val()), undefined, 2));
7
+ options.json = true;
8
+ options.mode = 'javascript';
9
+ } else if (contentType.indexOf('javascript') >= 0) {
10
+ options.mode = 'javascript';
11
+ } else if (contentType.indexOf('xml') >= 0) {
12
+ options.mode = 'xml';
13
+ } else {
14
+ options.mode = 'htmlmixed';
15
+ }
16
+ }
17
+ return CodeMirror.fromTextArea(textarea, options);
18
+ };
19
+
20
+ $(function(){
21
+ $(".request .body .content").each(function(i, el) {
22
+ el = $(el);
23
+ mirror(el.find("textarea")[0], el.data("content-type"), { "readOnly": true, "lineNumbers": true });
24
+ });
25
+ });
26
+
1
27
  %h1== #{example["resource"]} API
2
28
  .article
3
29
  %h2= example["description"]
@@ -27,7 +53,14 @@
27
53
 
28
54
  %section.headers
29
55
  %h4 Headers
30
- %pre.headers= request["request_headers"]
56
+ %pre.headers
57
+ :ruby
58
+ # There are unwanted indents if this was a simple each and output in haml
59
+ headers = request["request_headers"].map do |header, value|
60
+ "#{header}: #{value}"
61
+ end
62
+ :preserve
63
+ #{headers.join("\n")}
31
64
 
32
65
  %section.route
33
66
  %h4 Route
@@ -41,9 +74,10 @@
41
74
  - if request["request_body"]
42
75
  %section.body
43
76
  %h4 Body
44
- .body
45
- :preserve
46
- #{request["request_body"]}
77
+ .content{ "data-content-type" => request["request_content_type"] }
78
+ %textarea
79
+ :preserve
80
+ #{request["request_body"]}
47
81
 
48
82
  - if request["curl"]
49
83
  %section.curl
@@ -56,7 +90,14 @@
56
90
 
57
91
  %section.headers
58
92
  %h4 Headers
59
- %pre.headers= request["response_headers"]
93
+ %pre.headers
94
+ :ruby
95
+ # There are unwanted indents if this was a simple each and output in haml
96
+ headers = request["response_headers"].map do |header, value|
97
+ "#{header}: #{value}"
98
+ end
99
+ :preserve
100
+ #{headers.join("\n")}
60
101
 
61
102
  %section.status
62
103
  %h4 Status
@@ -65,6 +106,7 @@
65
106
  - if request["response_body"]
66
107
  %section.body
67
108
  %h4 Body
68
- .body
69
- :preserve
70
- #{request["response_body"]}
109
+ .content{ "data-content-type" => request["response_content_type"] }
110
+ %textarea
111
+ :preserve
112
+ #{request["response_body"]}
@@ -3,6 +3,14 @@
3
3
  %head
4
4
  %title Raddocs
5
5
  %link{:rel => "stylesheet", :href => "#{url_location}/bootstrap.min.css"}
6
+ %link{:rel => "stylesheet", :href => "#{url_location}/codemirror.css"}
7
+ %link{:rel => "stylesheet", :href => "#{url_location}/application.css"}
8
+ %script(src="#{url_location}/js/jquery-1-7-2.js")
9
+ %script(src="#{url_location}/js/codemirror.js")
10
+ %script(src="#{url_location}/js/mode/css/css.js")
11
+ %script(src="#{url_location}/js/mode/htmlmixed/htmlmixed.js")
12
+ %script(src="#{url_location}/js/mode/javascript/javascript.js")
13
+ %script(src="#{url_location}/js/mode/xml/xml.js")
6
14
  :css
7
15
  td.required .name:after {
8
16
  float: right;
metadata CHANGED
@@ -1,136 +1,139 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: raddocs
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Eric Oestrich
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-06-01 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-06-02 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: sinatra
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: haml
32
- requirement: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
33
24
  none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
38
32
  type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: haml
39
36
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
37
+ requirement: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: json
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
54
46
  type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: json
55
50
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
51
+ requirement: &id003 !ruby/object:Gem::Requirement
57
52
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :runtime
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
64
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
65
+ requirement: &id004 !ruby/object:Gem::Requirement
73
66
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: rack-test
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
86
74
  type: :development
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: rack-test
87
78
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: capybara
96
- requirement: !ruby/object:Gem::Requirement
79
+ requirement: &id005 !ruby/object:Gem::Requirement
97
80
  none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
102
88
  type: :development
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: capybara
103
92
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: rake
112
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &id006 !ruby/object:Gem::Requirement
113
94
  none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
118
102
  type: :development
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
105
+ name: rake
119
106
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
107
+ requirement: &id007 !ruby/object:Gem::Requirement
121
108
  none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ hash: 3
113
+ segments:
114
+ - 0
115
+ version: "0"
116
+ type: :development
117
+ version_requirements: *id007
126
118
  description: Browse documentation generated by the rspec_api_documentation gem
127
- email:
119
+ email:
128
120
  - eric@oestrich.org
129
121
  executables: []
122
+
130
123
  extensions: []
124
+
131
125
  extra_rdoc_files: []
132
- files:
126
+
127
+ files:
128
+ - lib/public/application.css
133
129
  - lib/public/bootstrap.min.css
130
+ - lib/public/codemirror.css
131
+ - lib/public/js/codemirror.js
132
+ - lib/public/js/jquery-1-7-2.js
133
+ - lib/public/js/mode/css/css.js
134
+ - lib/public/js/mode/htmlmixed/htmlmixed.js
135
+ - lib/public/js/mode/javascript/javascript.js
136
+ - lib/public/js/mode/xml/xml.js
134
137
  - lib/raddocs/app.rb
135
138
  - lib/raddocs/configuration.rb
136
139
  - lib/raddocs/middleware.rb
@@ -140,26 +143,38 @@ files:
140
143
  - lib/views/layout.haml
141
144
  homepage: http://github.com/oestrich/raddocs
142
145
  licenses: []
146
+
143
147
  post_install_message:
144
148
  rdoc_options: []
145
- require_paths:
149
+
150
+ require_paths:
146
151
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
152
+ required_ruby_version: !ruby/object:Gem::Requirement
148
153
  none: false
149
- requirements:
150
- - - ! '>='
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
162
  none: false
155
- requirements:
156
- - - ! '>='
157
- - !ruby/object:Gem::Version
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ hash: 23
167
+ segments:
168
+ - 1
169
+ - 3
170
+ - 6
158
171
  version: 1.3.6
159
172
  requirements: []
173
+
160
174
  rubyforge_project:
161
- rubygems_version: 1.8.24
175
+ rubygems_version: 1.8.15
162
176
  signing_key:
163
177
  specification_version: 3
164
178
  summary: Browse documentation generated by the rspec_api_documentation gem
165
179
  test_files: []
180
+