Class: Email::ContentRules::Rule

Inherits:
Data
  • Object
show all
Defined in:
app/services/email/content_rules.rb

Overview

A single design rule. severity: :warn (advisory, default) or :error (blocks save).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, applies_to:, validate:, severity: :warn) ⇒ Rule

Returns a new instance of Rule.



33
# File 'app/services/email/content_rules.rb', line 33

def initialize(name:, applies_to:, validate:, severity: :warn) = super

Instance Attribute Details

#applies_toObject (readonly)

Returns the value of attribute applies_to

Returns:

  • (Object)

    the current value of applies_to



32
33
34
# File 'app/services/email/content_rules.rb', line 32

def applies_to
  @applies_to
end

#nameObject (readonly)

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



32
33
34
# File 'app/services/email/content_rules.rb', line 32

def name
  @name
end

#severityObject (readonly)

Returns the value of attribute severity

Returns:

  • (Object)

    the current value of severity



32
33
34
# File 'app/services/email/content_rules.rb', line 32

def severity
  @severity
end

#validateObject (readonly)

Returns the value of attribute validate

Returns:

  • (Object)

    the current value of validate



32
33
34
# File 'app/services/email/content_rules.rb', line 32

def validate
  @validate
end

Instance Method Details

#call(html) ⇒ Object



35
36
37
# File 'app/services/email/content_rules.rb', line 35

def call(html)
  Array(validate.call(html)).compact.map { |msg| { rule: name, message: msg.to_s, severity: severity } }
end