class Object
Constants
- Compliance
Backport old namespace
Public Instance Methods
boolean?(value)
click to toggle source
# File lib/matchers/matchers.rb, line 227 def boolean?(value) %w{true false}.include?(value.downcase) end
float?(value)
click to toggle source
# File lib/matchers/matchers.rb, line 216 def float?(value) Float(value) true rescue ArgumentError, TypeError false end
format_actual(actual)
click to toggle source
# File lib/matchers/matchers.rb, line 289 def format_actual(actual) actual = "0%o" % actual if octal?(@expected) && !actual.nil? "\n%s\n got: %s\n\n(compared using `cmp` matcher)\n" % [format_expectation(false), actual] end
format_expectation(negate)
click to toggle source
# File lib/matchers/matchers.rb, line 294 def format_expectation(negate) return "expected: %s" % [@expected] if @operation == :== && !negate negate_str = negate ? "not " : "" "expected it %sto be %s %p" % [negate_str, @operation, @expected] end
integer?(value)
click to toggle source
# File lib/matchers/matchers.rb, line 212 def integer?(value) !(value =~ /\A-?0+\Z|\A-?[1-9]\d*\Z/).nil? end
octal?(value)
click to toggle source
# File lib/matchers/matchers.rb, line 223 def octal?(value) value.is_a?(String) && (value =~ /\A0+[0-7]+\Z/) end
to_boolean(value)
click to toggle source
expects that the values have been checked with boolean?
# File lib/matchers/matchers.rb, line 239 def to_boolean(value) value.casecmp("true") == 0 end
try_match(actual, op, expected)
click to toggle source
# File lib/matchers/matchers.rb, line 243 def try_match(actual, op, expected) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize # if actual and expected are strings if expected.is_a?(String) && actual.is_a?(String) return actual.casecmp(expected) == 0 if op == :== return Gem::Version.new(actual).send(op, Gem::Version.new(expected)) if version?(expected) && version?(actual) elsif expected.is_a?(Regexp) && (actual.is_a?(String) || actual.is_a?(Integer)) return !actual.to_s.match(expected).nil? elsif expected.is_a?(String) && integer?(expected) && actual.is_a?(Integer) return actual.send(op, expected.to_i) elsif expected.is_a?(String) && boolean?(expected) && [true, false].include?(actual) return actual.send(op, to_boolean(expected)) elsif expected.is_a?(Integer) && actual.is_a?(String) && integer?(actual) return actual.to_i.send(op, expected) elsif expected.is_a?(Float) && float?(actual) return actual.to_f.send(op, expected) elsif actual.is_a?(Symbol) && expected.is_a?(String) return try_match(actual.to_s, op, expected) elsif octal?(expected) && actual.is_a?(Integer) return actual.send(op, expected.to_i(8)) end # fallback to simple operation actual.send(op, expected) rescue NameError => _ false rescue ArgumentError false end
version?(value)
click to toggle source
# File lib/matchers/matchers.rb, line 231 def version?(value) Gem::Version.new(value) true rescue ArgumentError => _ex false end