scrum_lint 0.0.1 → 0.0.2
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/README.md +7 -6
- data/lib/scrum_lint/configuration.rb +57 -11
- data/lib/scrum_lint/configurator.rb +6 -2
- data/lib/scrum_lint/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d61fb1e76e63f0d5ef49bbf8a5c10b0f454e43c6
|
4
|
+
data.tar.gz: a9e1a7fc6ba2935e5544d5d09caf87c19b9228f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38b38598927e3b68738978b3863465073c2c41ad272fdd414e24b7f7cf5f938c02a5d9415258df0eec27113bf45cbf1a47d78614b583bd681d3a3f6f57d3c9fe
|
7
|
+
data.tar.gz: 4a413679359d281a13aa5887992cfc034bf147d4b6ae403bd0cf8db0d3e4b975595924b25227c04c8f8856f7134131755cf5a7645c90e81a9ea2350ad41e6670
|
data/README.md
CHANGED
@@ -12,9 +12,10 @@ gem install scrum_lint
|
|
12
12
|
|
13
13
|
## Usage
|
14
14
|
|
15
|
-
ScrumLint expects the
|
16
|
-
|
17
|
-
these tokens in the [Basic authorization section
|
15
|
+
ScrumLint expects a `.scrum-lint.yml` file in the current working directory
|
16
|
+
with at a minimum a `trello_developer_public_key` and `trello_member_token`.
|
17
|
+
You can see how to acquire these tokens in the ["Basic authorization" section
|
18
|
+
of the `ruby-trello`
|
18
19
|
gem](https://github.com/jeremytregunna/ruby-trello#basic-authorization). Once
|
19
20
|
you've set these, you can run the following command for a list of corrections
|
20
21
|
to be made:
|
@@ -28,14 +29,14 @@ ensure it is up to date, and list out any violations.
|
|
28
29
|
|
29
30
|
## Linters
|
30
31
|
|
31
|
-
|
32
|
+
**Context**
|
32
33
|
|
33
|
-
The Context linter checks that each card in task lists has a context
|
34
|
+
The Context linter checks that each card in task lists has a context link at
|
34
35
|
the beginning of it's description. This is expected to be a text label in the
|
35
36
|
format:
|
36
37
|
|
37
38
|
```
|
38
|
-
Context:
|
39
|
+
Context: <link to a Trello card>
|
39
40
|
```
|
40
41
|
|
41
42
|
## Development
|
@@ -1,17 +1,63 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'erb'
|
3
|
+
|
1
4
|
module ScrumLint
|
2
5
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
class Configuration
|
7
|
+
|
8
|
+
DEFAULT_CONFIGURATION = {
|
9
|
+
board_name: 'Eng: Current',
|
10
|
+
task_list_names: ['Planned', 'This Sprint', 'Doing', 'In Review'],
|
11
|
+
done_list_matcher: /^Done.*$/,
|
12
|
+
project_list_names: ['Active Projects'],
|
13
|
+
ignored_list_names: %w(Emergent),
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
REQUIRED_CONFIGURATION_KEYS = [
|
17
|
+
:trello_developer_public_key,
|
18
|
+
:trello_member_token,
|
19
|
+
].freeze
|
20
|
+
|
21
|
+
CONFIGURATION_KEYS =
|
22
|
+
(DEFAULT_CONFIGURATION.keys + REQUIRED_CONFIGURATION_KEYS).freeze
|
23
|
+
|
24
|
+
attr_accessor(*CONFIGURATION_KEYS)
|
25
|
+
|
26
|
+
def initialize
|
27
|
+
options = load_yaml_config.merge(DEFAULT_CONFIGURATION)
|
28
|
+
|
29
|
+
CONFIGURATION_KEYS.each do |key|
|
30
|
+
self.send("#{key}=", options.fetch(key))
|
31
|
+
options.delete(key)
|
32
|
+
end
|
33
|
+
raise "invalid options: #{options.keys}" if options.any?
|
14
34
|
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def load_yaml_config
|
39
|
+
unless File.exist?(config_file_path)
|
40
|
+
abort('Please add a ".scrum-lint.yml" file and try again')
|
41
|
+
end
|
42
|
+
symbolize_keys(YAML.safe_load(config_file_contents))
|
43
|
+
end
|
44
|
+
|
45
|
+
def config_file_contents
|
46
|
+
ERB.new(IO.read(config_file_path)).result
|
47
|
+
end
|
48
|
+
|
49
|
+
def config_file_path
|
50
|
+
'./.scrum-lint.yml'
|
51
|
+
end
|
52
|
+
|
53
|
+
def symbolize_keys(hash)
|
54
|
+
hash.each_with_object({}) do |(key, value), result|
|
55
|
+
new_key = key.is_a?(String) ? key.to_sym : key
|
56
|
+
new_value = value.is_a?(Hash) ? symbolize_keys(value) : value
|
57
|
+
result[new_key] = new_value
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
15
61
|
end
|
16
62
|
|
17
63
|
end
|
@@ -3,6 +3,10 @@ module ScrumLint
|
|
3
3
|
class Configurator
|
4
4
|
|
5
5
|
def self.call
|
6
|
+
new.()
|
7
|
+
end
|
8
|
+
|
9
|
+
def call
|
6
10
|
Trello.configure do |trello_config|
|
7
11
|
trello_config.developer_public_key = trello_developer_public_key
|
8
12
|
trello_config.member_token = trello_member_token
|
@@ -11,11 +15,11 @@ module ScrumLint
|
|
11
15
|
|
12
16
|
private
|
13
17
|
|
14
|
-
def
|
18
|
+
def trello_developer_public_key
|
15
19
|
ScrumLint.config.trello_developer_public_key
|
16
20
|
end
|
17
21
|
|
18
|
-
def
|
22
|
+
def trello_member_token
|
19
23
|
ScrumLint.config.trello_member_token
|
20
24
|
end
|
21
25
|
|
data/lib/scrum_lint/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrum_lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Fletcher
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-trello
|