Module: MimeActor::Validator::ClassMethods
- Defined in:
- lib/mime_actor/validator.rb
Instance Method Summary collapse
-
#validate!(rule, *args) ⇒ Object
Raise the error returned by validator if any.
-
#validate_action(unchecked) ⇒ Object
Validate ‘action` must be a Symbol.
-
#validate_action_or_actions(unchecked) ⇒ Object
Validate against ‘actions` rule if argument is a Enumerable.
-
#validate_actions(unchecked) ⇒ Object
Validate ‘actions` must be a collection of Symbol.
-
#validate_callable(unchecked) ⇒ Object
Validate ‘callable` must be a Symbol or Proc.
-
#validate_format(unchecked) ⇒ Object
Validate ‘format` must be a Symbol and a valid MIME type.
-
#validate_format_or_formats(unchecked) ⇒ Object
Validate against ‘formats` rule if argument is a Enumerable.
-
#validate_formats(unchecked) ⇒ Object
Validate ‘formats` must be an collection of Symbol which each of them is a valid MIME type.
-
#validate_klazz(unchecked) ⇒ Object
Validate ‘klazz` must be a Class/Module or a String referencing a Class/Module.
Instance Method Details
#validate!(rule, *args) ⇒ Object
Raise the error returned by validator if any.
33 34 35 36 37 38 39 |
# File 'lib/mime_actor/validator.rb', line 33 def validate!(rule, *args) validator = "validate_#{rule}" raise NameError, "Validator not found, got: #{validator.inspect}" unless respond_to?(validator) error = send(validator, *args) raise error if error end |
#validate_action(unchecked) ⇒ Object
Validate ‘action` must be a Symbol
44 45 46 |
# File 'lib/mime_actor/validator.rb', line 44 def validate_action(unchecked) TypeError.new("action must be a Symbol") unless unchecked.is_a?(Symbol) end |
#validate_action_or_actions(unchecked) ⇒ Object
Validate against ‘actions` rule if argument is a Enumerable. otherwise, validate against `action` rule.
61 62 63 |
# File 'lib/mime_actor/validator.rb', line 61 def validate_action_or_actions(unchecked) unchecked.is_a?(Enumerable) ? validate_actions(unchecked) : validate_action(unchecked) end |
#validate_actions(unchecked) ⇒ Object
Validate ‘actions` must be a collection of Symbol
51 52 53 54 55 56 |
# File 'lib/mime_actor/validator.rb', line 51 def validate_actions(unchecked) return TypeError.new("actions must not be empty") if unchecked.empty? rejected = unchecked.reject { |action| action.is_a?(Symbol) } NameError.new("invalid actions, got: #{rejected.map(&:inspect).join(", ")}") if rejected.size.positive? end |
#validate_callable(unchecked) ⇒ Object
Validate ‘callable` must be a Symbol or Proc
106 107 108 109 110 |
# File 'lib/mime_actor/validator.rb', line 106 def validate_callable(unchecked) return if unchecked.is_a?(Proc) || unchecked.is_a?(Symbol) TypeError.new("#{unchecked.inspect} must be a Symbol or Proc") end |
#validate_format(unchecked) ⇒ Object
Validate ‘format` must be a Symbol and a valid MIME type
68 69 70 71 72 |
# File 'lib/mime_actor/validator.rb', line 68 def validate_format(unchecked) return TypeError.new("format must be a Symbol") unless unchecked.is_a?(Symbol) NameError.new("invalid format, got: #{unchecked.inspect}") unless scene_formats.include?(unchecked) end |
#validate_format_or_formats(unchecked) ⇒ Object
Validate against ‘formats` rule if argument is a Enumerable. otherwise, validate against `format` rule.
90 91 92 |
# File 'lib/mime_actor/validator.rb', line 90 def validate_format_or_formats(unchecked) unchecked.is_a?(Enumerable) ? validate_formats(unchecked) : validate_format(unchecked) end |
#validate_formats(unchecked) ⇒ Object
Validate ‘formats` must be an collection of Symbol which each of them is a valid MIME type
77 78 79 80 81 82 83 84 85 |
# File 'lib/mime_actor/validator.rb', line 77 def validate_formats(unchecked) return TypeError.new("formats must not be empty") if unchecked.empty? unfiltered = unchecked.to_set filtered = unfiltered & scene_formats rejected = unfiltered - filtered NameError.new("invalid formats, got: #{rejected.map(&:inspect).join(", ")}") if rejected.size.positive? end |
#validate_klazz(unchecked) ⇒ Object
Validate ‘klazz` must be a Class/Module or a String referencing a Class/Module
97 98 99 100 101 |
# File 'lib/mime_actor/validator.rb', line 97 def validate_klazz(unchecked) return if unchecked.is_a?(Module) || unchecked.is_a?(String) TypeError.new("#{unchecked.inspect} must be a Class/Module or a String referencing a Class/Module") end |