mdl 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: