rtatoeba 0.0.2 → 0.0.3

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: 4e090f73ff562906da45d9cdb405933cb6fd3447
4
- data.tar.gz: 93a0733ed61cc8d0e3c60b50a3f77a080c13946d
3
+ metadata.gz: 153dda082aba7ee24f7df60b826dd1d179f806f0
4
+ data.tar.gz: f1b247b31207be7663abfd13bd1813b891a02020
5
5
  SHA512:
6
- metadata.gz: b2e78e8b8743e8bec33a45f1e491f84f5be18ef2c32fe265e3a03a99fecfb534f7fb8cffac121fa1ea9debcf37d4e96fb7249af5f5a6fb8eb0caf3653637c367
7
- data.tar.gz: 812b652ee17342703941ed470fe84fd8460b11a50412174f6daa19af85a7c90f299d93ec5f9bbdeb2d44ce8468521175eecdbce55bd528eb32937d1bf5b0e87a
6
+ metadata.gz: de64c3aedfd9acf0bb121b6ed18a7126552470278e5f9413bfd4feb0f0179edf89d27cc6bfb947df9974aa5c1ed5ea575aaa8fd66cd6c068e377684254779826
7
+ data.tar.gz: 7faa0f439b71e7d06ce84945b7f515204f13152420eca16b553b6819eed93697715e928cf516767c85afa55eab1fd4cce672c90161130ef4faf064c85dd9443a
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
1
  [![Build Status](https://travis-ci.org/pcboy/rtatoeba.svg)](https://travis-ci.org/pcboy/rtatoeba)
2
+ [![Gem Version](https://badge.fury.io/rb/rtatoeba.svg)](http://badge.fury.io/rb/rtatoeba)
3
+ [![Code Climate](https://codeclimate.com/github/pcboy/rtatoeba/badges/gpa.svg)](https://codeclimate.com/github/pcboy/rtatoeba)
4
+
2
5
  # Rtatoeba
3
6
 
4
7
  Rtatoeba is a tiny gem to access tatoeba.org which doesn't have an API yet.
@@ -44,7 +47,7 @@ Or install it yourself as:
44
47
  ]
45
48
  }
46
49
 
47
-
50
+ Note: Lang is in ISO-639-2 format
48
51
  ## Contributing
49
52
 
50
53
  1. Fork it
@@ -1,3 +1,3 @@
1
1
  module Rtatoeba
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/rtatoeba.rb CHANGED
@@ -21,11 +21,19 @@ require 'mechanize'
21
21
 
22
22
  module Rtatoeba
23
23
  class Rtatoeba
24
+ class InvalidLangFormat < ArgumentError; end;
25
+
24
26
  def initialize(params={})
25
27
  @from = params[:from] || "eng"
26
28
  @to = params[:to] || "eng"
27
29
  @query = params[:query]
28
30
 
31
+ if !accepted_langs.keys.include?(params[:from]) ||
32
+ !accepted_langs.keys.include?(params[:to])
33
+ raise InvalidLangFormat,
34
+ "Invalid chosen language (#{params[:from]} / #{params[:to]}).\n" +
35
+ "Accepted langs are:\n" + accepted_langs.to_s
36
+ end
29
37
  @agent = Mechanize.new
30
38
  end
31
39
 
@@ -39,5 +47,195 @@ module Rtatoeba
39
47
  end
40
48
  sentences
41
49
  end
50
+
51
+ private
52
+ def accepted_langs
53
+ {
54
+ "abk" => "Abkhaz",
55
+ "afr" => "Afrikaans",
56
+ "ain" => "Ainu",
57
+ "sqi" => "Albanian",
58
+ "arq" => "Algerian Arabic",
59
+ "amh" => "Amharic",
60
+ "grc" => "Ancient Greek",
61
+ "ara" => "Arabic",
62
+ "hye" => "Armenian",
63
+ "ast" => "Asturian",
64
+ "awa" => "Awadhi",
65
+ "aze" => "Azerbaijani",
66
+ "bak" => "Bashkir",
67
+ "eus" => "Basque",
68
+ "bel" => "Belarusian",
69
+ "ben" => "Bengali",
70
+ "ber" => "Berber",
71
+ "bho" => "Bhojpuri",
72
+ "bos" => "Bosnian",
73
+ "bre" => "Breton",
74
+ "bul" => "Bulgarian",
75
+ "yue" => "Cantonese",
76
+ "cat" => "Catalan",
77
+ "cha" => "Chamorro",
78
+ "cbk" => "Chavacano",
79
+ "chr" => "Cherokee",
80
+ "cmn" => "Chinese (Mandarin)",
81
+ "nya" => "Chinyanja",
82
+ "ckt" => "Chukchi",
83
+ "chv" => "Chuvash",
84
+ "cor" => "Cornish",
85
+ "crh" => "Crimean Tatar",
86
+ "hrv" => "Croatian",
87
+ "cycl" => "CycL",
88
+ "ces" => "Czech",
89
+ "dan" => "Danish",
90
+ "nld" => "Dutch",
91
+ "arz" => "Egyptian Arabic",
92
+ "egl" => "Emilian",
93
+ "eng" => "English",
94
+ "epo" => "Esperanto",
95
+ "est" => "Estonian",
96
+ "ewe" => "Ewe",
97
+ "fao" => "Faroese",
98
+ "fin" => "Finnish",
99
+ "fra" => "French",
100
+ "fry" => "Frisian",
101
+ "glg" => "Galician",
102
+ "kat" => "Georgian",
103
+ "deu" => "German",
104
+ "ell" => "Greek",
105
+ "kal" => "Greenlandic",
106
+ "grn" => "Guarani",
107
+ "guj" => "Gujarati",
108
+ "hat" => "Haitian Creole",
109
+ "hau" => "Hausa",
110
+ "haw" => "Hawaiian",
111
+ "heb" => "Hebrew",
112
+ "hil" => "Hiligaynon",
113
+ "mrj" => "Hill Mari",
114
+ "hin" => "Hindi",
115
+ "hun" => "Hungarian",
116
+ "isl" => "Icelandic",
117
+ "ido" => "Ido",
118
+ "ind" => "Indonesian",
119
+ "ina" => "Interlingua",
120
+ "ile" => "Interlingue",
121
+ "acm" => "Iraqi Arabic",
122
+ "gle" => "Irish",
123
+ "ita" => "Italian",
124
+ "jpn" => "Japanese",
125
+ "jav" => "Javanese",
126
+ "jdt" => "Juhuri (Judeo-Tat)",
127
+ "xal" => "Kalmyk",
128
+ "kaz" => "Kazakh",
129
+ "kha" => "Khasi",
130
+ "khm" => "Khmer",
131
+ "kin" => "Kinyarwanda",
132
+ "tlh" => "Klingon",
133
+ "ksh" => "Kölsch",
134
+ "kor" => "Korean",
135
+ "avk" => "Kotava",
136
+ "kum" => "Kumyk",
137
+ "kur" => "Kurdish",
138
+ "kir" => "Kyrgyz",
139
+ "lld" => "Ladin",
140
+ "lad" => "Ladino",
141
+ "lkt" => "Lakota",
142
+ "lao" => "Lao",
143
+ "lat" => "Latin",
144
+ "lvs" => "Latvian",
145
+ "lzh" => "Literary Chinese",
146
+ "lit" => "Lithuanian",
147
+ "liv" => "Livonian",
148
+ "jbo" => "Lojban",
149
+ "nds" => "Low Saxon",
150
+ "dsb" => "Lower Sorbian",
151
+ "ltz" => "Luxembourgish",
152
+ "mkd" => "Macedonian",
153
+ "mlg" => "Malagasy",
154
+ "zsm" => "Malay",
155
+ "mal" => "Malayalam",
156
+ "mlt" => "Maltese",
157
+ "mgm" => "Mambae",
158
+ "mri" => "Maori",
159
+ "mar" => "Marathi",
160
+ "mhr" => "Meadow Mari",
161
+ "enm" => "Middle English",
162
+ "frm" => "Middle French",
163
+ "nan" => "Min Nan Chinese",
164
+ "mnw" => "Mon",
165
+ "mon" => "Mongolian",
166
+ "nah" => "Nahuatl",
167
+ "nav" => "Navajo",
168
+ "npi" => "Nepali",
169
+ "nog" => "Nogai",
170
+ "nob" => "Norwegian (Bokmål)",
171
+ "non" => "Norwegian (Nynorsk)",
172
+ "nov" => "Novial",
173
+ "oci" => "Occitan",
174
+ "orv" => "Old East Slavic",
175
+ "ang" => "Old English",
176
+ "prg" => "Old Prussian",
177
+ "tpw" => "Old Tupi",
178
+ "oss" => "Ossetian",
179
+ "ota" => "Ottoman Turkish",
180
+ "pdc" => "Pennsylvania German",
181
+ "pes" => "Persian",
182
+ "pcd" => "Picard",
183
+ "pms" => "Piedmontese",
184
+ "ppl" => "Pipil",
185
+ "pol" => "Polish",
186
+ "por" => "Portuguese",
187
+ "pan" => "Punjabi (Eastern)",
188
+ "pnb" => "Punjabi (Western)",
189
+ "que" => "Quechua",
190
+ "qya" => "Quenya",
191
+ "ron" => "Romanian",
192
+ "roh" => "Romansh",
193
+ "rus" => "Russian",
194
+ "san" => "Sanskrit",
195
+ "gla" => "Scottish Gaelic",
196
+ "srp" => "Serbian",
197
+ "wuu" => "Shanghainese",
198
+ "sna" => "Shona",
199
+ "shs" => "Shuswap",
200
+ "scn" => "Sicilian",
201
+ "sjn" => "Sindarin",
202
+ "sin" => "Sinhala",
203
+ "slk" => "Slovak",
204
+ "slv" => "Slovenian",
205
+ "som" => "Somali",
206
+ "spa" => "Spanish",
207
+ "swh" => "Swahili",
208
+ "swe" => "Swedish",
209
+ "tgl" => "Tagalog",
210
+ "tgk" => "Tajik",
211
+ "tam" => "Tamil",
212
+ "tat" => "Tatar",
213
+ "tel" => "Telugu",
214
+ "tet" => "Tetun",
215
+ "tha" => "Thai",
216
+ "bod" => "Tibetan",
217
+ "tpi" => "Tok Pisin",
218
+ "toki" => "Toki Pona",
219
+ "tur" => "Turkish",
220
+ "tuk" => "Turkmen",
221
+ "udm" => "Udmurt",
222
+ "ukr" => "Ukrainian",
223
+ "hsb" => "Upper Sorbian",
224
+ "urd" => "Urdu",
225
+ "uig" => "Uyghur",
226
+ "uzb" => "Uzbek",
227
+ "vie" => "Vietnamese",
228
+ "vol" => "Volapük",
229
+ "wln" => "Walloon",
230
+ "cym" => "Welsh",
231
+ "xho" => "Xhosa",
232
+ "sah" => "Yakut",
233
+ "yid" => "Yiddish",
234
+ "yor" => "Yoruba",
235
+ "zza" => "Zaza",
236
+ "zul" => "Zulu"
237
+ }
238
+
239
+ end
42
240
  end
43
241
  end
@@ -22,5 +22,18 @@ describe Rtatoeba do
22
22
  it "should return sample sentences" do
23
23
  tatoe = Rtatoeba::Rtatoeba.new(from: 'eng', to: 'kor', query: 'hello')
24
24
  expect(tatoe.sentences).not_to be_empty
25
+ expect(tatoe.sentences.values.any?(&:empty?)).to eql(false)
26
+ tatoe = Rtatoeba::Rtatoeba.new(from: 'eng', to: 'fra', query: 'monday')
27
+ expect(tatoe.sentences).not_to be_empty
28
+ expect(tatoe.sentences.values.any?(&:empty?)).to eql(false)
29
+ end
30
+
31
+ it "should gives an error if lang is incorrect" do
32
+ expect{
33
+ Rtatoeba::Rtatoeba.new(from: 'english', to: 'fra', query: 'hello')
34
+ }.to raise_error(Rtatoeba::Rtatoeba::InvalidLangFormat)
35
+ expect{
36
+ Rtatoeba::Rtatoeba.new(from: 'en', to: 'french', query: 'hello')
37
+ }.to raise_error(Rtatoeba::Rtatoeba::InvalidLangFormat)
25
38
  end
26
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtatoeba
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Hagege
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-07 00:00:00.000000000 Z
11
+ date: 2015-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize