ruby-nuggets 0.0.1.126

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,143 @@
1
+ #--
2
+ ###############################################################################
3
+ # #
4
+ # A component of ruby-nuggets, some extensions to the Ruby programming #
5
+ # language. #
6
+ # #
7
+ # Copyright (C) 2007 Jens Wille #
8
+ # #
9
+ # Authors: #
10
+ # Jens Wille <jens.wille@uni-koeln.de> #
11
+ # #
12
+ # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
+ # under the terms of the GNU General Public License as published by the Free #
14
+ # Software Foundation; either version 3 of the License, or (at your option) #
15
+ # any later version. #
16
+ # #
17
+ # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
20
+ # more details. #
21
+ # #
22
+ # You should have received a copy of the GNU General Public License along #
23
+ # with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
+ # #
25
+ ###############################################################################
26
+ #++
27
+
28
+ module Util
29
+
30
+ module I18n
31
+
32
+ DIACRITICS = {
33
+ "À" => "A", # LATIN CAPITAL LETTER A WITH GRAVE
34
+ "Á" => "A", # LATIN CAPITAL LETTER A WITH ACUTE
35
+ "Â" => "A", # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
36
+ "Ã" => "A", # LATIN CAPITAL LETTER A WITH TILDE
37
+ "Ä" => "AE", # LATIN CAPITAL LETTER A WITH DIAERESIS
38
+ "Å" => "A", # LATIN CAPITAL LETTER A WITH RING ABOVE
39
+ "Æ" => "AE", # LATIN CAPITAL LETTER AE
40
+ "Ç" => "C", # LATIN CAPITAL LETTER C WITH CEDILLA
41
+ "È" => "E", # LATIN CAPITAL LETTER E WITH GRAVE
42
+ "É" => "E", # LATIN CAPITAL LETTER E WITH ACUTE
43
+ "Ê" => "E", # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
44
+ "Ë" => "E", # LATIN CAPITAL LETTER E WITH DIAERESIS
45
+ "Ì" => "I", # LATIN CAPITAL LETTER I WITH GRAVE
46
+ "Í" => "I", # LATIN CAPITAL LETTER I WITH ACUTE
47
+ "Î" => "I", # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
48
+ "Ï" => "I", # LATIN CAPITAL LETTER I WITH DIAERESIS
49
+ "Ð" => "DH", # LATIN CAPITAL LETTER ETH
50
+ "Ñ" => "N", # LATIN CAPITAL LETTER N WITH TILDE
51
+ "Ò" => "O", # LATIN CAPITAL LETTER O WITH GRAVE
52
+ "Ó" => "O", # LATIN CAPITAL LETTER O WITH ACUTE
53
+ "Ô" => "O", # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
54
+ "Õ" => "O", # LATIN CAPITAL LETTER O WITH TILDE
55
+ "Ö" => "OE", # LATIN CAPITAL LETTER O WITH DIAERESIS
56
+ "Ø" => "O", # LATIN CAPITAL LETTER O WITH STROKE
57
+ "Ù" => "U", # LATIN CAPITAL LETTER U WITH GRAVE
58
+ "Ú" => "U", # LATIN CAPITAL LETTER U WITH ACUTE
59
+ "Û" => "U", # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
60
+ "Ü" => "UE", # LATIN CAPITAL LETTER U WITH DIAERESIS
61
+ "Ý" => "Y", # LATIN CAPITAL LETTER Y WITH ACUTE
62
+ "Þ" => "TH", # LATIN CAPITAL LETTER THORN
63
+ "ß" => "ss", # LATIN SMALL LETTER SHARP S
64
+ "à" => "a", # LATIN SMALL LETTER A WITH GRAVE
65
+ "á" => "a", # LATIN SMALL LETTER A WITH ACUTE
66
+ "â" => "a", # LATIN SMALL LETTER A WITH CIRCUMFLEX
67
+ "ã" => "a", # LATIN SMALL LETTER A WITH TILDE
68
+ "ä" => "ae", # LATIN SMALL LETTER A WITH DIAERESIS
69
+ "å" => "a", # LATIN SMALL LETTER A WITH RING ABOVE
70
+ "æ" => "ae", # LATIN SMALL LETTER AE
71
+ "ç" => "c", # LATIN SMALL LETTER C WITH CEDILLA
72
+ "è" => "e", # LATIN SMALL LETTER E WITH GRAVE
73
+ "é" => "e", # LATIN SMALL LETTER E WITH ACUTE
74
+ "ê" => "e", # LATIN SMALL LETTER E WITH CIRCUMFLEX
75
+ "ë" => "e", # LATIN SMALL LETTER E WITH DIAERESIS
76
+ "ì" => "i", # LATIN SMALL LETTER I WITH GRAVE
77
+ "í" => "i", # LATIN SMALL LETTER I WITH ACUTE
78
+ "î" => "i", # LATIN SMALL LETTER I WITH CIRCUMFLEX
79
+ "ï" => "i", # LATIN SMALL LETTER I WITH DIAERESIS
80
+ "ð" => "dh", # LATIN SMALL LETTER ETH
81
+ "ñ" => "n", # LATIN SMALL LETTER N WITH TILDE
82
+ "ò" => "o", # LATIN SMALL LETTER O WITH GRAVE
83
+ "ó" => "o", # LATIN SMALL LETTER O WITH ACUTE
84
+ "ô" => "o", # LATIN SMALL LETTER O WITH CIRCUMFLEX
85
+ "õ" => "o", # LATIN SMALL LETTER O WITH TILDE
86
+ "ö" => "oe", # LATIN SMALL LETTER O WITH DIAERESIS
87
+ "ø" => "o", # LATIN SMALL LETTER O WITH STROKE
88
+ "ù" => "u", # LATIN SMALL LETTER U WITH GRAVE
89
+ "ú" => "u", # LATIN SMALL LETTER U WITH ACUTE
90
+ "û" => "u", # LATIN SMALL LETTER U WITH CIRCUMFLEX
91
+ "ü" => "ue", # LATIN SMALL LETTER U WITH DIAERESIS
92
+ "ý" => "y", # LATIN SMALL LETTER Y WITH ACUTE
93
+ "þ" => "th", # LATIN SMALL LETTER THORN
94
+ "ÿ" => "y" # LATIN SMALL LETTER Y WITH DIAERESIS
95
+ }
96
+
97
+ end
98
+
99
+ end
100
+
101
+ class String
102
+
103
+ # call-seq:
104
+ # str.replace_diacritics => new_str
105
+ #
106
+ # Substitutes any diacritics in _str_ with their replacements as per
107
+ # Util::I18n::DIACRITICS.
108
+ def replace_diacritics
109
+ dup.replace_diacritics! || dup
110
+ end
111
+
112
+ # call-seq:
113
+ # str.replace_diacritics! => str or nil
114
+ #
115
+ # Destructive version of #replace_diacritics.
116
+ def replace_diacritics!
117
+ gsub!(/#{Regexp.union(*Util::I18n::DIACRITICS.keys)}/) { |m|
118
+ s = Util::I18n::DIACRITICS[m]
119
+
120
+ # Try to adjust case:
121
+ # 'Äh' => 'AEh' => 'Aeh'
122
+ #
123
+ # But:
124
+ # 'SÖS' => 'SOES' (not 'SOeS'!)
125
+ if s.length > 1
126
+ t = $'[0..0]
127
+ s[1..-1] = s[1..-1].downcase if t == t.downcase
128
+ end
129
+
130
+ s
131
+ }
132
+ end
133
+
134
+ end
135
+
136
+ if $0 == __FILE__
137
+ s = 'Äh, Rüby iß sö cüül, nö? SÖS!'
138
+ p s
139
+ p s.replace_diacritics
140
+
141
+ s.replace_diacritics!
142
+ p s
143
+ end
@@ -0,0 +1,27 @@
1
+ module Nuggets
2
+
3
+ module Version
4
+
5
+ MAJOR = 0
6
+ MINOR = 0
7
+ TINY = 1
8
+
9
+ class << self
10
+
11
+ # Returns array representation.
12
+ def to_a
13
+ [MAJOR, MINOR, TINY]
14
+ end
15
+
16
+ # Short-cut for version string.
17
+ def to_s
18
+ to_a.join('.')
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ VERSION = Version.to_s
26
+
27
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: ruby-nuggets
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.1.126
7
+ date: 2007-12-05 00:00:00 +01:00
8
+ summary: Some extensions to the Ruby programming language
9
+ require_paths:
10
+ - lib
11
+ email: jens.wille@uni-koeln.de
12
+ homepage:
13
+ rubyforge_project:
14
+ description:
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Jens Wille
31
+ files:
32
+ - lib/nuggets/version.rb
33
+ - lib/nuggets/object/singleton_class.rb
34
+ - lib/nuggets/object/blank.rb
35
+ - lib/nuggets/all.rb
36
+ - lib/nuggets/string/msub.rb
37
+ - lib/nuggets/string/case.rb
38
+ - lib/nuggets/string/evaluate.rb
39
+ - lib/nuggets/string/word_wrap.rb
40
+ - lib/nuggets/string/nsub.rb
41
+ - lib/nuggets/hash/insert.rb
42
+ - lib/nuggets/array/rand.rb
43
+ - lib/nuggets/array/to_hash.rb
44
+ - lib/nuggets/array/flatten_once.rb
45
+ - lib/nuggets/array/in_order.rb
46
+ - lib/nuggets/array/shuffle.rb
47
+ - lib/nuggets/array/monotone.rb
48
+ - lib/nuggets/array/format.rb
49
+ - lib/nuggets/array/combination.rb
50
+ - lib/nuggets/util/i18n.rb
51
+ - COPYING
52
+ - HEADER
53
+ - README
54
+ - ChangeLog
55
+ - Rakefile
56
+ test_files: []
57
+
58
+ rdoc_options: []
59
+
60
+ extra_rdoc_files:
61
+ - README
62
+ - COPYING
63
+ - ChangeLog
64
+ executables: []
65
+
66
+ extensions: []
67
+
68
+ requirements: []
69
+
70
+ dependencies: []
71
+