aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/env/spec_helper.rb
blob: 470ffa58bc247e0e59af53315bcbe2b6d7f569f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require_relative '../../spec_helper'

locale_env_matcher = Class.new do
  def initialize(name = 'locale')
    encoding = Encoding.find(name)
    @encodings = (encoding = Encoding::US_ASCII) ?
                   [encoding, Encoding::ASCII_8BIT] : [encoding]
  end

  def matches?(actual)
    @actual = actual = actual.encoding
    @encodings.include?(actual)
  end

  def failure_message
    ["Expected #{@actual} to be #{@encodings.join(' or ')}"]
  end

  def negative_failure_message
    ["Expected #{@actual} not to be #{@encodings.join(' or ')}"]
  end
end

String.__send__(:define_method, :be_locale_env) do |expected = 'locale'|
  locale_env_matcher.new(expected)
end