Class: Moku6::Linter

Inherits:
Object
  • Object
show all
Defined in:
lib/moku6/linter.rb

Constant Summary collapse

EVENT_RULES =
[
  Rules::SchemaRule,
  Rules::ActionNamingRule,
  Rules::LabelDescriptionRule,
  Rules::PrivacyMaskingRule,
  Rules::VisibilityRule,
  Rules::RetentionRule,
  Rules::ExampleConsistencyRule,
  Rules::PiiFieldNameHeuristicRule
].freeze
CATALOG_RULES =

: Array

[
  Rules::UniquenessRule
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(catalog, config) ⇒ Linter

: (Catalog catalog, Config config) -> void



41
42
43
44
# File 'lib/moku6/linter.rb', line 41

def initialize(catalog, config)
  @catalog = catalog
  @config = config
end

Class Method Details

.custom_catalog_rulesObject

: () -> Array



37
# File 'lib/moku6/linter.rb', line 37

def custom_catalog_rules = @custom_catalog_rules ||= []

.custom_event_rulesObject

: () -> Array



34
# File 'lib/moku6/linter.rb', line 34

def custom_event_rules = @custom_event_rules ||= []

.register_catalog_rule(klass) ⇒ Object

: (singleton(Rules::BaseRule) klass) -> Array



31
# File 'lib/moku6/linter.rb', line 31

def register_catalog_rule(klass) = custom_catalog_rules << klass

.register_event_rule(klass) ⇒ Object

: (singleton(Rules::BaseRule) klass) -> Array



28
# File 'lib/moku6/linter.rb', line 28

def register_event_rule(klass) = custom_event_rules << klass

Instance Method Details

#runObject

: () -> Result



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/moku6/linter.rb', line 47

def run
  offenses = []
  (CATALOG_RULES + self.class.custom_catalog_rules).each do |rule_class|
    offenses.concat(rule_class.new(@config).check_catalog(@catalog)) # steep:ignore NoMethod
  end
  @catalog.events.each do |event|
    (EVENT_RULES + self.class.custom_event_rules).each do |rule_class|
      offenses.concat(rule_class.new(@config).check(event))
    end
  end
  Result.new(offenses)
end