mdl 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/CHANGELOG.md +45 -0
  4. data/README.md +1 -0
  5. data/docs/RULES.md +116 -6
  6. data/docs/configuration.md +16 -1
  7. data/docs/creating_rules.md +7 -0
  8. data/lib/mdl.rb +26 -9
  9. data/lib/mdl/cli.rb +60 -9
  10. data/lib/mdl/doc.rb +5 -1
  11. data/lib/mdl/rules.rb +80 -6
  12. data/lib/mdl/ruleset.rb +16 -7
  13. data/lib/mdl/style.rb +6 -0
  14. data/lib/mdl/styles/default.rb +2 -1
  15. data/lib/mdl/styles/relaxed.rb +1 -0
  16. data/lib/mdl/version.rb +1 -1
  17. data/mdl.gemspec +1 -1
  18. data/test/fixtures/default_mdlrc +1 -0
  19. data/test/fixtures/dir_with_md_and_markdown/bar.markdown +1 -0
  20. data/test/fixtures/dir_with_md_and_markdown/foo.md +1 -0
  21. data/test/fixtures/mdlrc_disable_rules +1 -0
  22. data/test/fixtures/mdlrc_disable_tags +1 -0
  23. data/test/fixtures/mdlrc_enable_rules +1 -0
  24. data/test/fixtures/mdlrc_enable_tags +1 -0
  25. data/test/fixtures/my_ruleset.rb +6 -0
  26. data/test/rule_tests/blockquote_spaces.md +6 -4
  27. data/test/rule_tests/bulleted_list_2_space_indent_style.rb +1 -0
  28. data/test/rule_tests/code_block_dollar_fence.md +29 -0
  29. data/test/rule_tests/default_test_style.rb +4 -0
  30. data/test/rule_tests/fenced_code_with_nesting.md +73 -0
  31. data/test/rule_tests/fenced_code_without_blank_lines_style.rb +1 -0
  32. data/test/rule_tests/first_line_top_level_header_atx.md +3 -0
  33. data/test/rule_tests/first_line_top_level_header_atx_style.rb +2 -0
  34. data/test/rule_tests/first_line_top_level_header_setext.md +4 -0
  35. data/test/rule_tests/first_line_top_level_header_setext_style.rb +2 -0
  36. data/test/rule_tests/headers_good_setext_with_atx.md +7 -0
  37. data/test/rule_tests/headers_good_setext_with_atx_style.rb +2 -0
  38. data/test/rule_tests/hr_style_dashes_style.rb +1 -0
  39. data/test/rule_tests/hr_style_long_style.rb +1 -0
  40. data/test/rule_tests/hr_style_stars_style.rb +1 -0
  41. data/test/rule_tests/incorrect_bullet_style_asterisk_style.rb +1 -0
  42. data/test/rule_tests/incorrect_bullet_style_dash_style.rb +1 -0
  43. data/test/rule_tests/incorrect_bullet_style_plus_style.rb +1 -0
  44. data/test/rule_tests/long_lines_100_style.rb +1 -0
  45. data/test/rule_tests/long_lines_code.md +38 -0
  46. data/test/rule_tests/long_lines_code_style.rb +3 -0
  47. data/test/rule_tests/no_first_line_header.md +1 -0
  48. data/test/rule_tests/no_first_line_header_style.rb +1 -0
  49. data/test/rule_tests/no_first_line_top_level_header.md +1 -0
  50. data/test/rule_tests/no_first_line_top_level_header_style.rb +1 -0
  51. data/test/rule_tests/ordered_list_item_prefix_ordered_style.rb +1 -0
  52. data/test/rule_tests/spaces_after_list_marker_style.rb +1 -0
  53. data/test/rule_tests/trailing_spaces_br_style.rb +1 -0
  54. data/test/test_cli.rb +205 -0
  55. data/test/test_ruledocs.rb +8 -1
  56. data/test/test_rules.rb +4 -2
  57. metadata +55 -7
@@ -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
- @@rules = MarkdownLint::RuleSet.load_default
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
@@ -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 = 'all'
32
+ style_file = "#{File.dirname(filename)}/default_test_style.rb"
33
33
  end
34
34
 
35
- rules = MarkdownLint::RuleSet.load_default
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.2.1
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: 2015-04-13 00:00:00.000000000 Z
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.5'
19
+ version: '1.8'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.5.0
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.5'
29
+ version: '1.8'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.5.0
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.4.4
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: