Class: Contracts::InputType
- Inherits:
-
Precondition
- Object
- Contract
- Precondition
- Contracts::InputType
- Defined in:
- lib/ruby_contracts/input_type.rb
Instance Attribute Summary collapse
-
#message ⇒ Object
readonly
Returns the value of attribute message.
Instance Method Summary collapse
-
#initialize(expected_classes) ⇒ InputType
constructor
A new instance of InputType.
- #satisfied?(context, arguments, result = nil) ⇒ Boolean
Methods inherited from Precondition
Methods inherited from Contract
Constructor Details
#initialize(expected_classes) ⇒ InputType
Returns a new instance of InputType.
5 6 7 8 |
# File 'lib/ruby_contracts/input_type.rb', line 5 def initialize(expected_classes) @expected_classes = expected_classes @expected_argument_count = expected_classes.size end |
Instance Attribute Details
#message ⇒ Object (readonly)
Returns the value of attribute message.
3 4 5 |
# File 'lib/ruby_contracts/input_type.rb', line 3 def end |
Instance Method Details
#satisfied?(context, arguments, result = nil) ⇒ Boolean
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/ruby_contracts/input_type.rb', line 10 def satisfied?(context, arguments, result=nil) if !match_size?(arguments) = "the method expect #{@expected_argument_count} arguments when #{arguments.size} was given" false elsif unmatched = unmatched_type_from(arguments) i, arg, expected_klass = unmatched = "the method expect a kind of #{expected_klass} for argument ##{i} when a kind of #{arg.class} was given" false else true end end |