learn_linter 0.6.0 → 1.1.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.
- checksums.yaml +4 -4
- data/bin/learn-lint +3 -4
- data/lib/learn_linter/learn_error.rb +12 -4
- data/lib/learn_linter/readme_linter.rb +3 -3
- data/lib/learn_linter/version.rb +1 -1
- data/lib/learn_linter.rb +12 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba154f1b74ddada6873a18f2ba882bbc26da90ee
|
4
|
+
data.tar.gz: 18111390edb6629e6c8f5333a2c09981b0da096b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96b607d790364f6993179cc198c5d39c76354bd06f8884a0d1e4e18222560b78eb5bd1be2a31b1ddac55a3a748443dc721296505cae1b2d082f3ecbf7125872e
|
7
|
+
data.tar.gz: fb9d3111b2d5d3015de52532802056fbbb5c44d1142efcf1c22af08793dbf958298e4d6cad53b87cc7c5eff51bb951e5befb0273c950271005e721fb2fe01816
|
data/bin/learn-lint
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
2
|
require 'yaml'
|
4
3
|
require 'optparse'
|
5
4
|
require_relative '../lib/learn_linter.rb'
|
6
5
|
|
7
6
|
if ARGV.length == 0
|
8
|
-
|
7
|
+
dir = File.expand_path(File.dirname(File.dirname(__FILE__)))
|
8
|
+
lint = LearnLinter.new(dir).lint_directory
|
9
9
|
elsif ARGV.length == 1 && ARGV[0] == "quiet"
|
10
10
|
dir = File.expand_path(File.dirname(File.dirname(__FILE__)))
|
11
11
|
lint = LearnLinter.new(dir, "quiet")
|
12
12
|
elsif ARGV.length > 1 && ARGV[1] == "quiet"
|
13
13
|
lint = LearnLinter.new(ARGV[0], "quiet").lint_directory
|
14
|
-
elsif ARGV.length > 1 &&
|
14
|
+
elsif ARGV.length > 1 && ARGV[1] != "quiet"
|
15
15
|
puts "please use 'learn-lint directory_name quiet' or 'learn-lint directory_name"
|
16
16
|
elsif ARGV.length == 1
|
17
17
|
lint = LearnLinter.new(ARGV[0]).lint_directory
|
18
18
|
end
|
19
19
|
|
20
20
|
|
21
|
-
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class LearnError < StandardError
|
2
2
|
attr_accessor :filepath, :valid_yaml, :valid_license,
|
3
3
|
:present_learn, :present_license, :present_readme, :yaml_error,
|
4
|
-
:readme_error, :license_error, :valid_readme, :correct_yaml_content
|
4
|
+
:readme_error, :license_error, :valid_readme, :correct_yaml_content,
|
5
|
+
:valid_contributing, :present_contributing, :contributing_error
|
5
6
|
|
6
7
|
ESCAPES = { :green => "\033[32m",
|
7
8
|
:yellow => "\033[33m",
|
@@ -13,13 +14,19 @@ class LearnError < StandardError
|
|
13
14
|
@yaml_error = {present_dotlearn: false, valid_yaml: false, valid_whitespace: false, attributes: false}
|
14
15
|
@readme_error = {present_readme: false, valid_readme: false}
|
15
16
|
@license_error = {present_license: false, valid_license: false}
|
17
|
+
@contributing_error = {present_contributing: false, valid_contributing: false}
|
18
|
+
|
16
19
|
@correct_yaml_content = {message: ".learn file must have 'tags', 'resources' and 'languages' keys", color: :yellow}
|
17
|
-
|
20
|
+
|
21
|
+
@valid_yaml = {message: "invalid yaml", color: :red}
|
18
22
|
@valid_license = {message: "invalid or missing license content", color: :yellow}
|
19
23
|
@valid_readme = {message: "invalid code snippet. Must have three backticks to open and close all code snippets", color: :red}
|
24
|
+
@valid_contributing = {message: "invalid or missing contributing content", color: :yellow}
|
25
|
+
|
20
26
|
@present_learn = {message: "missing .learn file", color: :red}
|
21
27
|
@present_license = {message: "missing LICENSE.md", color: :red}
|
22
28
|
@present_readme = {message: "missing README.md", color: :yellow}
|
29
|
+
@present_contributing = {message: "missing CONTRIBUTING.md", color: :yellow}
|
23
30
|
|
24
31
|
end
|
25
32
|
|
@@ -36,14 +43,15 @@ class LearnError < StandardError
|
|
36
43
|
{
|
37
44
|
dot_learn: yaml_error,
|
38
45
|
license: license_error,
|
39
|
-
readme: readme_error
|
46
|
+
readme: readme_error,
|
47
|
+
contributing: contributing_error
|
40
48
|
}
|
41
49
|
|
42
50
|
end
|
43
51
|
|
44
52
|
|
45
53
|
def result_output
|
46
|
-
all_results = [present_learn, valid_yaml, correct_yaml_content, present_license, valid_license, present_readme, valid_readme]
|
54
|
+
all_results = [present_learn, valid_yaml, correct_yaml_content, present_license, valid_license, present_readme, valid_readme, valid_contributing, present_contributing]
|
47
55
|
all_results.each do |result|
|
48
56
|
emit(result)
|
49
57
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'pry'
|
2
1
|
class ReadmeLinter
|
3
2
|
|
4
3
|
def self.parse_file(file, learn_error)
|
@@ -22,7 +21,7 @@ class ReadmeLinter
|
|
22
21
|
def self.validate_snippets(file, learn_error)
|
23
22
|
file.split(" ").each do |chars|
|
24
23
|
if chars.match(/``/)
|
25
|
-
if !(chars.match(/```ruby/) || chars.match(/```bash/) || chars.match(/```objc/) || chars.match(/```javascript/) || chars.match(/``` /)
|
24
|
+
if !(chars.match(/```ruby/) || chars.match(/```bash/) || chars.match(/```objc/) || chars.match(/```javascript/) || chars.match(/``` /))
|
26
25
|
break
|
27
26
|
else
|
28
27
|
green_light(learn_error)
|
@@ -30,4 +29,5 @@ class ReadmeLinter
|
|
30
29
|
end
|
31
30
|
end
|
32
31
|
end
|
33
|
-
end
|
32
|
+
end
|
33
|
+
|
data/lib/learn_linter/version.rb
CHANGED
data/lib/learn_linter.rb
CHANGED
@@ -3,14 +3,15 @@ require_relative './learn_linter/learn_error'
|
|
3
3
|
require_relative './learn_linter/license_linter'
|
4
4
|
require_relative './learn_linter/readme_linter'
|
5
5
|
require_relative './learn_linter/yaml_linter'
|
6
|
+
require_relative './learn_linter/contributing_linter'
|
6
7
|
|
7
8
|
class LearnLinter
|
8
9
|
|
9
10
|
attr_accessor :filepath, :quiet
|
10
11
|
|
11
12
|
|
12
|
-
def initialize(
|
13
|
-
@filepath =
|
13
|
+
def initialize(filepath, quiet=nil)
|
14
|
+
@filepath = filepath
|
14
15
|
@learn_error = LearnError.new
|
15
16
|
@quiet = quiet
|
16
17
|
end
|
@@ -19,6 +20,7 @@ class LearnLinter
|
|
19
20
|
self.yaml_lint
|
20
21
|
self.license_lint
|
21
22
|
self.readme_lint
|
23
|
+
self.contributing_lint
|
22
24
|
unless quiet
|
23
25
|
@learn_error.result_output
|
24
26
|
end
|
@@ -55,4 +57,12 @@ class LearnLinter
|
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
60
|
+
def contributing_lint
|
61
|
+
if self.has_file?("CONTRIBUTING.md")
|
62
|
+
@learn_error.contributing_error[:present_contributing] = true
|
63
|
+
@learn_error.present_contributing = {message: "present CONTRIBUTING.md", color: :green}
|
64
|
+
ContributingLinter.parse_file("#{filepath}/CONTRIBUTING.md", @learn_error)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
58
68
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn_linter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sophie DeBenedetto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
91
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.4.
|
92
|
+
rubygems_version: 2.4.8
|
93
93
|
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: can lint a directory for valid .learn, license files
|