umlautify 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  module Umlautify
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/umlautify.rb CHANGED
@@ -1,14 +1,23 @@
1
- require "umlautify/version"
1
+ # Encoding: utf-8
2
+ require 'umlautify/version'
2
3
 
3
4
  module Umlautify
4
5
  class ::String
5
6
  def umlautify!
6
- umlaut_map = { "A" => "\u00C4", "E" => "\u00CB", "I" => "\u00CF",
7
- "O" => "\u00D6", "U" => "\u00DC", "Y" => "\u0178",
8
- "a" => "\u00E4", "e" => "\u00EB", "i" => "\u00EF",
9
- "o" => "\u00F6", "u" => "\u00FC", "y" => "\u00FF" }
10
- umlaut_map.each { |key, value| self.gsub!(key, value) }
11
- self
7
+ gsub!(/[aeiouyAEIOUY]/, umlaut_map)
12
8
  end
9
+
10
+ def umlautify
11
+ gsub(/[aeiouyAEIOUY]/, umlaut_map)
12
+ end
13
+
14
+ private
15
+
16
+ def umlaut_map
17
+ { 'A' => "\u00C4", 'E' => "\u00CB", 'I' => "\u00CF",
18
+ 'O' => "\u00D6", 'U' => "\u00DC", 'Y' => "\u0178",
19
+ 'a' => "\u00E4", 'e' => "\u00EB", 'i' => "\u00EF",
20
+ 'o' => "\u00F6", 'u' => "\u00FC", 'y' => "\u00FF" }
21
+ end
13
22
  end
14
23
  end
@@ -6,14 +6,37 @@ module Umlautify
6
6
  describe ".umlautify!" do
7
7
 
8
8
  it "should sprinkle band names with umlauts liberally" do
9
- String.new("Motorhead").umlautify!.should == "Mötörhëäd"
9
+ "Motorhead".umlautify!.should == "Mötörhëäd"
10
10
  end
11
11
 
12
- it "should handle all cases of vowels" do
13
- String.new("aeiouAEIOUyY").umlautify!.should == "äëïöüÄËÏÖÜÿŸ"
12
+ it "should handle all vowels" do
13
+ "aeiouAEIOUyY".umlautify!.should == "äëïöüÄËÏÖÜÿŸ"
14
+ end
15
+
16
+ it "should modify in place" do
17
+ first = "this_string"
18
+ second = first.umlautify!
19
+ second.should == "thïs_strïng" && first.should == "thïs_strïng"
14
20
  end
15
21
 
16
22
  end
23
+
24
+ describe ".umlautify" do
25
+
26
+ it "should sprinkle band names with umlauts liberally" do
27
+ "Motley Crue".umlautify.should == "Mötlëÿ Crüë"
28
+ end
29
+
30
+ it "should handle all vowels" do
31
+ "aeiouAEIOUyY".umlautify.should == "äëïöüÄËÏÖÜÿŸ"
32
+ end
33
+
34
+ it "shouldn't mutate" do
35
+ first = "this_string"
36
+ second = first.umlautify
37
+ second.should == "thïs_strïng" && first.should == "this_string"
38
+ end
39
+ end
17
40
  end
18
41
  end
19
42
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: umlautify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-23 00:00:00.000000000 Z
12
+ date: 2013-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -91,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
91
  version: '0'
92
92
  segments:
93
93
  - 0
94
- hash: 661762810474807150
94
+ hash: -3623908183622498923
95
95
  required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  version: '0'
101
101
  segments:
102
102
  - 0
103
- hash: 661762810474807150
103
+ hash: -3623908183622498923
104
104
  requirements: []
105
105
  rubyforge_project:
106
106
  rubygems_version: 1.8.24