Module: Tests::Backend::Api::Interpolation

Instance Method Summary collapse

Instance Method Details

#interpolate(options) ⇒ Object



7
8
9
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 7

def interpolate(options)
  I18n.backend.translate('en', nil, options)
end

#test_interpolate_given_a_non_unicode_multibyte_value_hash_interpolates_into_a_string_with_the_same_encodingObject



60
61
62
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 60

def test_interpolate_given_a_non_unicode_multibyte_value_hash_interpolates_into_a_string_with_the_same_encoding
  assert_equal euc_jp('Hi ゆきひろ!'), interpolate(:default => 'Hi {{name}}!', :name => euc_jp('ゆきひろ'))
end

#test_interpolate_given_a_non_unicode_multibyte_value_hash_into_an_unicode_string_raises_encoding_compatibility_errorObject



70
71
72
73
74
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 70

def test_interpolate_given_a_non_unicode_multibyte_value_hash_into_an_unicode_string_raises_encoding_compatibility_error
  assert_raises(Encoding::CompatibilityError) do
    interpolate(:default => 'こんにちは、{{name}}さん!', :name => euc_jp('ゆきひろ'))
  end
end

#test_interpolate_given_a_string_containing_a_reserved_key_raises_reserved_interpolation_keyObject



77
78
79
80
81
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 77

def test_interpolate_given_a_string_containing_a_reserved_key_raises_reserved_interpolation_key
  assert_raises(I18n::ReservedInterpolationKey) { interpolate(:default => '{{default}}',   :foo => :bar) }
  assert_raises(I18n::ReservedInterpolationKey) { interpolate(:default => '{{scope}}',     :foo => :bar) }
  assert_raises(I18n::ReservedInterpolationKey) { interpolate(:default => '{{separator}}', :foo => :bar) }
end

#test_interpolate_given_a_unicode_value_hash_interpolates_into_unicode_stringObject



55
56
57
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 55

def test_interpolate_given_a_unicode_value_hash_interpolates_into_unicode_string
  assert_equal 'こんにちは、ゆきひろさん!', interpolate(:default => 'こんにちは、{{name}}さん!', :name => 'ゆきひろ')
end

#test_interpolate_given_a_unicode_value_hash_interpolates_to_the_stringObject



51
52
53
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 51

def test_interpolate_given_a_unicode_value_hash_interpolates_to_the_string
  assert_equal 'Hi ゆきひろ!', interpolate(:default => 'Hi {{name}}!', :name => 'ゆきひろ')
end

#test_interpolate_given_a_unicode_value_hash_into_a_non_unicode_multibyte_string_raises_encoding_compatibility_errorObject



64
65
66
67
68
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 64

def test_interpolate_given_a_unicode_value_hash_into_a_non_unicode_multibyte_string_raises_encoding_compatibility_error
  assert_raises(Encoding::CompatibilityError) do
    interpolate(:default => euc_jp('こんにちは、{{name}}さん!'), :name => 'ゆきひろ')
  end
end

#test_interpolate_given_a_value_hash_interpolates_into_unicode_stringObject



47
48
49
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 47

def test_interpolate_given_a_value_hash_interpolates_into_unicode_string
  assert_equal 'Häi David!', interpolate(:default => 'Häi {{name}}!', :name => 'David')
end

#test_interpolate_with_ruby_1_9_syntaxObject



43
44
45
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 43

def test_interpolate_with_ruby_1_9_syntax
  assert_equal 'Hi David!', interpolate(:default => 'Hi %{name}!', :name => 'David')
end

#test_interpolation_does_not_raise_missing_interpolation_argument_exceptions_for_escaped_variablesObject



37
38
39
40
41
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 37

def test_interpolation_does_not_raise_missing_interpolation_argument_exceptions_for_escaped_variables
  assert_nothing_raised(I18n::MissingInterpolationArgument) do
    assert_equal 'Barr {{foo}}', interpolate(:default => '{{bar}} \{{foo}}', :bar => 'Barr')
  end
end

#test_interpolation_given_a_lambda_as_a_value_it_calls_it_when_the_string_contains_the_keyObject



23
24
25
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 23

def test_interpolation_given_a_lambda_as_a_value_it_calls_it_when_the_string_contains_the_key
  assert_equal 'Hi David!', interpolate(:default => 'Hi {{name}}!', :name => lambda { 'David' })
end

#test_interpolation_given_a_lambda_as_a_value_it_does_not_call_it_when_the_string_does_not_contain_the_keyObject



27
28
29
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 27

def test_interpolation_given_a_lambda_as_a_value_it_does_not_call_it_when_the_string_does_not_contain_the_key
  assert_nothing_raised { interpolate(:default => 'Hi!', :name => lambda { raise 'fail' }) }
end

#test_interpolation_given_interpolation_values_but_missing_a_key_it_raises_a_missing_interpolation_argument_exceptionObject



31
32
33
34
35
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 31

def test_interpolation_given_interpolation_values_but_missing_a_key_it_raises_a_missing_interpolation_argument_exception
  assert_raises(I18n::MissingInterpolationArgument) do
    interpolate(:default => '{{foo}}', :bar => 'bar')
  end
end

#test_interpolation_given_interpolation_values_it_interpolates_the_values_to_the_stringObject



15
16
17
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 15

def test_interpolation_given_interpolation_values_it_interpolates_the_values_to_the_string
  assert_equal 'Hi David!', interpolate(:default => 'Hi {{name}}!', :name => 'David')
end

#test_interpolation_given_interpolation_values_with_nil_values_it_interpolates_the_values_to_the_stringObject



19
20
21
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 19

def test_interpolation_given_interpolation_values_with_nil_values_it_interpolates_the_values_to_the_string
  assert_equal 'Hi !', interpolate(:default => 'Hi {{name}}!', :name => nil)
end

#test_interpolation_given_no_interpolation_values_it_does_not_alter_the_stringObject



11
12
13
# File 'lib/vendor/i18n/test/api/interpolation.rb', line 11

def test_interpolation_given_no_interpolation_values_it_does_not_alter_the_string
  assert_equal 'Hi {{name}}!', interpolate(:default => 'Hi {{name}}!')
end