wtf_lang 0.3.1 → 0.4.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/.gitignore +18 -0
- data/.travis.yml +4 -0
- data/Gemfile +8 -10
- data/LICENSE.txt +20 -20
- data/README.md +56 -54
- data/Rakefile +11 -59
- data/cassettes/translation_api.yml +151 -0
- data/lib/wtf_lang.rb +3 -3
- data/lib/wtf_lang/api.rb +42 -35
- data/lib/wtf_lang/core_ext/extension.rb +35 -34
- data/lib/wtf_lang/core_ext/string.rb +6 -6
- data/lib/wtf_lang/core_ext/symbol.rb +6 -6
- data/lib/wtf_lang/language.rb +20 -25
- data/lib/wtf_lang/languages.rb +107 -107
- data/lib/wtf_lang/version.rb +2 -9
- data/test/test_helper.rb +12 -0
- data/test/wtf_lang_test.rb +59 -0
- data/wtf_lang.gemspec +19 -71
- metadata +20 -76
- data/.document +0 -5
- data/Gemfile.lock +0 -24
- data/test/helper.rb +0 -18
- data/test/test_wtf_lang.rb +0 -46
@@ -1,34 +1,35 @@
|
|
1
|
-
module WtfLang
|
2
|
-
module Extension
|
3
|
-
|
4
|
-
require "wtf_lang/api"
|
5
|
-
require "wtf_lang/languages"
|
6
|
-
|
7
|
-
def detect_lang
|
8
|
-
@detected_lang ||= WtfLang::API.detect self
|
9
|
-
end
|
10
|
-
|
11
|
-
def lang
|
12
|
-
detect_lang.lang
|
13
|
-
end
|
14
|
-
|
15
|
-
def full_lang
|
16
|
-
detect_lang.full_lang
|
17
|
-
end
|
18
|
-
|
19
|
-
def lang_confidence
|
20
|
-
detect_lang.lang_confidence
|
21
|
-
end
|
22
|
-
|
23
|
-
WtfLang::LANGUAGES.each do |full_lang_name, code_lang_name|
|
24
|
-
self.class_eval <<-RUBY
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
1
|
+
module WtfLang
|
2
|
+
module Extension
|
3
|
+
|
4
|
+
require "wtf_lang/api"
|
5
|
+
require "wtf_lang/languages"
|
6
|
+
|
7
|
+
def detect_lang
|
8
|
+
@detected_lang ||= WtfLang::API.detect self
|
9
|
+
end
|
10
|
+
|
11
|
+
def lang
|
12
|
+
detect_lang && detect_lang.lang
|
13
|
+
end
|
14
|
+
|
15
|
+
def full_lang
|
16
|
+
detect_lang && detect_lang.full_lang
|
17
|
+
end
|
18
|
+
|
19
|
+
def lang_confidence
|
20
|
+
detect_lang && detect_lang.lang_confidence
|
21
|
+
end
|
22
|
+
|
23
|
+
WtfLang::LANGUAGES.each do |full_lang_name, code_lang_name|
|
24
|
+
self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
25
|
+
def #{code_lang_name}?
|
26
|
+
lang && lang == "#{code_lang_name}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def #{full_lang_name}?
|
30
|
+
full_lang && full_lang == "#{full_lang_name}"
|
31
|
+
end
|
32
|
+
RUBY
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
require 'wtf_lang/core_ext/extension'
|
3
|
-
|
4
|
-
class String
|
5
|
-
include WtfLang::Extension
|
6
|
-
end
|
1
|
+
#encoding: utf-8
|
2
|
+
require 'wtf_lang/core_ext/extension'
|
3
|
+
|
4
|
+
class String
|
5
|
+
include WtfLang::Extension
|
6
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
require 'wtf_lang/core_ext/extension'
|
3
|
-
|
4
|
-
class Symbol
|
5
|
-
include WtfLang::Extension
|
6
|
-
end
|
1
|
+
#encoding: utf-8
|
2
|
+
require 'wtf_lang/core_ext/extension'
|
3
|
+
|
4
|
+
class Symbol
|
5
|
+
include WtfLang::Extension
|
6
|
+
end
|
data/lib/wtf_lang/language.rb
CHANGED
@@ -1,25 +1,20 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
|
3
|
-
module WtfLang
|
4
|
-
class Language
|
5
|
-
attr_reader :lang, :confidence
|
6
|
-
|
7
|
-
def initialize(lang, confidence)
|
8
|
-
@lang = lang
|
9
|
-
@confidence = confidence
|
10
|
-
end
|
11
|
-
|
12
|
-
def full_lang
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
[lang, confidence]
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
module WtfLang
|
4
|
+
class Language
|
5
|
+
attr_reader :lang, :confidence
|
6
|
+
|
7
|
+
def initialize(lang, confidence)
|
8
|
+
@lang = lang
|
9
|
+
@confidence = confidence
|
10
|
+
end
|
11
|
+
|
12
|
+
def full_lang
|
13
|
+
LANGUAGES.key(lang)
|
14
|
+
end
|
15
|
+
|
16
|
+
def lang_confidence
|
17
|
+
[lang, confidence]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/wtf_lang/languages.rb
CHANGED
@@ -1,107 +1,107 @@
|
|
1
|
-
module WtfLang
|
2
|
-
LANGUAGES = {
|
3
|
-
'afrikaans' => 'af',
|
4
|
-
'albanian' => 'sq',
|
5
|
-
'amharic' => 'am',
|
6
|
-
'arabic' => 'ar',
|
7
|
-
'armenian' => 'hy',
|
8
|
-
'azerbaijani' => 'az',
|
9
|
-
'basque' => 'eu',
|
10
|
-
'belarusian' => 'be',
|
11
|
-
'bengali' => 'bn',
|
12
|
-
'bihari' => 'bh',
|
13
|
-
'breton' => 'br',
|
14
|
-
'bulgarian' => 'bg',
|
15
|
-
'burmese' => 'my',
|
16
|
-
'catalan' => 'ca',
|
17
|
-
'cherokee' => 'chr',
|
18
|
-
'chinese' => 'zh',
|
19
|
-
'corsican' => 'co',
|
20
|
-
'croatian' => 'hr',
|
21
|
-
'czech' => 'cs',
|
22
|
-
'danish' => 'da',
|
23
|
-
'dhivehi' => 'dv',
|
24
|
-
'dutch'=> 'nl',
|
25
|
-
'english' => 'en',
|
26
|
-
'esperanto' => 'eo',
|
27
|
-
'estonian' => 'et',
|
28
|
-
'faroese' => 'fo',
|
29
|
-
'filipino' => 'tl',
|
30
|
-
'finnish' => 'fi',
|
31
|
-
'french' => 'fr',
|
32
|
-
'frisian' => 'fy',
|
33
|
-
'galician' => 'gl',
|
34
|
-
'georgian' => 'ka',
|
35
|
-
'german' => 'de',
|
36
|
-
'greek' => 'el',
|
37
|
-
'gujarati' => 'gu',
|
38
|
-
'haitian_creole' => 'ht',
|
39
|
-
'hebrew' => 'iw',
|
40
|
-
'hindi' => 'hi',
|
41
|
-
'hungarian' => 'hu',
|
42
|
-
'icelandic' => 'is',
|
43
|
-
'indonesian' => 'id',
|
44
|
-
'inuktitut' => 'iu',
|
45
|
-
'irish' => 'ga',
|
46
|
-
'italian' => 'it',
|
47
|
-
'japanese' => 'ja',
|
48
|
-
'javanese' => 'jw',
|
49
|
-
'kannada' => 'kn',
|
50
|
-
'kazakh' => 'kk',
|
51
|
-
'khmer' => 'km',
|
52
|
-
'korean' => 'ko',
|
53
|
-
'kurdish'=> 'ku',
|
54
|
-
'kyrgyz'=> 'ky',
|
55
|
-
'lao' => 'lo',
|
56
|
-
'latin' => 'la',
|
57
|
-
'latvian' => 'lv',
|
58
|
-
'lithuanian' => 'lt',
|
59
|
-
'luxembourgish' => 'lb',
|
60
|
-
'macedonian' => 'mk',
|
61
|
-
'malay' => 'ms',
|
62
|
-
'malayalam' => 'ml',
|
63
|
-
'maltese' => 'mt',
|
64
|
-
'maori' => 'mi',
|
65
|
-
'marathi' => 'mr',
|
66
|
-
'mongolian' => 'mn',
|
67
|
-
'nepali' => 'ne',
|
68
|
-
'norwegian' => 'no',
|
69
|
-
'occitan' => 'oc',
|
70
|
-
'pashto' => 'ps',
|
71
|
-
'persian' => 'fa',
|
72
|
-
'polish' => 'pl',
|
73
|
-
'portuguese' => 'pt',
|
74
|
-
'punjabi' => 'pa',
|
75
|
-
'quechua' => 'qu',
|
76
|
-
'romanian' => 'ro',
|
77
|
-
'russian' => 'ru',
|
78
|
-
'sanskrit' => 'sa',
|
79
|
-
'scots_gaelic' => 'gd',
|
80
|
-
'serbian' => 'sr',
|
81
|
-
'sindhi' => 'sd',
|
82
|
-
'sinhalese' => 'si',
|
83
|
-
'slovak' => 'sk',
|
84
|
-
'slovenian' => 'sl',
|
85
|
-
'spanish' => 'es',
|
86
|
-
'sundanese' => 'su',
|
87
|
-
'swahili' => 'sw',
|
88
|
-
'swedish' => 'sv',
|
89
|
-
'syriac' => 'syr',
|
90
|
-
'tajik' => 'tg',
|
91
|
-
'tamil' => 'ta',
|
92
|
-
'tatar' => 'tt',
|
93
|
-
'telugu' => 'te',
|
94
|
-
'thai' => 'th',
|
95
|
-
'tibetan' => 'bo',
|
96
|
-
'tonga' => 'to',
|
97
|
-
'turkish' => 'tr',
|
98
|
-
'ukrainian' => 'uk',
|
99
|
-
'urdu' => 'ur',
|
100
|
-
'uzbek' => 'uz',
|
101
|
-
'uighur' => 'ug',
|
102
|
-
'vietnamese' => 'vi',
|
103
|
-
'welsh' => 'cy',
|
104
|
-
'yiddish' => 'yi',
|
105
|
-
'yoruba' => 'yo'
|
106
|
-
}
|
107
|
-
end
|
1
|
+
module WtfLang
|
2
|
+
LANGUAGES = {
|
3
|
+
'afrikaans' => 'af',
|
4
|
+
'albanian' => 'sq',
|
5
|
+
'amharic' => 'am',
|
6
|
+
'arabic' => 'ar',
|
7
|
+
'armenian' => 'hy',
|
8
|
+
'azerbaijani' => 'az',
|
9
|
+
'basque' => 'eu',
|
10
|
+
'belarusian' => 'be',
|
11
|
+
'bengali' => 'bn',
|
12
|
+
'bihari' => 'bh',
|
13
|
+
'breton' => 'br',
|
14
|
+
'bulgarian' => 'bg',
|
15
|
+
'burmese' => 'my',
|
16
|
+
'catalan' => 'ca',
|
17
|
+
'cherokee' => 'chr',
|
18
|
+
'chinese' => 'zh',
|
19
|
+
'corsican' => 'co',
|
20
|
+
'croatian' => 'hr',
|
21
|
+
'czech' => 'cs',
|
22
|
+
'danish' => 'da',
|
23
|
+
'dhivehi' => 'dv',
|
24
|
+
'dutch'=> 'nl',
|
25
|
+
'english' => 'en',
|
26
|
+
'esperanto' => 'eo',
|
27
|
+
'estonian' => 'et',
|
28
|
+
'faroese' => 'fo',
|
29
|
+
'filipino' => 'tl',
|
30
|
+
'finnish' => 'fi',
|
31
|
+
'french' => 'fr',
|
32
|
+
'frisian' => 'fy',
|
33
|
+
'galician' => 'gl',
|
34
|
+
'georgian' => 'ka',
|
35
|
+
'german' => 'de',
|
36
|
+
'greek' => 'el',
|
37
|
+
'gujarati' => 'gu',
|
38
|
+
'haitian_creole' => 'ht',
|
39
|
+
'hebrew' => 'iw',
|
40
|
+
'hindi' => 'hi',
|
41
|
+
'hungarian' => 'hu',
|
42
|
+
'icelandic' => 'is',
|
43
|
+
'indonesian' => 'id',
|
44
|
+
'inuktitut' => 'iu',
|
45
|
+
'irish' => 'ga',
|
46
|
+
'italian' => 'it',
|
47
|
+
'japanese' => 'ja',
|
48
|
+
'javanese' => 'jw',
|
49
|
+
'kannada' => 'kn',
|
50
|
+
'kazakh' => 'kk',
|
51
|
+
'khmer' => 'km',
|
52
|
+
'korean' => 'ko',
|
53
|
+
'kurdish'=> 'ku',
|
54
|
+
'kyrgyz'=> 'ky',
|
55
|
+
'lao' => 'lo',
|
56
|
+
'latin' => 'la',
|
57
|
+
'latvian' => 'lv',
|
58
|
+
'lithuanian' => 'lt',
|
59
|
+
'luxembourgish' => 'lb',
|
60
|
+
'macedonian' => 'mk',
|
61
|
+
'malay' => 'ms',
|
62
|
+
'malayalam' => 'ml',
|
63
|
+
'maltese' => 'mt',
|
64
|
+
'maori' => 'mi',
|
65
|
+
'marathi' => 'mr',
|
66
|
+
'mongolian' => 'mn',
|
67
|
+
'nepali' => 'ne',
|
68
|
+
'norwegian' => 'no',
|
69
|
+
'occitan' => 'oc',
|
70
|
+
'pashto' => 'ps',
|
71
|
+
'persian' => 'fa',
|
72
|
+
'polish' => 'pl',
|
73
|
+
'portuguese' => 'pt',
|
74
|
+
'punjabi' => 'pa',
|
75
|
+
'quechua' => 'qu',
|
76
|
+
'romanian' => 'ro',
|
77
|
+
'russian' => 'ru',
|
78
|
+
'sanskrit' => 'sa',
|
79
|
+
'scots_gaelic' => 'gd',
|
80
|
+
'serbian' => 'sr',
|
81
|
+
'sindhi' => 'sd',
|
82
|
+
'sinhalese' => 'si',
|
83
|
+
'slovak' => 'sk',
|
84
|
+
'slovenian' => 'sl',
|
85
|
+
'spanish' => 'es',
|
86
|
+
'sundanese' => 'su',
|
87
|
+
'swahili' => 'sw',
|
88
|
+
'swedish' => 'sv',
|
89
|
+
'syriac' => 'syr',
|
90
|
+
'tajik' => 'tg',
|
91
|
+
'tamil' => 'ta',
|
92
|
+
'tatar' => 'tt',
|
93
|
+
'telugu' => 'te',
|
94
|
+
'thai' => 'th',
|
95
|
+
'tibetan' => 'bo',
|
96
|
+
'tonga' => 'to',
|
97
|
+
'turkish' => 'tr',
|
98
|
+
'ukrainian' => 'uk',
|
99
|
+
'urdu' => 'ur',
|
100
|
+
'uzbek' => 'uz',
|
101
|
+
'uighur' => 'ug',
|
102
|
+
'vietnamese' => 'vi',
|
103
|
+
'welsh' => 'cy',
|
104
|
+
'yiddish' => 'yi',
|
105
|
+
'yoruba' => 'yo'
|
106
|
+
}
|
107
|
+
end
|
data/lib/wtf_lang/version.rb
CHANGED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/spec'
|
3
|
+
require 'vcr'
|
4
|
+
require 'webmock'
|
5
|
+
|
6
|
+
require 'wtf_lang'
|
7
|
+
|
8
|
+
VCR.configure do |c|
|
9
|
+
c.cassette_library_dir = File.join(File.dirname(__FILE__), '..', 'cassettes')
|
10
|
+
c.default_cassette_options = {:record => :new_episodes}
|
11
|
+
c.hook_into :webmock
|
12
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
describe WtfLang do
|
6
|
+
before do
|
7
|
+
WtfLang::API.key = 'demo'
|
8
|
+
|
9
|
+
VCR.insert_cassette('translation_api')
|
10
|
+
end
|
11
|
+
|
12
|
+
after do
|
13
|
+
VCR.eject_cassette
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns en language" do
|
17
|
+
assert_equal "en", "ruby is so awesome!".lang
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns ru language" do
|
21
|
+
assert_equal "ru", "руби такой крутой!".lang
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns jp language" do
|
25
|
+
assert_equal "ja", "ルビーはとても素晴らしいです!".lang
|
26
|
+
end
|
27
|
+
|
28
|
+
# it "returns eo language" do
|
29
|
+
# assert_equal "eo", "Eĥoŝanĝo ĉiŭĵaŭde!".lang
|
30
|
+
# end
|
31
|
+
|
32
|
+
# it "returns esperanto language" do
|
33
|
+
# assert_equal "esperanto", "Esperanton ĉiuj parolos!".full_lang
|
34
|
+
# end
|
35
|
+
|
36
|
+
it "returns full language name" do
|
37
|
+
assert_equal "russian", "руби такой крутой!".full_lang
|
38
|
+
end
|
39
|
+
|
40
|
+
it "returns assert language" do
|
41
|
+
assert "ruby is so awesome!".en?
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns assert with full language name" do
|
45
|
+
assert "ruby is so awesome!".english?
|
46
|
+
end
|
47
|
+
|
48
|
+
it "returns confidence" do
|
49
|
+
assert "руби такой крутой!".lang_confidence.kind_of? Array
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns en language for symbol" do
|
53
|
+
assert_equal "en", :"ruby is so awesome!".lang
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'returns nil if there is no transation' do
|
57
|
+
assert_nil "1234".lang
|
58
|
+
end
|
59
|
+
end
|