mdl 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.md +45 -0
- data/README.md +1 -0
- data/docs/RULES.md +116 -6
- data/docs/configuration.md +16 -1
- data/docs/creating_rules.md +7 -0
- data/lib/mdl.rb +26 -9
- data/lib/mdl/cli.rb +60 -9
- data/lib/mdl/doc.rb +5 -1
- data/lib/mdl/rules.rb +80 -6
- data/lib/mdl/ruleset.rb +16 -7
- data/lib/mdl/style.rb +6 -0
- data/lib/mdl/styles/default.rb +2 -1
- data/lib/mdl/styles/relaxed.rb +1 -0
- data/lib/mdl/version.rb +1 -1
- data/mdl.gemspec +1 -1
- data/test/fixtures/default_mdlrc +1 -0
- data/test/fixtures/dir_with_md_and_markdown/bar.markdown +1 -0
- data/test/fixtures/dir_with_md_and_markdown/foo.md +1 -0
- data/test/fixtures/mdlrc_disable_rules +1 -0
- data/test/fixtures/mdlrc_disable_tags +1 -0
- data/test/fixtures/mdlrc_enable_rules +1 -0
- data/test/fixtures/mdlrc_enable_tags +1 -0
- data/test/fixtures/my_ruleset.rb +6 -0
- data/test/rule_tests/blockquote_spaces.md +6 -4
- data/test/rule_tests/bulleted_list_2_space_indent_style.rb +1 -0
- data/test/rule_tests/code_block_dollar_fence.md +29 -0
- data/test/rule_tests/default_test_style.rb +4 -0
- data/test/rule_tests/fenced_code_with_nesting.md +73 -0
- data/test/rule_tests/fenced_code_without_blank_lines_style.rb +1 -0
- data/test/rule_tests/first_line_top_level_header_atx.md +3 -0
- data/test/rule_tests/first_line_top_level_header_atx_style.rb +2 -0
- data/test/rule_tests/first_line_top_level_header_setext.md +4 -0
- data/test/rule_tests/first_line_top_level_header_setext_style.rb +2 -0
- data/test/rule_tests/headers_good_setext_with_atx.md +7 -0
- data/test/rule_tests/headers_good_setext_with_atx_style.rb +2 -0
- data/test/rule_tests/hr_style_dashes_style.rb +1 -0
- data/test/rule_tests/hr_style_long_style.rb +1 -0
- data/test/rule_tests/hr_style_stars_style.rb +1 -0
- data/test/rule_tests/incorrect_bullet_style_asterisk_style.rb +1 -0
- data/test/rule_tests/incorrect_bullet_style_dash_style.rb +1 -0
- data/test/rule_tests/incorrect_bullet_style_plus_style.rb +1 -0
- data/test/rule_tests/long_lines_100_style.rb +1 -0
- data/test/rule_tests/long_lines_code.md +38 -0
- data/test/rule_tests/long_lines_code_style.rb +3 -0
- data/test/rule_tests/no_first_line_header.md +1 -0
- data/test/rule_tests/no_first_line_header_style.rb +1 -0
- data/test/rule_tests/no_first_line_top_level_header.md +1 -0
- data/test/rule_tests/no_first_line_top_level_header_style.rb +1 -0
- data/test/rule_tests/ordered_list_item_prefix_ordered_style.rb +1 -0
- data/test/rule_tests/spaces_after_list_marker_style.rb +1 -0
- data/test/rule_tests/trailing_spaces_br_style.rb +1 -0
- data/test/test_cli.rb +205 -0
- data/test/test_ruledocs.rb +8 -1
- data/test/test_rules.rb +4 -2
- metadata +55 -7
data/test/test_ruledocs.rb
CHANGED
@@ -3,7 +3,9 @@ require_relative 'setup_tests'
|
|
3
3
|
# Ensures there is documentation for every rule, and that the
|
4
4
|
# descriptions/tags/etc in the rule match those in the documentation
|
5
5
|
class TestRuledocs < Minitest::Test
|
6
|
-
@@
|
6
|
+
@@ruleset = MarkdownLint::RuleSet.new
|
7
|
+
@@ruleset.load_default
|
8
|
+
@@rules = @@ruleset.rules
|
7
9
|
|
8
10
|
def setup
|
9
11
|
@ruledocs = load_ruledocs
|
@@ -19,6 +21,8 @@ class TestRuledocs < Minitest::Test
|
|
19
21
|
curr_rule = $1
|
20
22
|
elsif l.match(/^Tags: (.*)$/)
|
21
23
|
rules[curr_rule][:tags] = $1.split(',').map{|i| i.strip.to_sym}
|
24
|
+
elsif l.match(/^Aliases: (.*)$/)
|
25
|
+
rules[curr_rule][:aliases] = $1.split(',').map{|i| i.strip}
|
22
26
|
elsif l.match(/^Parameters: (.*)(\(.*\)?)$/)
|
23
27
|
rules[curr_rule][:params] = $1.split(',').map{|i| i.strip.to_sym}
|
24
28
|
end
|
@@ -33,6 +37,9 @@ class TestRuledocs < Minitest::Test
|
|
33
37
|
define_method("test_ruledoc_tags_#{id}") do
|
34
38
|
assert_equal r.tags, @ruledocs[id][:tags]
|
35
39
|
end
|
40
|
+
define_method("test_ruledoc_aliases_#{id}") do
|
41
|
+
assert_equal r.aliases, @ruledocs[id][:aliases]
|
42
|
+
end
|
36
43
|
define_method("test_ruledoc_params_#{id}") do
|
37
44
|
assert_equal r.params.keys.sort, (@ruledocs[id][:params] || []).sort
|
38
45
|
end
|
data/test/test_rules.rb
CHANGED
@@ -29,10 +29,12 @@ class TestRules < Minitest::Test
|
|
29
29
|
# Check for a test_case_style.rb style file for individual tests
|
30
30
|
style_file = filename.sub(/.md$/, '_style.rb')
|
31
31
|
if ! File.exist?(style_file)
|
32
|
-
style_file =
|
32
|
+
style_file = "#{File.dirname(filename)}/default_test_style.rb"
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
ruleset = MarkdownLint::RuleSet.new
|
36
|
+
ruleset.load_default
|
37
|
+
rules = ruleset.rules
|
36
38
|
style = MarkdownLint::Style.load(style_file, rules)
|
37
39
|
rules.select! {|r| style.rules.include?(r)}
|
38
40
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mdl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Harrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.8'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.8.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
29
|
+
version: '1.8'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.8.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: mixlib-config
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,6 +162,14 @@ files:
|
|
162
162
|
- lib/mdl/styles/relaxed.rb
|
163
163
|
- lib/mdl/version.rb
|
164
164
|
- mdl.gemspec
|
165
|
+
- test/fixtures/default_mdlrc
|
166
|
+
- test/fixtures/dir_with_md_and_markdown/bar.markdown
|
167
|
+
- test/fixtures/dir_with_md_and_markdown/foo.md
|
168
|
+
- test/fixtures/mdlrc_disable_rules
|
169
|
+
- test/fixtures/mdlrc_disable_tags
|
170
|
+
- test/fixtures/mdlrc_enable_rules
|
171
|
+
- test/fixtures/mdlrc_enable_tags
|
172
|
+
- test/fixtures/my_ruleset.rb
|
165
173
|
- test/rule_tests/atx_closed_header_spacing.md
|
166
174
|
- test/rule_tests/atx_header_spacing.md
|
167
175
|
- test/rule_tests/blockquote_blank_lines.md
|
@@ -171,19 +179,26 @@ files:
|
|
171
179
|
- test/rule_tests/bulleted_list_4_space_indent.md
|
172
180
|
- test/rule_tests/bulleted_list_not_at_beginning_of_line.md
|
173
181
|
- test/rule_tests/code_block_dollar.md
|
182
|
+
- test/rule_tests/code_block_dollar_fence.md
|
174
183
|
- test/rule_tests/consecutive_blank_lines.md
|
175
184
|
- test/rule_tests/consistent_bullet_styles_asterisk.md
|
176
185
|
- test/rule_tests/consistent_bullet_styles_dash.md
|
177
186
|
- test/rule_tests/consistent_bullet_styles_plus.md
|
187
|
+
- test/rule_tests/default_test_style.rb
|
178
188
|
- test/rule_tests/emphasis_instead_of_headers.md
|
179
189
|
- test/rule_tests/empty_doc.md
|
180
190
|
- test/rule_tests/fenced_code_blocks.md
|
191
|
+
- test/rule_tests/fenced_code_with_nesting.md
|
181
192
|
- test/rule_tests/fenced_code_without_blank_lines.md
|
182
193
|
- test/rule_tests/fenced_code_without_blank_lines_style.rb
|
183
194
|
- test/rule_tests/first_header_bad_atx.md
|
184
195
|
- test/rule_tests/first_header_bad_setext.md
|
185
196
|
- test/rule_tests/first_header_good_atx.md
|
186
197
|
- test/rule_tests/first_header_good_setext.md
|
198
|
+
- test/rule_tests/first_line_top_level_header_atx.md
|
199
|
+
- test/rule_tests/first_line_top_level_header_atx_style.rb
|
200
|
+
- test/rule_tests/first_line_top_level_header_setext.md
|
201
|
+
- test/rule_tests/first_line_top_level_header_setext_style.rb
|
187
202
|
- test/rule_tests/header_duplicate_content.md
|
188
203
|
- test/rule_tests/header_multiple_toplevel.md
|
189
204
|
- test/rule_tests/header_mutliple_h1_no_toplevel.md
|
@@ -192,6 +207,8 @@ files:
|
|
192
207
|
- test/rule_tests/header_trailing_punctuation_customized_style.rb
|
193
208
|
- test/rule_tests/headers_bad.md
|
194
209
|
- test/rule_tests/headers_good.md
|
210
|
+
- test/rule_tests/headers_good_setext_with_atx.md
|
211
|
+
- test/rule_tests/headers_good_setext_with_atx_style.rb
|
195
212
|
- test/rule_tests/headers_surrounding_space_atx.md
|
196
213
|
- test/rule_tests/headers_surrounding_space_setext.md
|
197
214
|
- test/rule_tests/headers_with_spaces_at_the_beginning.md
|
@@ -224,9 +241,15 @@ files:
|
|
224
241
|
- test/rule_tests/long_lines.md
|
225
242
|
- test/rule_tests/long_lines_100.md
|
226
243
|
- test/rule_tests/long_lines_100_style.rb
|
244
|
+
- test/rule_tests/long_lines_code.md
|
245
|
+
- test/rule_tests/long_lines_code_style.rb
|
227
246
|
- test/rule_tests/mixed_header_types_atx.md
|
228
247
|
- test/rule_tests/mixed_header_types_atx_closed.md
|
229
248
|
- test/rule_tests/mixed_header_types_setext.md
|
249
|
+
- test/rule_tests/no_first_line_header.md
|
250
|
+
- test/rule_tests/no_first_line_header_style.rb
|
251
|
+
- test/rule_tests/no_first_line_top_level_header.md
|
252
|
+
- test/rule_tests/no_first_line_top_level_header_style.rb
|
230
253
|
- test/rule_tests/ordered_list_item_prefix.md
|
231
254
|
- test/rule_tests/ordered_list_item_prefix_ordered.md
|
232
255
|
- test/rule_tests/ordered_list_item_prefix_ordered_style.rb
|
@@ -240,6 +263,7 @@ files:
|
|
240
263
|
- test/rule_tests/trailing_spaces_br_style.rb
|
241
264
|
- test/rule_tests/whitespace_issues.md
|
242
265
|
- test/setup_tests.rb
|
266
|
+
- test/test_cli.rb
|
243
267
|
- test/test_ruledocs.rb
|
244
268
|
- test/test_rules.rb
|
245
269
|
- tools/README.md
|
@@ -265,11 +289,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
289
|
version: '0'
|
266
290
|
requirements: []
|
267
291
|
rubyforge_project:
|
268
|
-
rubygems_version: 2.
|
292
|
+
rubygems_version: 2.5.2
|
269
293
|
signing_key:
|
270
294
|
specification_version: 4
|
271
295
|
summary: Markdown lint tool
|
272
296
|
test_files:
|
297
|
+
- test/fixtures/default_mdlrc
|
298
|
+
- test/fixtures/dir_with_md_and_markdown/bar.markdown
|
299
|
+
- test/fixtures/dir_with_md_and_markdown/foo.md
|
300
|
+
- test/fixtures/mdlrc_disable_rules
|
301
|
+
- test/fixtures/mdlrc_disable_tags
|
302
|
+
- test/fixtures/mdlrc_enable_rules
|
303
|
+
- test/fixtures/mdlrc_enable_tags
|
304
|
+
- test/fixtures/my_ruleset.rb
|
273
305
|
- test/rule_tests/atx_closed_header_spacing.md
|
274
306
|
- test/rule_tests/atx_header_spacing.md
|
275
307
|
- test/rule_tests/blockquote_blank_lines.md
|
@@ -279,19 +311,26 @@ test_files:
|
|
279
311
|
- test/rule_tests/bulleted_list_4_space_indent.md
|
280
312
|
- test/rule_tests/bulleted_list_not_at_beginning_of_line.md
|
281
313
|
- test/rule_tests/code_block_dollar.md
|
314
|
+
- test/rule_tests/code_block_dollar_fence.md
|
282
315
|
- test/rule_tests/consecutive_blank_lines.md
|
283
316
|
- test/rule_tests/consistent_bullet_styles_asterisk.md
|
284
317
|
- test/rule_tests/consistent_bullet_styles_dash.md
|
285
318
|
- test/rule_tests/consistent_bullet_styles_plus.md
|
319
|
+
- test/rule_tests/default_test_style.rb
|
286
320
|
- test/rule_tests/emphasis_instead_of_headers.md
|
287
321
|
- test/rule_tests/empty_doc.md
|
288
322
|
- test/rule_tests/fenced_code_blocks.md
|
323
|
+
- test/rule_tests/fenced_code_with_nesting.md
|
289
324
|
- test/rule_tests/fenced_code_without_blank_lines.md
|
290
325
|
- test/rule_tests/fenced_code_without_blank_lines_style.rb
|
291
326
|
- test/rule_tests/first_header_bad_atx.md
|
292
327
|
- test/rule_tests/first_header_bad_setext.md
|
293
328
|
- test/rule_tests/first_header_good_atx.md
|
294
329
|
- test/rule_tests/first_header_good_setext.md
|
330
|
+
- test/rule_tests/first_line_top_level_header_atx.md
|
331
|
+
- test/rule_tests/first_line_top_level_header_atx_style.rb
|
332
|
+
- test/rule_tests/first_line_top_level_header_setext.md
|
333
|
+
- test/rule_tests/first_line_top_level_header_setext_style.rb
|
295
334
|
- test/rule_tests/header_duplicate_content.md
|
296
335
|
- test/rule_tests/header_multiple_toplevel.md
|
297
336
|
- test/rule_tests/header_mutliple_h1_no_toplevel.md
|
@@ -300,6 +339,8 @@ test_files:
|
|
300
339
|
- test/rule_tests/header_trailing_punctuation_customized_style.rb
|
301
340
|
- test/rule_tests/headers_bad.md
|
302
341
|
- test/rule_tests/headers_good.md
|
342
|
+
- test/rule_tests/headers_good_setext_with_atx.md
|
343
|
+
- test/rule_tests/headers_good_setext_with_atx_style.rb
|
303
344
|
- test/rule_tests/headers_surrounding_space_atx.md
|
304
345
|
- test/rule_tests/headers_surrounding_space_setext.md
|
305
346
|
- test/rule_tests/headers_with_spaces_at_the_beginning.md
|
@@ -332,9 +373,15 @@ test_files:
|
|
332
373
|
- test/rule_tests/long_lines.md
|
333
374
|
- test/rule_tests/long_lines_100.md
|
334
375
|
- test/rule_tests/long_lines_100_style.rb
|
376
|
+
- test/rule_tests/long_lines_code.md
|
377
|
+
- test/rule_tests/long_lines_code_style.rb
|
335
378
|
- test/rule_tests/mixed_header_types_atx.md
|
336
379
|
- test/rule_tests/mixed_header_types_atx_closed.md
|
337
380
|
- test/rule_tests/mixed_header_types_setext.md
|
381
|
+
- test/rule_tests/no_first_line_header.md
|
382
|
+
- test/rule_tests/no_first_line_header_style.rb
|
383
|
+
- test/rule_tests/no_first_line_top_level_header.md
|
384
|
+
- test/rule_tests/no_first_line_top_level_header_style.rb
|
338
385
|
- test/rule_tests/ordered_list_item_prefix.md
|
339
386
|
- test/rule_tests/ordered_list_item_prefix_ordered.md
|
340
387
|
- test/rule_tests/ordered_list_item_prefix_ordered_style.rb
|
@@ -348,6 +395,7 @@ test_files:
|
|
348
395
|
- test/rule_tests/trailing_spaces_br_style.rb
|
349
396
|
- test/rule_tests/whitespace_issues.md
|
350
397
|
- test/setup_tests.rb
|
398
|
+
- test/test_cli.rb
|
351
399
|
- test/test_ruledocs.rb
|
352
400
|
- test/test_rules.rb
|
353
401
|
has_rdoc:
|