Module: Howitzer::Web::PageValidator::ClassMethods
- Defined in:
- lib/howitzer/web/page_validator.rb
Overview
This module holds page validation class methods
Instance Method Summary collapse
-
#matched_pages ⇒ Array
Finds all matched pages which satisfy of defined validations on current page.
-
#opened?(sync: true) ⇒ Boolean
Check whether current page is opened or no.
-
#validate(type, pattern_or_element_name, *args, **options) ⇒ Object
Adds validation to validation list for current page.
-
#validations ⇒ Hash
Defined validations for current page class.
Instance Method Details
#matched_pages ⇒ Array
Finds all matched pages which satisfy of defined validations on current page
83 84 85 |
# File 'lib/howitzer/web/page_validator.rb', line 83 def matched_pages PageValidator.validations.keys.select { |klass| klass.opened?(sync: false) } end |
#opened?(sync: true) ⇒ Boolean
Check whether current page is opened or no
74 75 76 77 78 |
# File 'lib/howitzer/web/page_validator.rb', line 74 def opened?(sync: true) return validations.all? { |(_, validation)| validation.call(self, sync) } if validations.present? raise Howitzer::NoValidationError, "No any page validation was found for '#{name}' page" end |
#validate(type, pattern_or_element_name, *args, **options) ⇒ Object
Adds validation to validation list for current page
53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/howitzer/web/page_validator.rb', line 53 def validate(type, pattern_or_element_name, *args, **) case type.to_s.to_sym when :url, :title if args.present? || .present? raise ArgumentError, "Additional arguments and options are not supported by '#{type}' the validator" end send("validate_by_#{type}", pattern_or_element_name) when :element_presence validate_by_element_presence(pattern_or_element_name, *args, **) else raise Howitzer::UnknownValidationError, "unknown '#{type}' validation type" end end |
#validations ⇒ Hash
Returns defined validations for current page class.
89 90 91 |
# File 'lib/howitzer/web/page_validator.rb', line 89 def validations PageValidator.validations[self] ||= {} end |