viljushka 0.4.1 → 0.5.0
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.
- data/README.md +4 -2
- data/features/downcase.feature +8 -0
- data/features/upcase.feature +8 -0
- data/lib/viljushka/boc.rb +27 -16
- data/lib/viljushka/version.rb +1 -1
- data/lib/viljushka.rb +0 -13
- data/spec/viljushka_spec.rb +15 -5
- metadata +6 -7
- data/lib/viljushka/case_conversion.rb +0 -27
data/README.md
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
Character conversion from Latin alphabet to Serbian Cyrillic script
|
4
4
|
and vice versa
|
5
5
|
|
6
|
-
It adds **downcase** & **
|
7
|
-
Cyrillic case
|
6
|
+
It adds **downcase**, **upcase** & **capitalize** methods that
|
7
|
+
understand Serbian Cyrillic & Latin case
|
8
8
|
|
9
9
|
|
10
10
|
### Install
|
@@ -22,6 +22,8 @@ require 'viljushka'
|
|
22
22
|
"САРМА"
|
23
23
|
> "САРМА".downcase.po_gaju # or .to_lat
|
24
24
|
"sarma"
|
25
|
+
> "жирафа".capitalize
|
26
|
+
"Жирафа"
|
25
27
|
```
|
26
28
|
|
27
29
|
### Note
|
data/features/downcase.feature
CHANGED
data/features/upcase.feature
CHANGED
data/lib/viljushka/boc.rb
CHANGED
@@ -5,30 +5,41 @@ module Viljushka
|
|
5
5
|
Latin = %w(DJ Dj dj DŽ Dž dž LJ Lj lj NJ Nj nj A a B b V v G g D d Đ đ Ð ð E e Ž ž Z z I i J j K k L l M m N n O o P p R r S s T t Ć ć U u F f H h C c Č č Š š)
|
6
6
|
Cyrillic = %w(Ђ Ђ ђ Џ Џ џ Љ Љ љ Њ Њ њ А а Б б В в Г г Д д Ђ ђ Ђ ђ Е е Ж ж З з И и Ј ј К к Л л М м Н н О о П п Р р С с Т т Ћ ћ У у Ф ф Х х Ц ц Ч ч Ш ш)
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
alias_method :po_vuku, :to_cyr
|
8
|
+
Up = %w(Dž Ž Ć Č Š A B C D E F G H I J K L M N O P Q R S T U V W X Y Z А Б В Г Д Ђ Е Ж З И Ј К Л М Н Љ Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш)
|
9
|
+
Low = %w(dž ž ć č š a b c d e f g h i j k l m n o p q r s t u v w x y z а б в г д ђ е ж з и ј к л м н љ њ о п р с т ћ у ф х ц ч џ ш)
|
12
10
|
|
13
|
-
def
|
14
|
-
|
11
|
+
def method_missing(arg)
|
12
|
+
if arg.to_s =~ /(to_cyr|po_vuku)/
|
13
|
+
convert(self.dup, Latin, Cyrillic)
|
14
|
+
elsif arg.to_s =~ /(to_lat|po_gaju)/
|
15
|
+
convert(self.dup, Cyrillic, Latin)
|
16
|
+
elsif arg.to_s =~ /downcase/
|
17
|
+
convert(self.dup, Up, Low)
|
18
|
+
elsif arg.to_s =~ /upcase/
|
19
|
+
convert(self.dup, Low, Up)
|
20
|
+
elsif arg.to_s =~ /capitalize/
|
21
|
+
arr = self.scan(/./)
|
22
|
+
convert(arr.shift, Low, Up) + convert(arr.join, Up, Low)
|
23
|
+
else
|
24
|
+
super
|
25
|
+
end
|
15
26
|
end
|
16
|
-
alias_method :po_vuku!, :to_cyr!
|
17
27
|
|
18
|
-
|
19
|
-
Viljushka.convert(self.dup, Cyrillic, Latin)
|
20
|
-
end
|
21
|
-
alias_method :po_gaju, :to_lat
|
28
|
+
private
|
22
29
|
|
23
|
-
def
|
24
|
-
|
30
|
+
def convert(text, from, to)
|
31
|
+
from.each_with_index do |char, i|
|
32
|
+
text.gsub!(char, to[i])
|
33
|
+
end
|
34
|
+
text
|
25
35
|
end
|
26
|
-
alias_method :po_gaju!, :to_lat!
|
27
|
-
|
28
36
|
end
|
29
37
|
end
|
30
38
|
|
31
|
-
|
39
|
+
|
32
40
|
class String
|
41
|
+
remove_method(:downcase)
|
42
|
+
remove_method(:upcase)
|
43
|
+
remove_method(:capitalize)
|
33
44
|
include Viljushka::Boc
|
34
45
|
end
|
data/lib/viljushka/version.rb
CHANGED
data/lib/viljushka.rb
CHANGED
data/spec/viljushka_spec.rb
CHANGED
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe "Viljushka::Boc" do
|
6
6
|
|
7
7
|
context "#to_cyr!" do
|
8
|
-
|
8
|
+
pending "should change the original string" do
|
9
9
|
string = 'Milisav'
|
10
10
|
string.to_cyr!.should == 'Милисав'
|
11
11
|
string.should == 'Милисав'
|
@@ -23,7 +23,7 @@ describe "Viljushka::Boc" do
|
|
23
23
|
|
24
24
|
context "Вук Караџић" do
|
25
25
|
context "when using #po_vuku!" do
|
26
|
-
|
26
|
+
pending "should change the original string" do
|
27
27
|
string = 'Debelo jer'
|
28
28
|
string.to_cyr!.should == 'Дебело јер'
|
29
29
|
string.should == 'Дебело јер'
|
@@ -33,14 +33,14 @@ describe "Viljushka::Boc" do
|
|
33
33
|
context "when using #po_vuku" do
|
34
34
|
it "should not change the original string" do
|
35
35
|
string = 'Debelo jer'
|
36
|
-
string.
|
36
|
+
string.po_vuku.should == 'Дебело јер'
|
37
37
|
string.should == 'Debelo jer'
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
context "#to_lat!" do
|
43
|
-
|
43
|
+
pending "should change the original string" do
|
44
44
|
string = 'Руменка'
|
45
45
|
string.to_lat!.should == 'Rumenka'
|
46
46
|
string.should == 'Rumenka'
|
@@ -57,7 +57,7 @@ describe "Viljushka::Boc" do
|
|
57
57
|
|
58
58
|
context "Ljudevit Gaj" do
|
59
59
|
context "#po_gaju!" do
|
60
|
-
|
60
|
+
pending "should change the original string" do
|
61
61
|
string = 'дивно'
|
62
62
|
string.po_gaju!.should == 'divno'
|
63
63
|
string.should == 'divno'
|
@@ -77,4 +77,14 @@ describe "Viljushka::Boc" do
|
|
77
77
|
"čiča".to_cyr.should == 'чича'
|
78
78
|
end
|
79
79
|
|
80
|
+
context "#capitalize" do
|
81
|
+
it "should capitalize Cyrillic" do
|
82
|
+
"чича".capitalize.should == "Чича"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should capitalize Latin" do
|
86
|
+
"čiča".capitalize.should == "Čiča"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
80
90
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: viljushka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-19 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &17202628300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.0.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *17202628300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: cucumber
|
27
|
-
requirement: &
|
27
|
+
requirement: &17202680120 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.0.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *17202680120
|
36
36
|
description: Character conversion from Latin alphabet to Serbian Cyrillic script and
|
37
37
|
vice versa
|
38
38
|
email: asimic@gmail.com
|
@@ -56,7 +56,6 @@ files:
|
|
56
56
|
- features/upcase.feature
|
57
57
|
- lib/viljushka.rb
|
58
58
|
- lib/viljushka/boc.rb
|
59
|
-
- lib/viljushka/case_conversion.rb
|
60
59
|
- lib/viljushka/version.rb
|
61
60
|
- spec/downcase_spec.rb
|
62
61
|
- spec/spec_helper.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
module Viljushka
|
3
|
-
module CaseConversion
|
4
|
-
|
5
|
-
Up = %w(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш)
|
6
|
-
Low = %w(a b c d e f g h i j k l m n o p q r s t u v w x y z а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш)
|
7
|
-
|
8
|
-
def downcase_with_serbian_cyrillic
|
9
|
-
Viljushka.convert(self.dup, Up, Low)
|
10
|
-
end
|
11
|
-
|
12
|
-
alias_method :downcase, :downcase_with_serbian_cyrillic
|
13
|
-
|
14
|
-
def upcase_with_serbian_cyrillic
|
15
|
-
Viljushka.convert(self.dup, Low, Up)
|
16
|
-
end
|
17
|
-
|
18
|
-
alias_method :upcase, :upcase_with_serbian_cyrillic
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
class String
|
24
|
-
remove_method(:downcase)
|
25
|
-
remove_method(:upcase)
|
26
|
-
include Viljushka::CaseConversion
|
27
|
-
end
|