Class: Mxrb::Dsl::SecurityValidator
- Inherits:
-
Object
- Object
- Mxrb::Dsl::SecurityValidator
- Defined in:
- lib/mxrb/dsl/builder.rb
Overview
Validates project-security references that cross DSL builders.
Instance Method Summary collapse
-
#initialize(modules, security) ⇒ SecurityValidator
constructor
A new instance of SecurityValidator.
- #validate! ⇒ Object
Constructor Details
#initialize(modules, security) ⇒ SecurityValidator
Returns a new instance of SecurityValidator.
11 12 13 14 |
# File 'lib/mxrb/dsl/builder.rb', line 11 def initialize(modules, security) @modules = modules @security = security end |
Instance Method Details
#validate! ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/mxrb/dsl/builder.rb', line 16 def validate! return unless @security errors = demo_users.flat_map { reference_errors(_1) } duplicates = demo_users.group_by { _1.fetch(:name) }.select { |_name, users| users.size > 1 } errors << "duplicate demo user name(s): #{duplicates.keys.join(', ')}" unless duplicates.empty? return if errors.empty? raise ValidationError, "security validation failed:\n- #{errors.join("\n- ")}" end |