appium_doc_lint 0.0.3 → 0.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e51c5890b05e13f9b3cb7a21120420df411822c
4
- data.tar.gz: 7f3867ba30ad673c7b48524708b9272aa18ec25c
3
+ metadata.gz: d9a90d2baebe2ed13db1355e50c3a3917eb9a161
4
+ data.tar.gz: c91fd0b231071843d57892b66b567a99f3ee9735
5
5
  SHA512:
6
- metadata.gz: ba53a6f63988c9a30fe82e5c4097bd6d1878bf37bbd17232a3b64308b80f222072342255eab763f16501e98406931c05c75bdcddf53b30cf6d02b6a197c26ed7
7
- data.tar.gz: cb972b4a8371813897fe82395dac84435bc1d83fea905168e720ee2a5b90e3b5c8db3a7e045347ba8e7eb3c65a08765525b226382a8532da0248728309611f45
6
+ metadata.gz: 470605d83b8fc7aa33def2be3ca456f38ee13eae133ee0a089b775e3a4f39ddae3e03feb94a78b4bc991bce1c45bedab85a65e2af2a0990823fc7f07b9262ae0
7
+ data.tar.gz: bcb2a93f069a8bf49b0db79bfb77be2d39e29f60ec7aa7b213ba5ebc14ee376ddb259e18bcc17aaf1d0fc499cba3a7c9a69b4fba9d56f43d3ba9bbb161c4ff1d
@@ -3,6 +3,7 @@ require 'ostruct'
3
3
  module Appium
4
4
  class Lint
5
5
  require_relative 'lint/base'
6
+ require_relative 'lint/ext_missing'
6
7
  require_relative 'lint/h1_invalid'
7
8
  require_relative 'lint/h1_multiple'
8
9
  require_relative 'lint/h1_missing'
@@ -14,7 +15,7 @@ module Appium
14
15
  attr_reader :input
15
16
 
16
17
  def initialize
17
- @rules = [H1Missing, H1Multiple, H1Invalid, H2Invalid, H456Invalid, LineBreakInvalid]
18
+ @rules = [ExtMissing, H1Missing, H1Multiple, H1Invalid, H2Invalid, H456Invalid, LineBreakInvalid]
18
19
  end
19
20
 
20
21
  def self.init_data opts={}, input
@@ -0,0 +1,42 @@
1
+ module Appium
2
+ class Lint
3
+ ###
4
+ # all markdown links must have an extension
5
+ #
6
+ # [link to read](readme.md)
7
+ #
8
+ # invalid examples:
9
+ # [link](readme)
10
+ # [link](readme#testing)
11
+ class ExtMissing < Base
12
+ def call
13
+ input.lines.each_with_index do |line, index|
14
+ # regex from github.com/appium/api-docs/lib/api_docs.rb
15
+ # /(?<!!) -- negative look behind. excludes image links
16
+ match_data = line.match(/(?<!!) \[ ( [^\[]* ) \] \( ( [^)\/]+ ) \)/x)
17
+ next unless match_data # skip nil matches
18
+ link_text = match_data[1]
19
+ link_target = match_data[2]
20
+
21
+ if link_target && !link_target.include?('/')
22
+ ext = File.extname link_target
23
+ if ext.empty?
24
+ warn index
25
+ else
26
+ ext, hash = ext.split '#'
27
+ warn index if ext.empty?
28
+ end
29
+ end
30
+ end
31
+
32
+ warnings
33
+ end
34
+
35
+ FAIL = 'Relative markdown links must have an extension. [readme](readme.md)'
36
+
37
+ def fail
38
+ FAIL
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,6 +1,6 @@
1
1
  module Appium
2
2
  class Lint
3
- VERSION = '0.0.3' unless defined? ::Appium::Lint::VERSION
4
- DATE = '2014-04-19' unless defined? ::Appium::Lint::DATE
3
+ VERSION = '0.0.4' unless defined? ::Appium::Lint::VERSION
4
+ DATE = '2014-04-26' unless defined? ::Appium::Lint::DATE
5
5
  end
6
6
  end
data/release_notes.md CHANGED
@@ -1,3 +1,13 @@
1
+ #### v0.0.2 2014-04-19
2
+
3
+ - [5bcd5c5](https://github.com/appium/appium_doc_lint/commit/5bcd5c58d25dace3ec356394d54f0a5d988602dd) Release 0.0.3
4
+ - [b77dbb8](https://github.com/appium/appium_doc_lint/commit/b77dbb8c2d262cd9254a9cd2cf79227400632720) Set exit code when issues are detected
5
+ - [aaf8ccf](https://github.com/appium/appium_doc_lint/commit/aaf8ccf1c596f4d50410622ecf6933c671b125b3) Improve test
6
+ - [0c62101](https://github.com/appium/appium_doc_lint/commit/0c6210113c7eb9ccf62a59f36d894dd58b7ad173) Make h1 duplicate detection code block aware
7
+ - [542859c](https://github.com/appium/appium_doc_lint/commit/542859c5059e411b483bfd74b9910b99ae58742d) Fix h1 detection and improve tests
8
+ - [3ab939a](https://github.com/appium/appium_doc_lint/commit/3ab939aea1989e823c1fd3c27d6428f539c212eb) Detect more than one h1 per doc
9
+
10
+
1
11
  ####
2
12
 
3
13
  - [910d158](https://github.com/appium/appium_doc_lint/commit/910d1583b5286c9c13242f97722ce50c99023944) Release 0.0.2
data/spec/data/sub/3.md CHANGED
@@ -18,4 +18,8 @@ don't detect duplicate h1 in code blocks
18
18
  # testing
19
19
  ```
20
20
 
21
- # dupe
21
+ # dupe
22
+
23
+ [ok](ok#ok)
24
+ [ok](ok.md)
25
+ [ok](ok.md#ok)
data/spec/helper.rb CHANGED
@@ -2,6 +2,7 @@ require 'rubygems'
2
2
  require 'rspec'
3
3
  require_relative '../lib/appium_doc_lint/lint'
4
4
  require_relative '../lib/appium_doc_lint/lint/base'
5
+ require_relative '../lib/appium_doc_lint/lint/ext_missing'
5
6
  require_relative '../lib/appium_doc_lint/lint/h1_missing'
6
7
  require_relative '../lib/appium_doc_lint/lint/h1_multiple'
7
8
  require_relative '../lib/appium_doc_lint/lint/h1_invalid'
data/spec/lint_spec.rb CHANGED
@@ -16,7 +16,8 @@ class Appium::Lint
16
16
  7 => [LineBreakInvalid::FAIL],
17
17
  9 => [H1Multiple::FAIL],
18
18
  11 => [H456Invalid::FAIL],
19
- 21 => [H1Multiple::FAIL],} }
19
+ 21 => [H1Multiple::FAIL],
20
+ 23 => [ExtMissing::FAIL] } }
20
21
 
21
22
  # convert path/to/0.md to 0.md
22
23
  actual.keys.each do |key|
@@ -45,6 +46,7 @@ class Appium::Lint
45
46
  9: #{H1Multiple::FAIL}
46
47
  11: #{H456Invalid::FAIL}
47
48
  21: #{H1Multiple::FAIL}
49
+ 23: #{ExtMissing::FAIL}
48
50
  REPORT
49
51
 
50
52
  expect(actual).to eq(expected)
@@ -282,4 +284,35 @@ markdown--
282
284
  expect(actual).to eq(expected)
283
285
  end
284
286
  end
287
+
288
+ describe ExtMissing do
289
+ it 'detects missing extensions in markdown links' do
290
+ data = <<-MARKDOWN
291
+ [link to read](readme)
292
+ [ok](ok#ok)
293
+ [intro](intro#start)
294
+ MARKDOWN
295
+ rule = ExtMissing.new data: data
296
+ expected = { 1 => [rule.fail],
297
+ 2 => [rule.fail],
298
+ 3 => [rule.fail] }
299
+ actual = rule.call
300
+
301
+ expect(actual).to eq(expected)
302
+ end
303
+
304
+ it 'detects accepts valid links' do
305
+ data = <<-MARKDOWN
306
+ [link to read](readme.md)
307
+ [README](README.md)
308
+ [intro](intro.md#start)
309
+ [example](https://example.com/)
310
+ MARKDOWN
311
+ rule = ExtMissing.new data: data
312
+ expected = {}
313
+ actual = rule.call
314
+
315
+ expect(actual).to eq(expected)
316
+ end
317
+ end
285
318
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_doc_lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-19 00:00:00.000000000 Z
11
+ date: 2014-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -71,6 +71,7 @@ files:
71
71
  - lib/appium_doc_lint.rb
72
72
  - lib/appium_doc_lint/lint.rb
73
73
  - lib/appium_doc_lint/lint/base.rb
74
+ - lib/appium_doc_lint/lint/ext_missing.rb
74
75
  - lib/appium_doc_lint/lint/h1_invalid.rb
75
76
  - lib/appium_doc_lint/lint/h1_missing.rb
76
77
  - lib/appium_doc_lint/lint/h1_multiple.rb