Class: RSpec::JsonMatchers::Expectations::Mixins::BuiltIn::ArrayWithSize

Inherits:
AnyOf show all
Defined in:
lib/rspec/json_matchers/expectations/mixins/built_in.rb

Overview

Note:

For behaviour of “and” (which should be a rare case) Combine AllOf & ArrayWithSize Or raise an issue to add support for switching to “and” with another method call

Takes any number of Integer or Range (if not already) Validates ‘value` to be Array And the size matches any value passed in

Direct Known Subclasses

Private::ArrayWithSize

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Core::CompositeExpectation

[]

Methods inherited from Core::CallableExpectation

[]

Methods inherited from RSpec::JsonMatchers::Expectation

build_many

Class Method Details

.build(value) ⇒ Object



174
175
176
177
178
179
180
181
182
# File 'lib/rspec/json_matchers/expectations/mixins/built_in.rb', line 174

def build(value)
  expectation_classes_mappings.fetch(value.class) do
    -> (_) { fail ArgumentError, <<-ERR }
      Expected expection(s) to be kind of
      #{expectation_classes_mappings.keys.inspect}
      but found #{value.inspect}
    ERR
  end.call(value)
end

Instance Method Details

#expect?(value) ⇒ Boolean

Returns:

  • (Boolean)


192
193
194
195
# File 'lib/rspec/json_matchers/expectations/mixins/built_in.rb', line 192

def expect?(value)
  value.is_a?(Array) &&
    super(value.size)
end