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.
@@ -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