Class: GherkinLint::BeDeclarative
- Inherits:
-
Linter
- Object
- Linter
- GherkinLint::BeDeclarative
show all
- Defined in:
- lib/gherkin_lint/linter/be_declarative.rb
Overview
service class to lint for avoiding periods
Instance Attribute Summary
Attributes inherited from Linter
#issues
Instance Method Summary
collapse
Methods inherited from Linter
#add_error, #add_warning, #backgrounds, descendants, #elements, #features, #files, #filled_scenarios, #filter_tag, #line, #lint_files, #name, #reference, #render_step, #render_step_argument, #scenarios, #steps, #suppress, #suppress_tags, #tag?
Constructor Details
Returns a new instance of BeDeclarative.
7
8
9
|
# File 'lib/gherkin_lint/linter/be_declarative.rb', line 7
def initialize
super
end
|
Instance Method Details
#lint ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/gherkin_lint/linter/be_declarative.rb', line 11
def lint
filled_scenarios do |file, feature, scenario|
scenario[:steps].each do |step|
references = [reference(file, feature, scenario, step)]
add_warning(references, 'no verb') unless verb? step
end
end
end
|
#tagger ⇒ Object
41
42
43
44
45
|
# File 'lib/gherkin_lint/linter/be_declarative.rb', line 41
def tagger
@tagger = EngTagger.new unless instance_variable_defined? :@tagger
@tagger
end
|
#verb?(step) ⇒ Boolean
20
21
22
23
24
25
|
# File 'lib/gherkin_lint/linter/be_declarative.rb', line 20
def verb?(step)
tagged = tagger.add_tags step[:text]
step_verbs = verbs tagged
!step_verbs.empty?
end
|
#verbs(tagged_text) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/gherkin_lint/linter/be_declarative.rb', line 27
def verbs(tagged_text)
verbs =
%i[
get_infinitive_verbs
get_past_tense_verbs
get_gerund_verbs
get_passive_verbs
get_present_verbs
get_base_present_verbs
]
verbs.map { |verb| tagger.send(verb, tagged_text).keys }.flatten
end
|