wtf_lang 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
- def #{code_lang_name}?
26
- lang == "#{code_lang_name}"
27
- end
28
- def #{full_lang_name}?
29
- full_lang == "#{full_lang_name}"
30
- end
31
- RUBY
32
- end
33
- end
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
@@ -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
- if Hash.method_defined? :key
14
- LANGUAGES.key(lang)
15
- else
16
- LANGUAGES.index(lang)
17
- end
18
- end
19
-
20
- def lang_confidence
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
@@ -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
@@ -1,10 +1,3 @@
1
1
  module WtfLang
2
- module Version
3
- MAJOR = 0
4
- MINOR = 3
5
- PATCH = 1
6
- BUILD = nil
7
-
8
- STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
9
- end
10
- end
2
+ VERSION = "0.4.0"
3
+ end
@@ -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