diacritics 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 900204c7d54154241404e0e7a53e0dd0e2a27f2a
4
- data.tar.gz: b1bf104411b8ceae95c445a85f5a8c589307ad4d
3
+ metadata.gz: 301e7f416e2300e377191605ba087260b4e98a53
4
+ data.tar.gz: 3d2500bf7a4258b6f7f18ff2841d07a58d3e1554
5
5
  SHA512:
6
- metadata.gz: 7fb9ad4389ca32ccec7c55d6eec830161e32bab8264718d3a6494dfc1adddec387d335031c0600a108468a99a5e9fd70c2bf0bed368e074dd458470b2de9955a
7
- data.tar.gz: 48d93db86a66c5dc7622c67493ece4462f05f9c657f3ce10e590f8a737aa5931aa9b9ed5d9c188885c9f65dbf3220c6afc34ebeaaeff651f09b80ece3baf493b
6
+ metadata.gz: 2e7348fdbf03aa2cfb746757a2ae8e1be7e01f7da1665566aa9b30036e2bb63fdffced87e951c2fd89b2458e54e8a8da390326691c6ccca9149e390ac9cdcde4
7
+ data.tar.gz: 8979c04576485499c28c843947636a78a4a0d6924250af89aaf1c8bc73279c84f85a002e1c8a4f8a4c04bee5c56760b02a4b75862a5a84b1512c6aab9c629ac0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
1
  ## v0.0.1
2
2
 
3
3
  * initial release
4
+
5
+ ## v0.0.2
6
+
7
+ * simpler way to use downcase, upcase and permanent in String class
data/Gemfile CHANGED
@@ -10,4 +10,5 @@ group :development, :test do
10
10
  gem 'guard'
11
11
  gem 'guard-bundler'
12
12
  gem 'guard-rspec'
13
+ gem 'simplecov', require: false
13
14
  end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Diacritics [![Gem Version](https://badge.fury.io/rb/diacritics.png)](http://badge.fury.io/rb/diacritics) [![Build Status](https://travis-ci.org/fractalsoft/diacritics.png)](https://travis-ci.org/fractalsoft/diacritics) [![Dependency Status](https://gemnasium.com/fractalsoft/diacritics.png)](https://gemnasium.com/fractalsoft/diacritics) [![Coverage Status](https://coveralls.io/repos/fractalsoft/diacritics/badge.png)](https://coveralls.io/r/fractalsoft/diacritics)
1
+ # Diacritics [![Gem Version](https://badge.fury.io/rb/diacritics.png)](http://badge.fury.io/rb/diacritics) [![Build Status](https://travis-ci.org/fractalsoft/diacritics.png)](https://travis-ci.org/fractalsoft/diacritics) [![Dependency Status](https://gemnasium.com/fractalsoft/diacritics.png)](https://gemnasium.com/fractalsoft/diacritics) [![Coverage Status](https://coveralls.io/repos/fractalsoft/diacritics/badge.png)](https://coveralls.io/r/fractalsoft/diacritics) [![Stories in Ready](https://badge.waffle.io/fractalsoft/diacritics.png)](http://waffle.io/fractalsoft/diacritics)
2
2
  [![endorse](https://api.coderwall.com/torrocus/endorsecount.png)](https://coderwall.com/torrocus)
3
3
 
4
4
  Diacritics is a gem which support downcase, upcase and permanent link with diacritical characters.
@@ -28,17 +28,17 @@ Diacritics::permanent(text)
28
28
  You can include methods into String class:
29
29
 
30
30
  ```ruby
31
- class String
32
- include Diacritics::String
33
- end
31
+ String.send(:include, Diacritics::String)
34
32
  ```
35
33
 
36
34
  and use
37
35
 
38
36
  ```ruby
39
- string.diacritics_downcase
40
- string.diacritics_upcase
41
- string.permanent_link
37
+ text = "Lorem ipsum"
38
+
39
+ text.diacritics
40
+ text.diacritics
41
+ text.permanent
42
42
  ```
43
43
 
44
44
  ## Contributing
data/TODO.md ADDED
@@ -0,0 +1,7 @@
1
+ ## Examples containing:
2
+
3
+ * Czech [Ď, Ě, Ň, Ť, Ů, Ú, Û]
4
+ * French [Œ, Ÿ, Î, Ï]
5
+ * Portugal [Â]
6
+ * Russian [Щ, Ъ, Э]
7
+ * Greek [Β, Μ, Χ, Ω, Ή, Ύ, Ώ, ΐ, ΰ, Ϊ, Ϋ]
data/diacritics.gemspec CHANGED
@@ -7,9 +7,9 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "diacritics"
8
8
  spec.version = Diacritics::VERSION
9
9
  spec.authors = ["Aleksander Malaszkiewicz"]
10
- spec.email = ["alek@fractalsoft.org"]
10
+ spec.email = ["info@fractalsoft.org"]
11
11
  spec.summary = %q{Support diacritics}
12
- spec.homepage = ""
12
+ spec.homepage = "https://github.com/fractalsoft/diacritics"
13
13
  spec.license = "MIT"
14
14
 
15
15
  spec.files = `git ls-files`.split($/)
data/lib/diacritics.rb CHANGED
@@ -1,7 +1,4 @@
1
- require "diacritics/alphabet"
2
- require "diacritics/cases"
3
- require "diacritics/string"
4
- require "diacritics/version"
5
-
6
- module Diacritics
7
- end
1
+ require 'diacritics/alphabet'
2
+ require 'diacritics/cases'
3
+ require 'diacritics/string'
4
+ require 'diacritics/version'
@@ -1,6 +1,10 @@
1
1
  # encoding: utf-8
2
+
3
+ # Diacritics private class
2
4
  module Diacritics
5
+
3
6
  private
7
+
4
8
  # Characters from many alphabets
5
9
  class Alphabet
6
10
  attr_reader :regexp, :hash
@@ -12,6 +16,7 @@ module Diacritics
12
16
  end
13
17
 
14
18
  private
19
+
15
20
  def prepare_alphabet
16
21
  data.each_pair do |language, hash|
17
22
  @downcase += hash[:downcase]
@@ -53,84 +58,124 @@ module Diacritics
53
58
 
54
59
  def data
55
60
  {
56
- en: { # English
57
- downcase: [' ', '?', '.', ','],
58
- upcase: [' ', '?', '.', ','],
59
- permanent: ['-', '', '', ''],
60
- },
61
- de: { # German
62
- downcase: %w[ä ö ü ß],
63
- upcase: %w[Ä Ö Ü ẞ],
64
- permanent: %w[ae oe ue ss]
65
- },
66
- pl: { # Polish
67
- downcase: %w[ą ć ę ł ń ó ś ż ź],
68
- upcase: %w[Ą Ć Ę Ł Ń Ó Ś Ż Ź],
69
- permanent: %w[a c e l n o s z z]
70
- },
71
- cs: { # Czech [Ď, Ě, Ň, Ť, Ů, Ú, Û]
61
+ en: en, de: de, pl: pl, cs: cs, fr: fr, it: it, eo: eo,
62
+ is: is, pt: pt, sp: sp, hu: hu, nn: nn, ru: ru, gr: gr
63
+ }
64
+ end
65
+
66
+ def en
67
+ { # English
68
+ downcase: [' ', '?', '.', ','],
69
+ upcase: [' ', '?', '.', ','],
70
+ permanent: ['-', '', '', ''],
71
+ }
72
+ end
73
+
74
+ def de
75
+ { # German
76
+ downcase: %w[ä ö ü ß],
77
+ upcase: %w[Ä Ö Ü ẞ],
78
+ permanent: %w[ae oe ue ss]
79
+ }
80
+ end
81
+
82
+ def pl
83
+ { # Polish
84
+ downcase: %w[ą ć ę ł ń ó ś ż ź],
85
+ upcase: %w[Ą Ć Ę Ł Ń Ó Ś Ż Ź],
86
+ permanent: %w[a c e l n o s z z]
87
+ }
88
+ end
89
+
90
+ def cs
91
+ { # Czech
72
92
  downcase: %w[á č í ř š ý ž],
73
93
  upcase: %w[Á Č Í Ř Š Ý Ž],
74
94
  permanent: %w[a c i r s y z]
75
- },
76
- fr: { # French [Œ, Ÿ, Î, Ï]
77
- downcase: %w[à é è ê ô],
78
- upcase: %w[À É È Ê Ô],
79
- permanent: %w[a e e e o]
80
- },
81
- it: { # Italian
82
- downcase: %w[ì ù ò],
83
- upcase: %w[Ì Ù Ò],
84
- permanent: %w[i u o]
85
- },
86
- eo: { # Esperanto
87
- downcase: %w[ĉ ĝ ĥ ĵ ŝ ŭ],
88
- upcase: %w[Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ],
89
- permanent: %w[c g h j s u]
90
- },
91
- is: { # Iceland
92
- downcase: %w[ð þ],
93
- upcase: %w[Ð Þ],
94
- permanent: %w[d p]
95
- },
96
- pt: { # Portugal ]
97
- downcase: %w[ã ç],
98
- upcase: %w[Ã Ç],
99
- permanent: %w[a c]
100
- },
101
- sp: { # Spanish
102
- downcase: ['¿'],
103
- upcase: ['¿'],
104
- permanent: ['']
105
- },
106
- hu: { # Hungarian
107
- downcase: %w[ő],
108
- upcase: %w[Ő],
109
- permanent: %w[oe]
110
- },
111
- nn: { # Norwegian
112
- downcase: %w[æ å],
113
- upcase: %w[Æ Å],
114
- permanent: %w[ae a]
115
- },
116
- ru: { # Russian [Щ, Ъ, Э]
117
- downcase: %w[
118
- а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш ы ь ю я
119
- ],
120
- upcase: %w[
121
- А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ы Ь Ю Я
122
- ],
123
- permanent: %w[
124
- а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш ы ь ю я
125
- ]
126
- },
127
- gr: { # Greek [Β, Μ, Χ, Ω, Ή, Ύ, Ώ, ΐ, ΰ, Ϊ, Ϋ]
128
- downcase: %w[α ά γ δ ε έ ζ η θ ι ί κ λ μ ν ξ ο ό π ρ σ τ υ φ ψ],
129
- upcase: %w[Α Ά Γ Δ Ε Έ Ζ Η Θ Ι Ί Κ Λ Μ Ν Ξ Ο Ό Π Ρ Σ Τ Υ Φ Ψ],
130
- permanent: %w[
131
- a a g d e e z e th i i k l m n x o o p r s t y ph ps
132
- ]
133
- }
95
+ }
96
+ end
97
+
98
+ def fr
99
+ { # French
100
+ downcase: %w[à é è ê ô],
101
+ upcase: %w[À É È Ê Ô],
102
+ permanent: %w[a e e e o]
103
+ }
104
+ end
105
+
106
+ def it
107
+ { # Italian
108
+ downcase: %w[ì ù ò],
109
+ upcase: %w[Ì Ù Ò],
110
+ permanent: %w[i u o]
111
+ }
112
+ end
113
+
114
+ def eo
115
+ { # Esperanto
116
+ downcase: %w[ĉ ĝ ĥ ĵ ŝ ŭ],
117
+ upcase: %w[Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ],
118
+ permanent: %w[c g h j s u]
119
+ }
120
+ end
121
+
122
+ def is
123
+ { # Iceland
124
+ downcase: %w[ð þ],
125
+ upcase: %w[Ð Þ],
126
+ permanent: %w[d p]
127
+ }
128
+ end
129
+
130
+ def pt
131
+ { # Portugal
132
+ downcase: %w[ã ç],
133
+ upcase: %w[Ã Ç],
134
+ permanent: %w[a c]
135
+ }
136
+ end
137
+
138
+ def sp
139
+ { # Spanish
140
+ downcase: ['¿'],
141
+ upcase: ['¿'],
142
+ permanent: ['']
143
+ }
144
+ end
145
+
146
+ def hu
147
+ { # Hungarian
148
+ downcase: %w[ő],
149
+ upcase: %w[Ő],
150
+ permanent: %w[oe]
151
+ }
152
+ end
153
+
154
+ def nn
155
+ { # Norwegian
156
+ downcase: %w[æ å],
157
+ upcase: %w[Æ Å],
158
+ permanent: %w[ae a]
159
+ }
160
+ end
161
+
162
+ def ru
163
+ { # Russian
164
+ downcase: %w[
165
+ а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш ы ь ю я],
166
+ upcase: %w[
167
+ А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ы Ь Ю Я],
168
+ permanent: %w[
169
+ а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш ы ь ю я]
170
+ }
171
+ end
172
+
173
+ def gr
174
+ { # Greek
175
+ downcase: %w[α ά γ δ ε έ ζ η θ ι ί κ λ μ ν ξ ο ό π ρ σ τ υ φ ψ],
176
+ upcase: %w[Α Ά Γ Δ Ε Έ Ζ Η Θ Ι Ί Κ Λ Μ Ν Ξ Ο Ό Π Ρ Σ Τ Υ Φ Ψ],
177
+ permanent: %w[
178
+ a a g d e e z e th i i k l m n x o o p r s t y ph ps]
134
179
  }
135
180
  end
136
181
  end
@@ -1,4 +1,12 @@
1
1
  # encoding: utf-8
2
+
3
+ # String core class
4
+ class String
5
+ alias_method :old_downcase, :downcase
6
+ alias_method :old_upcase, :upcase
7
+ end
8
+
9
+ # Diacritics classes
2
10
  module Diacritics
3
11
  # Downcase or upcase with diacritics support
4
12
  class Cases
@@ -12,15 +20,15 @@ module Diacritics
12
20
  end
13
21
 
14
22
  def downcase(text)
15
- text.downcase.gsub @regexp[:downcase], @hash[:downcase]
23
+ text.old_downcase.gsub @regexp[:downcase], @hash[:downcase]
16
24
  end
17
25
 
18
26
  def upcase(text)
19
- text.upcase.gsub @regexp[:upcase], @hash[:upcase]
27
+ text.old_upcase.gsub @regexp[:upcase], @hash[:upcase]
20
28
  end
21
29
 
22
30
  def permanent(text)
23
- text.downcase.gsub @regexp[:permanent], @hash[:permanent]
31
+ text.old_downcase.gsub @regexp[:permanent], @hash[:permanent]
24
32
  end
25
33
  end
26
34
  end
@@ -1,20 +1,38 @@
1
1
  # encoding: utf-8
2
- class String
3
- alias_method :old_downcase, :downcase
4
- alias_method :old_upcase, :upcase
5
- end
6
-
7
2
  module Diacritics
3
+ # Include this into String class
8
4
  module String
5
+ # @deprecated Please use {#downcase} instead.
9
6
  def diacritics_downcase
10
- Diacritics::Cases.instance.downcase self
7
+ warn '[DEPRECATION] `diacritics_downcase` is depraceted. Please use `downcase` instead.'
8
+ send :downcase
11
9
  end
12
10
 
11
+ # @deprecated Please use {#upcase} instead.
13
12
  def diacritics_upcase
14
- Diacritics::Cases.instance.upcase self
13
+ warn '[DEPRECATION] `diacritics_upcase` is depraceted. Please use `upcase` instead.'
14
+ send :upcase
15
15
  end
16
16
 
17
+ # @deprecated Please use {#permanent} instead.
17
18
  def permanent_link
19
+ warn '[DEPRECATION] `permanent_link` is depraceted. Please use `permanent` instead.'
20
+ send :permanent
21
+ end
22
+
23
+ def self.included(klass)
24
+ klass.class_eval do
25
+ def downcase
26
+ Diacritics::Cases.instance.downcase self
27
+ end
28
+
29
+ def upcase
30
+ Diacritics::Cases.instance.upcase self
31
+ end
32
+ end
33
+ end
34
+
35
+ def permanent
18
36
  Diacritics::Cases.instance.permanent self
19
37
  end
20
38
  end
@@ -1,3 +1,4 @@
1
+ # Gem version
1
2
  module Diacritics
2
- VERSION = "0.0.1"
3
+ VERSION = '0.0.2'
3
4
  end
@@ -2,253 +2,4 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Diacritics::Cases do
5
- context "#downcase, #upcase, #permanent" do
6
- subject { Diacritics::Cases.instance }
7
-
8
- [
9
- { # English
10
- text: "Will will Will will Will's will to Will?",
11
- lower: "will will will will will's will to will?",
12
- upper: "WILL WILL WILL WILL WILL'S WILL TO WILL?",
13
- permanent: "will-will-will-will-will's-will-to-will"
14
- },
15
- { # German
16
- text: "Acht alte Ameisen aßen am Abend Ananas.",
17
- lower: "acht alte ameisen aßen am abend ananas.",
18
- upper: "ACHT ALTE AMEISEN AẞEN AM ABEND ANANAS.",
19
- permanent: "acht-alte-ameisen-assen-am-abend-ananas",
20
- },
21
- { # German
22
- text: "Hämmer Hämmer? Hämmer hämmer.",
23
- lower: "hämmer hämmer? hämmer hämmer.",
24
- upper: "HÄMMER HÄMMER? HÄMMER HÄMMER.",
25
- permanent: "haemmer-haemmer-haemmer-haemmer",
26
- },
27
- { # German
28
- text: "Fünf Ferkel fressen frisches Futter.",
29
- lower: "fünf ferkel fressen frisches futter.",
30
- upper: "FÜNF FERKEL FRESSEN FRISCHES FUTTER.",
31
- permanent: "fuenf-ferkel-fressen-frisches-futter",
32
- },
33
- {
34
- text: "Ödögidöggi",
35
- lower: "ödögidöggi",
36
- upper: "ÖDÖGIDÖGGI",
37
- permanent: "oedoegidoeggi",
38
- },
39
- { # Polish
40
- text: "Ćma ćmę ćmi.",
41
- lower: "ćma ćmę ćmi.",
42
- upper: "ĆMA ĆMĘ ĆMI.",
43
- permanent: "cma-cme-cmi",
44
- },
45
- { # Polish
46
- text: "Żubr żuł żuchwą żurawinę.",
47
- lower: "żubr żuł żuchwą żurawinę.",
48
- upper: "ŻUBR ŻUŁ ŻUCHWĄ ŻURAWINĘ.",
49
- permanent: "zubr-zul-zuchwa-zurawine",
50
- },
51
- { # Polish
52
- text: "Pchnąć w tę łódź jeża lub ośm skrzyń fig.",
53
- lower: "pchnąć w tę łódź jeża lub ośm skrzyń fig.",
54
- upper: "PCHNĄĆ W TĘ ŁÓDŹ JEŻA LUB OŚM SKRZYŃ FIG.",
55
- permanent: "pchnac-w-te-lodz-jeza-lub-osm-skrzyn-fig",
56
- },
57
- { # Czech
58
- text: "Čistý s Čistou čistili činčilový čepec.",
59
- lower: "čistý s čistou čistili činčilový čepec.",
60
- upper: "ČISTÝ S ČISTOU ČISTILI ČINČILOVÝ ČEPEC.",
61
- permanent: "cisty-s-cistou-cistili-cincilovy-cepec",
62
- },
63
- { # Czech
64
- text: "Řekni řeřicha.",
65
- lower: "řekni řeřicha.",
66
- upper: "ŘEKNI ŘEŘICHA.",
67
- permanent: "rekni-rericha",
68
- },
69
- { # Polish
70
- text: "Zażółć gęślą jaźń",
71
- lower: "zażółć gęślą jaźń",
72
- upper: "ZAŻÓŁĆ GĘŚLĄ JAŹŃ",
73
- permanent: "zazolc-gesla-jazn",
74
- },
75
- {
76
- text: "À l’époque de la conquête de la Gaule par les armées",
77
- lower: "à l’époque de la conquête de la gaule par les armées",
78
- upper: "À L’ÉPOQUE DE LA CONQUÊTE DE LA GAULE PAR LES ARMÉES",
79
- permanent: "a-l’epoque-de-la-conquete-de-la-gaule-par-les-armees",
80
- },
81
- {
82
- text: "Zalyžařivší si lyžař potkal nezalyžařivšího si lyžaře.",
83
- lower: "zalyžařivší si lyžař potkal nezalyžařivšího si lyžaře.",
84
- upper: "ZALYŽAŘIVŠÍ SI LYŽAŘ POTKAL NEZALYŽAŘIVŠÍHO SI LYŽAŘE.",
85
- permanent: "zalyzarivsi-si-lyzar-potkal-nezalyzarivsiho-si-lyzare",
86
- },
87
- {
88
- text: "Náš pan kaplan v kapli plakal.",
89
- lower: "náš pan kaplan v kapli plakal.",
90
- upper: "NÁŠ PAN KAPLAN V KAPLI PLAKAL.",
91
- permanent: "nas-pan-kaplan-v-kapli-plakal",
92
- },
93
- {
94
- text: "¿Quién lo desenladrillará?",
95
- lower: "¿quién lo desenladrillará?",
96
- upper: "¿QUIÉN LO DESENLADRILLARÁ?",
97
- permanent: "quien-lo-desenladrillara",
98
- },
99
- {
100
- text: "clavó un clavito Pablito.",
101
- lower: "clavó un clavito pablito.",
102
- upper: "CLAVÓ UN CLAVITO PABLITO.",
103
- permanent: "clavo-un-clavito-pablito",
104
- },
105
- {
106
- text: "In Perù però perì.",
107
- lower: "in perù però perì.",
108
- upper: "IN PERÙ PERÒ PERÌ.",
109
- permanent: "in-peru-pero-peri",
110
- },
111
- {
112
- text: "Ĉu ŝi ĉiam ĉe ĉio ruĝiĝas?",
113
- lower: "ĉu ŝi ĉiam ĉe ĉio ruĝiĝas?",
114
- upper: "ĈU ŜI ĈIAM ĈE ĈIO RUĜIĜAS?",
115
- permanent: "cu-si-ciam-ce-cio-rugigas",
116
- },
117
- {
118
- text: "Eĥoŝanĝo ĉiu-ĵaŭde.",
119
- lower: "eĥoŝanĝo ĉiu-ĵaŭde.",
120
- upper: "EĤOŜANĜO ĈIU-ĴAŬDE.",
121
- permanent: "ehosango-ciu-jaude",
122
- },
123
- {
124
- text: "Árni á Á á á á beit (við á).",
125
- lower: "árni á á á á á beit (við á).",
126
- upper: "ÁRNI Á Á Á Á Á BEIT (VIÐ Á).",
127
- permanent: "arni-a-a-a-a-a-beit-(vid-a)",
128
- },
129
- {
130
- text: "Það fer að verða verra ferðaveðrið",
131
- lower: "það fer að verða verra ferðaveðrið",
132
- upper: "ÞAÐ FER AÐ VERÐA VERRA FERÐAVEÐRIÐ",
133
- permanent: "pad-fer-ad-verda-verra-ferdavedrid",
134
- },
135
- {
136
- text: "Четыре чёрненьких чумазеньких чертёнка",
137
- lower: "четыре чёрненьких чумазеньких чертёнка",
138
- upper: "ЧЕТЫРЕ ЧЁРНЕНЬКИХ ЧУМАЗЕНЬКИХ ЧЕРТЁНКА",
139
- permanent: "четыре-чёрненьких-чумазеньких-чертёнка",
140
- },
141
- {
142
- text: "чертили чёрными чернилами чертёж.",
143
- lower: "чертили чёрными чернилами чертёж.",
144
- upper: "ЧЕРТИЛИ ЧЁРНЫМИ ЧЕРНИЛАМИ ЧЕРТЁЖ.",
145
- permanent: "чертили-чёрными-чернилами-чертёж",
146
- },
147
- {
148
- text: "Чайные чашки в печали, скучая, бренча закричали.",
149
- lower: "чайные чашки в печали, скучая, бренча закричали.",
150
- upper: "ЧАЙНЫЕ ЧАШКИ В ПЕЧАЛИ, СКУЧАЯ, БРЕНЧА ЗАКРИЧАЛИ.",
151
- permanent: "чайные-чашки-в-печали-скучая-бренча-закричали",
152
- },
153
- {
154
- text: "Недопереквалифицировавшийся.",
155
- lower: "недопереквалифицировавшийся.",
156
- upper: "НЕДОПЕРЕКВАЛИФИЦИРОВАВШИЙСЯ.",
157
- permanent: "недопереквалифицировавшийся",
158
- },
159
- {
160
- text: "Как в капюшоне он смешон",
161
- lower: "как в капюшоне он смешон",
162
- upper: "КАК В КАПЮШОНЕ ОН СМЕШОН",
163
- permanent: "как-в-капюшоне-он-смешон",
164
- },
165
- {
166
- text: "Стоит гора посреди двора.",
167
- lower: "стоит гора посреди двора.",
168
- upper: "СТОИТ ГОРА ПОСРЕДИ ДВОРА.",
169
- permanent: "стоит-гора-посреди-двора",
170
- },
171
- {
172
- text: "Μια τίγρη με τρία τιγράκια.",
173
- lower: "μια τίγρη με τρία τιγράκια.",
174
- upper: "ΜΙΑ ΤΊΓΡΗ ΜΕ ΤΡΊΑ ΤΙΓΡΆΚΙΑ.",
175
- permanent: "mia-tigre-me-tria-tigrakia",
176
- },
177
- {
178
- text: "Το ξίδι του Ξέρξη ξίδιασε",
179
- lower: "το ξίδι του ξέρξη ξίδιασε",
180
- upper: "ΤΟ ΞΊΔΙ ΤΟΥ ΞΈΡΞΗ ΞΊΔΙΑΣΕ",
181
- permanent: "to-xidi-toy-xerxe-xidiase",
182
- },
183
- {
184
- text: "Πίτα σπανακόπιτα σπανακολαδοφραγκοσυκοπαντζαροκολοκυθόπιτα.",
185
- lower: "πίτα σπανακόπιτα σπανακολαδοφραγκοσυκοπαντζαροκολοκυθόπιτα.",
186
- upper: "ΠΊΤΑ ΣΠΑΝΑΚΌΠΙΤΑ ΣΠΑΝΑΚΟΛΑΔΟΦΡΑΓΚΟΣΥΚΟΠΑΝΤΖΑΡΟΚΟΛΟΚΥΘΌΠΙΤΑ.",
187
- permanent:
188
- "pita-spanakopita-spanakoladophragkosykopantzarokolokythopita",
189
- },
190
- {
191
- text: "Κοράλι ψιλοκόραλο και ψιλοκοραλάκι.",
192
- lower: "κοράλι ψιλοκόραλο και ψιλοκοραλάκι.",
193
- upper: "ΚΟΡΆΛΙ ΨΙΛΟΚΌΡΑΛΟ ΚΑΙ ΨΙΛΟΚΟΡΑΛΆΚΙ.",
194
- permanent: "korali-psilokoralo-kai-psilokoralaki",
195
- },
196
- {
197
- text: "É muito socó para um socó só coçar.",
198
- lower: "é muito socó para um socó só coçar.",
199
- upper: "É MUITO SOCÓ PARA UM SOCÓ SÓ COÇAR.",
200
- permanent: "e-muito-soco-para-um-soco-so-cocar",
201
- },
202
- {
203
- text: "Mon père est maire, mon frère est masseur.",
204
- lower: "mon père est maire, mon frère est masseur.",
205
- upper: "MON PÈRE EST MAIRE, MON FRÈRE EST MASSEUR.",
206
- permanent: "mon-pere-est-maire-mon-frere-est-masseur",
207
- },
208
- {
209
- text: "Se não percebeste,",
210
- lower: "se não percebeste,",
211
- upper: "SE NÃO PERCEBESTE,",
212
- permanent: "se-nao-percebeste",
213
- },
214
- {
215
- text: "rôt tenta chat",
216
- lower: "rôt tenta chat",
217
- upper: "RÔT TENTA CHAT",
218
- permanent: "rot-tenta-chat",
219
- },
220
- {
221
- text: "Nyelvtörők",
222
- lower: "nyelvtörők",
223
- upper: "NYELVTÖRŐK",
224
- permanent: "nyelvtoeroek",
225
- },
226
- {
227
- text: "Ein hælv kælv låg i elva og flaut på ein sælapinne.",
228
- lower: "ein hælv kælv låg i elva og flaut på ein sælapinne.",
229
- upper: "EIN HÆLV KÆLV LÅG I ELVA OG FLAUT PÅ EIN SÆLAPINNE.",
230
- permanent: "ein-haelv-kaelv-lag-i-elva-og-flaut-pa-ein-saelapinne",
231
- },
232
- # {
233
- # text: "",
234
- # lower: "",
235
- # upper: "",
236
- # permanent: "",
237
- # },
238
- ].each do |item|
239
- text, lower, upper, permanent = item.values
240
-
241
- it "change '#{text}' to lowercase" do
242
- subject.downcase(text).should eq(lower)
243
- end
244
-
245
- it "change '#{text}' to uppercase" do
246
- subject.upcase(text).should eq(upper)
247
- end
248
-
249
- it "change '#{text}' to permanent" do
250
- subject.permanent(text).should eq(permanent)
251
- end
252
- end
253
- end
254
5
  end
@@ -2,34 +2,301 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Diacritics::String do
5
- class String
6
- include Diacritics::String
5
+ String.send(:include, Diacritics::String)
6
+
7
+ context 'English' do
8
+ subject { "Will will Will will Will's will to Will?" }
9
+ its(:downcase) { should eq "will will will will will's will to will?" }
10
+ its(:upcase) { should eq "WILL WILL WILL WILL WILL'S WILL TO WILL?" }
11
+ its(:permanent) { should eq "will-will-will-will-will's-will-to-will" }
12
+ end
13
+
14
+ context 'German' do
15
+ subject { 'Acht alte Ameisen aßen am Abend Ananas.' }
16
+ its(:downcase) { should eq 'acht alte ameisen aßen am abend ananas.' }
17
+ its(:upcase) { should eq 'ACHT ALTE AMEISEN AẞEN AM ABEND ANANAS.' }
18
+ its(:permanent) { should eq 'acht-alte-ameisen-assen-am-abend-ananas' }
19
+ end
20
+
21
+ context 'German' do
22
+ subject { 'Hämmer Hämmer? Hämmer hämmer.' }
23
+ its(:downcase) { should eq 'hämmer hämmer? hämmer hämmer.' }
24
+ its(:upcase) { should eq 'HÄMMER HÄMMER? HÄMMER HÄMMER.' }
25
+ its(:permanent) { should eq 'haemmer-haemmer-haemmer-haemmer' }
26
+ end
27
+
28
+ context 'German' do
29
+ subject { 'Fünf Ferkel fressen frisches Futter.' }
30
+ its(:downcase) { should eq 'fünf ferkel fressen frisches futter.' }
31
+ its(:upcase) { should eq 'FÜNF FERKEL FRESSEN FRISCHES FUTTER.' }
32
+ its(:permanent) { should eq 'fuenf-ferkel-fressen-frisches-futter' }
33
+ end
34
+
35
+ context 'German' do
36
+ subject { 'Ödögidöggi' }
37
+ its(:downcase) { should eq 'ödögidöggi' }
38
+ its(:upcase) { should eq 'ÖDÖGIDÖGGI' }
39
+ its(:permanent) { should eq 'oedoegidoeggi' }
40
+ end
41
+
42
+ context 'Polish' do
43
+ subject { 'Ćma ćmę ćmi.' }
44
+ its(:downcase) { should eq 'ćma ćmę ćmi.' }
45
+ its(:upcase) { should eq 'ĆMA ĆMĘ ĆMI.' }
46
+ its(:permanent) { should eq 'cma-cme-cmi' }
47
+ end
48
+
49
+ context 'Polish' do
50
+ subject { 'Żubr żuł żuchwą żurawinę.' }
51
+ its(:downcase) { should eq 'żubr żuł żuchwą żurawinę.' }
52
+ its(:upcase) { should eq 'ŻUBR ŻUŁ ŻUCHWĄ ŻURAWINĘ.' }
53
+ its(:permanent) { should eq 'zubr-zul-zuchwa-zurawine' }
54
+ end
55
+
56
+ context 'Polish' do
57
+ subject { 'Pchnąć w tę łódź jeża lub ośm skrzyń fig.' }
58
+ its(:downcase) { should eq 'pchnąć w tę łódź jeża lub ośm skrzyń fig.' }
59
+ its(:upcase) { should eq 'PCHNĄĆ W TĘ ŁÓDŹ JEŻA LUB OŚM SKRZYŃ FIG.' }
60
+ its(:permanent) { should eq 'pchnac-w-te-lodz-jeza-lub-osm-skrzyn-fig' }
61
+ end
62
+
63
+ context 'Czech' do
64
+ subject { 'Čistý s Čistou čistili činčilový čepec.' }
65
+ its(:downcase) { should eq 'čistý s čistou čistili činčilový čepec.' }
66
+ its(:upcase) { should eq 'ČISTÝ S ČISTOU ČISTILI ČINČILOVÝ ČEPEC.' }
67
+ its(:permanent) { should eq 'cisty-s-cistou-cistili-cincilovy-cepec' }
68
+ end
69
+
70
+ context 'Czech' do
71
+ subject { 'Řekni řeřicha.' }
72
+ its(:downcase) { should eq 'řekni řeřicha.' }
73
+ its(:upcase) { should eq 'ŘEKNI ŘEŘICHA.' }
74
+ its(:permanent) { should eq 'rekni-rericha' }
75
+ end
76
+
77
+ context 'Polish' do
78
+ subject { 'Zażółć gęślą jaźń' }
79
+ its(:downcase) { should eq 'zażółć gęślą jaźń' }
80
+ its(:upcase) { should eq 'ZAŻÓŁĆ GĘŚLĄ JAŹŃ' }
81
+ its(:permanent) { should eq 'zazolc-gesla-jazn' }
82
+ end
83
+
84
+ context do
85
+ subject { 'À l’époque de la conquête de la Gaule par les armées' }
86
+ its(:downcase) do
87
+ should eq 'à l’époque de la conquête de la gaule par les armées'
88
+ end
89
+ its(:upcase) do
90
+ should eq 'À L’ÉPOQUE DE LA CONQUÊTE DE LA GAULE PAR LES ARMÉES'
91
+ end
92
+ its(:permanent) do
93
+ should eq 'a-l’epoque-de-la-conquete-de-la-gaule-par-les-armees'
94
+ end
95
+ end
96
+
97
+ context do
98
+ subject { 'Zalyžařivší si lyžař potkal nezalyžařivšího si lyžaře.' }
99
+ its(:downcase) do
100
+ should eq 'zalyžařivší si lyžař potkal nezalyžařivšího si lyžaře.'
101
+ end
102
+ its(:upcase) do
103
+ should eq 'ZALYŽAŘIVŠÍ SI LYŽAŘ POTKAL NEZALYŽAŘIVŠÍHO SI LYŽAŘE.'
104
+ end
105
+ its(:permanent) do
106
+ should eq 'zalyzarivsi-si-lyzar-potkal-nezalyzarivsiho-si-lyzare'
107
+ end
108
+ end
109
+
110
+ context do
111
+ subject { 'Náš pan kaplan v kapli plakal.' }
112
+ its(:downcase) { should eq 'náš pan kaplan v kapli plakal.' }
113
+ its(:upcase) { should eq 'NÁŠ PAN KAPLAN V KAPLI PLAKAL.' }
114
+ its(:permanent) { should eq 'nas-pan-kaplan-v-kapli-plakal' }
115
+ end
116
+
117
+ context do
118
+ subject { '¿Quién lo desenladrillará?' }
119
+ its(:downcase) { should eq '¿quién lo desenladrillará?' }
120
+ its(:upcase) { should eq '¿QUIÉN LO DESENLADRILLARÁ?' }
121
+ its(:permanent) { should eq 'quien-lo-desenladrillara' }
122
+ end
123
+
124
+ context do
125
+ subject { 'clavó un clavito Pablito.' }
126
+ its(:downcase) { should eq 'clavó un clavito pablito.' }
127
+ its(:upcase) { should eq 'CLAVÓ UN CLAVITO PABLITO.' }
128
+ its(:permanent) { should eq 'clavo-un-clavito-pablito' }
129
+ end
130
+
131
+ context do
132
+ subject { 'In Perù però perì.' }
133
+ its(:downcase) { should eq 'in perù però perì.' }
134
+ its(:upcase) { should eq 'IN PERÙ PERÒ PERÌ.' }
135
+ its(:permanent) { should eq 'in-peru-pero-peri' }
7
136
  end
8
137
 
9
- context "#diacritics_downcase" do
10
- it "downcase String with diacritics" do
11
- string = "ŁoreM Ìpsum Ðolór. Šit Ämet"
12
- result = "łorem ìpsum ðolór. šit ämet"
138
+ context do
139
+ subject { 'Ĉu ŝi ĉiam ĉe ĉio ruĝiĝas?' }
140
+ its(:downcase) { should eq 'ĉu ŝi ĉiam ĉe ĉio ruĝiĝas?' }
141
+ its(:upcase) { should eq 'ĈU ŜI ĈIAM ĈE ĈIO RUĜIĜAS?' }
142
+ its(:permanent) { should eq 'cu-si-ciam-ce-cio-rugigas' }
143
+ end
144
+
145
+ context do
146
+ subject { 'Eĥoŝanĝo ĉiu-ĵaŭde.' }
147
+ its(:downcase) { should eq 'eĥoŝanĝo ĉiu-ĵaŭde.' }
148
+ its(:upcase) { should eq 'EĤOŜANĜO ĈIU-ĴAŬDE.' }
149
+ its(:permanent) { should eq 'ehosango-ciu-jaude' }
150
+ end
151
+
152
+ context do
153
+ subject { 'Árni á Á á á á beit (við á).' }
154
+ its(:downcase) { should eq 'árni á á á á á beit (við á).' }
155
+ its(:upcase) { should eq 'ÁRNI Á Á Á Á Á BEIT (VIÐ Á).' }
156
+ its(:permanent) { should eq 'arni-a-a-a-a-a-beit-(vid-a)' }
157
+ end
158
+
159
+ context do
160
+ subject { 'Það fer að verða verra ferðaveðrið' }
161
+ its(:downcase) { should eq 'það fer að verða verra ferðaveðrið' }
162
+ its(:upcase) { should eq 'ÞAÐ FER AÐ VERÐA VERRA FERÐAVEÐRIÐ' }
163
+ its(:permanent) { should eq 'pad-fer-ad-verda-verra-ferdavedrid' }
164
+ end
165
+
166
+ context do
167
+ subject { 'Четыре чёрненьких чумазеньких чертёнка' }
168
+ its(:downcase) { should eq 'четыре чёрненьких чумазеньких чертёнка' }
169
+ its(:upcase) { should eq 'ЧЕТЫРЕ ЧЁРНЕНЬКИХ ЧУМАЗЕНЬКИХ ЧЕРТЁНКА' }
170
+ its(:permanent) { should eq 'четыре-чёрненьких-чумазеньких-чертёнка' }
171
+ end
172
+
173
+ context do
174
+ subject { 'чертили чёрными чернилами чертёж.' }
175
+ its(:downcase) { should eq 'чертили чёрными чернилами чертёж.' }
176
+ its(:upcase) { should eq 'ЧЕРТИЛИ ЧЁРНЫМИ ЧЕРНИЛАМИ ЧЕРТЁЖ.' }
177
+ its(:permanent) { should eq 'чертили-чёрными-чернилами-чертёж' }
178
+ end
13
179
 
14
- string.diacritics_downcase.should eq(result)
180
+ context do
181
+ subject { 'Чайные чашки в печали, скучая, бренча закричали.' }
182
+ its(:downcase) do
183
+ should eq 'чайные чашки в печали, скучая, бренча закричали.'
184
+ end
185
+ its(:upcase) do
186
+ should eq 'ЧАЙНЫЕ ЧАШКИ В ПЕЧАЛИ, СКУЧАЯ, БРЕНЧА ЗАКРИЧАЛИ.'
187
+ end
188
+ its(:permanent) do
189
+ should eq 'чайные-чашки-в-печали-скучая-бренча-закричали'
15
190
  end
16
191
  end
17
192
 
18
- context "#diacritics_upcase" do
19
- it "upcase String with diacritics" do
20
- string = "łorem ìpsum ðolÓr. šit ämet"
21
- result = "ŁOREM ÌPSUM ÐOLÓR. ŠIT ÄMET"
193
+ context do
194
+ subject { 'Недопереквалифицировавшийся.' }
195
+ its(:downcase) { should eq 'недопереквалифицировавшийся.' }
196
+ its(:upcase) { should eq 'НЕДОПЕРЕКВАЛИФИЦИРОВАВШИЙСЯ.' }
197
+ its(:permanent) { should eq 'недопереквалифицировавшийся' }
198
+ end
199
+
200
+ context do
201
+ subject { 'Как в капюшоне он смешон' }
202
+ its(:downcase) { should eq 'как в капюшоне он смешон' }
203
+ its(:upcase) { should eq 'КАК В КАПЮШОНЕ ОН СМЕШОН' }
204
+ its(:permanent) { should eq 'как-в-капюшоне-он-смешон' }
205
+ end
206
+
207
+ context do
208
+ subject { 'Стоит гора посреди двора.' }
209
+ its(:downcase) { should eq 'стоит гора посреди двора.' }
210
+ its(:upcase) { should eq 'СТОИТ ГОРА ПОСРЕДИ ДВОРА.' }
211
+ its(:permanent) { should eq 'стоит-гора-посреди-двора' }
212
+ end
213
+
214
+ context do
215
+ subject { 'Μια τίγρη με τρία τιγράκια.' }
216
+ its(:downcase) { should eq 'μια τίγρη με τρία τιγράκια.' }
217
+ its(:upcase) { should eq 'ΜΙΑ ΤΊΓΡΗ ΜΕ ΤΡΊΑ ΤΙΓΡΆΚΙΑ.' }
218
+ its(:permanent) { should eq 'mia-tigre-me-tria-tigrakia' }
219
+ end
22
220
 
23
- string.diacritics_upcase.should eq(result)
221
+ context do
222
+ subject { 'Μια τίγρη με τρία τιγράκια.' }
223
+ its(:downcase) { should eq 'μια τίγρη με τρία τιγράκια.' }
224
+ its(:upcase) { should eq 'ΜΙΑ ΤΊΓΡΗ ΜΕ ΤΡΊΑ ΤΙΓΡΆΚΙΑ.' }
225
+ its(:permanent) { should eq 'mia-tigre-me-tria-tigrakia' }
226
+ end
227
+
228
+ context do
229
+ subject { 'Το ξίδι του Ξέρξη ξίδιασε' }
230
+ its(:downcase) { should eq 'το ξίδι του ξέρξη ξίδιασε' }
231
+ its(:upcase) { should eq 'ΤΟ ΞΊΔΙ ΤΟΥ ΞΈΡΞΗ ΞΊΔΙΑΣΕ' }
232
+ its(:permanent) { should eq 'to-xidi-toy-xerxe-xidiase' }
233
+ end
234
+
235
+ context do
236
+ subject { 'Πίτα σπανακόπιτα σπανακολαδοφραγκοσυκοπαντζαροκολοκυθόπιτα.' }
237
+ its(:downcase) do
238
+ should eq 'πίτα σπανακόπιτα σπανακολαδοφραγκοσυκοπαντζαροκολοκυθόπιτα.'
239
+ end
240
+ its(:upcase) do
241
+ should eq 'ΠΊΤΑ ΣΠΑΝΑΚΌΠΙΤΑ ΣΠΑΝΑΚΟΛΑΔΟΦΡΑΓΚΟΣΥΚΟΠΑΝΤΖΑΡΟΚΟΛΟΚΥΘΌΠΙΤΑ.'
242
+ end
243
+ its(:permanent) do
244
+ should eq 'pita-spanakopita-spanakoladophragkosykopantzarokolokythopita'
24
245
  end
25
246
  end
26
247
 
27
- context "#permanent_link" do
28
- it "permanent String with diacritics" do
29
- string = "Łorem ìpsum ÐolÓr. Šit ämet"
30
- result = "lorem-ipsum-dolor-sit-aemet"
248
+ context do
249
+ subject { 'Κοράλι ψιλοκόραλο και ψιλοκοραλάκι.' }
250
+ its(:downcase) { should eq 'κοράλι ψιλοκόραλο και ψιλοκοραλάκι.' }
251
+ its(:upcase) { should eq 'ΚΟΡΆΛΙ ΨΙΛΟΚΌΡΑΛΟ ΚΑΙ ΨΙΛΟΚΟΡΑΛΆΚΙ.' }
252
+ its(:permanent) { should eq 'korali-psilokoralo-kai-psilokoralaki' }
253
+ end
31
254
 
32
- string.permanent_link.should eq(result)
255
+ context do
256
+ subject { 'É muito socó para um socó só coçar.' }
257
+ its(:downcase) { should eq 'é muito socó para um socó só coçar.' }
258
+ its(:upcase) { should eq 'É MUITO SOCÓ PARA UM SOCÓ SÓ COÇAR.' }
259
+ its(:permanent) { should eq 'e-muito-soco-para-um-soco-so-cocar' }
260
+ end
261
+
262
+ context do
263
+ subject { 'Mon père est maire, mon frère est masseur.' }
264
+ its(:downcase) { should eq 'mon père est maire, mon frère est masseur.' }
265
+ its(:upcase) { should eq 'MON PÈRE EST MAIRE, MON FRÈRE EST MASSEUR.' }
266
+ its(:permanent) { should eq 'mon-pere-est-maire-mon-frere-est-masseur' }
267
+ end
268
+
269
+ context do
270
+ subject { 'Se não percebeste,' }
271
+ its(:downcase) { should eq 'se não percebeste,' }
272
+ its(:upcase) { should eq 'SE NÃO PERCEBESTE,' }
273
+ its(:permanent) { should eq 'se-nao-percebeste' }
274
+ end
275
+
276
+ context do
277
+ subject { 'rôt tenta chat' }
278
+ its(:downcase) { should eq 'rôt tenta chat' }
279
+ its(:upcase) { should eq 'RÔT TENTA CHAT' }
280
+ its(:permanent) { should eq 'rot-tenta-chat' }
281
+ end
282
+
283
+ context do
284
+ subject { 'Nyelvtörők' }
285
+ its(:downcase) { should eq 'nyelvtörők' }
286
+ its(:upcase) { should eq 'NYELVTÖRŐK' }
287
+ its(:permanent) { should eq 'nyelvtoeroek' }
288
+ end
289
+
290
+ context do
291
+ subject { 'Ein hælv kælv låg i elva og flaut på ein sælapinne.' }
292
+ its(:downcase) do
293
+ should eq 'ein hælv kælv låg i elva og flaut på ein sælapinne.'
294
+ end
295
+ its(:upcase) do
296
+ should eq 'EIN HÆLV KÆLV LÅG I ELVA OG FLAUT PÅ EIN SÆLAPINNE.'
297
+ end
298
+ its(:permanent) do
299
+ should eq 'ein-haelv-kaelv-lag-i-elva-og-flaut-pa-ein-saelapinne'
33
300
  end
34
301
  end
35
- end
302
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,8 @@
1
1
  require 'diacritics'
2
+ require 'coveralls'
3
+ # Coveralls.wear!
4
+ require 'simplecov'
5
+ SimpleCov.start
2
6
 
3
7
  RSpec.configure do |config|
4
8
  config.treat_symbols_as_metadata_keys_with_true_values = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diacritics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksander Malaszkiewicz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-16 00:00:00.000000000 Z
11
+ date: 2013-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '0'
41
41
  description:
42
42
  email:
43
- - alek@fractalsoft.org
43
+ - info@fractalsoft.org
44
44
  executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
@@ -56,6 +56,7 @@ files:
56
56
  - LICENSE.txt
57
57
  - README.md
58
58
  - Rakefile
59
+ - TODO.md
59
60
  - diacritics.gemspec
60
61
  - lib/diacritics.rb
61
62
  - lib/diacritics/alphabet.rb
@@ -66,7 +67,7 @@ files:
66
67
  - spec/diacritics/cases_spec.rb
67
68
  - spec/diacritics/string_spec.rb
68
69
  - spec/spec_helper.rb
69
- homepage: ''
70
+ homepage: https://github.com/fractalsoft/diacritics
70
71
  licenses:
71
72
  - MIT
72
73
  metadata: {}