Module: FnValidations
- Included in:
- SocialNetsDB::SocialNet, SocialNetsDB::SocialNet, Support
- Defined in:
- lib/social_nets_db/fn_validations.rb
Class Method Summary collapse
- .validate_argument_boolean!(argument) ⇒ Object
- .validate_argument_positive!(argument) ⇒ Object
- .validate_argument_presence!(argument) ⇒ Object
- .validate_argument_type!(argument, permitted_types) ⇒ Object
- .validate_collection_item_types!(collection, permitted_types) ⇒ Object
Class Method Details
.validate_argument_boolean!(argument) ⇒ Object
25 26 27 |
# File 'lib/social_nets_db/fn_validations.rb', line 25 def validate_argument_boolean! argument validate_argument_type! argument, [TrueClass, FalseClass] end |
.validate_argument_positive!(argument) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/social_nets_db/fn_validations.rb', line 37 def validate_argument_positive! argument validate_argument_type! argument, Numeric = "You must pass a positive value, you pass #{argument.inspect}" fail ArgumentError, unless argument.positive? argument end |
.validate_argument_presence!(argument) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/social_nets_db/fn_validations.rb', line 29 def validate_argument_presence! argument validate_argument_type! argument, [String, Symbol] return argument if argument.is_a?(Symbol) = "You must pass a non-empty String, you are passing #{argument.inspect}" fail ArgumentError, unless argument.is_a?(String) && argument != "" argument end |
.validate_argument_type!(argument, permitted_types) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/social_nets_db/fn_validations.rb', line 7 def validate_argument_type! argument, permitted_types types = Array(permitted_types) type_names = types.map { |klass| "`#{klass}`" }.join(" or ") valid = types.any? { |type| argument.is_a? type } = "#{type_names} is expected, you pass a `#{argument.class}` (#{argument})" fail TypeError, unless valid argument end |
.validate_collection_item_types!(collection, permitted_types) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/social_nets_db/fn_validations.rb', line 16 def validate_collection_item_types! collection, permitted_types types = Array(permitted_types) type_names = types.map { |name| "`#{name}`" }.join(" or ") valid = collection.all? { |item| types.include?(item.class) } = "#{type_names} is expected, one the items you pass is of incorrect type" fail TypeError, unless valid collection end |