postal_address_translator 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 986eb8cef74ae59ea8c40041fc90cb5a3e32542f
|
4
|
+
data.tar.gz: 1abaf4885d44c1e56e1c746aa95b767595480951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dba279d664603b0fcdaa3e9b29de8ef46c7e9ab834bb54cf87c444cd3262647ef17f5949b17a6d9e10e99064096304bdfe64281d21f4dce099ea40d6fa444995
|
7
|
+
data.tar.gz: 5fecd0424255f88fc84f59975e9d482aa1536669e40224c14bd8d00cac77a8c3bae7ad94d74208b0fd4210beafe30af79f7e3e847bed6e2c1e08b9b544ae482f
|
@@ -1,18 +1,19 @@
|
|
1
|
-
# The main
|
1
|
+
# The main driver
|
2
2
|
class PostalAddressTranslator
|
3
|
-
#
|
3
|
+
# Translate Postal Adresses
|
4
4
|
#
|
5
5
|
# Example:
|
6
|
-
# >>
|
7
|
-
# =>
|
6
|
+
# >> PostalAddressTranslator.to_fr("2-12 Chapelle Saint-Pierre Alley, 35370 Argentré-du-Plessis, France")
|
7
|
+
# => 2-12 Allée Chapelle Saint-Pierre, 35370 Argentré-du-Plessis, France
|
8
8
|
#
|
9
9
|
# Arguments:
|
10
|
-
#
|
10
|
+
# postal_address: (String)
|
11
|
+
# lamguage: (String)
|
11
12
|
|
12
|
-
def self.
|
13
|
-
translator =
|
14
|
-
translator.
|
13
|
+
def self.to_fr(postal_address, language = "english")
|
14
|
+
translator = FrenchTranslator.new(postal_address, language)
|
15
|
+
translator.to_fr
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
|
-
require 'postal_address_translator/
|
19
|
+
require 'postal_address_translator/french_translator'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class FrenchTranslator
|
2
|
+
EN_TO_FR = {
|
3
|
+
"alley" => "Allée",
|
4
|
+
"avenue" => "Avenue",
|
5
|
+
"way" => "Chemin",
|
6
|
+
"square" => "Place",
|
7
|
+
"street" => "Rue",
|
8
|
+
"road" => "Route",
|
9
|
+
"path" => "Cours"
|
10
|
+
}
|
11
|
+
|
12
|
+
def initialize(postal_address, language)
|
13
|
+
@language = language
|
14
|
+
@postal_address = postal_address
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_fr
|
18
|
+
case @language
|
19
|
+
when "english"
|
20
|
+
# detect one of keys
|
21
|
+
key,value = EN_TO_FR.detect{|key,value| @postal_address.match /\s#{key}/i}
|
22
|
+
# remove it
|
23
|
+
if key
|
24
|
+
translated_address = @postal_address.gsub /\s#{key}/i, ''
|
25
|
+
# place the translated word after the street number if there is one
|
26
|
+
(translated_address.match /^[0-9\-]*\s/) ?
|
27
|
+
(translated_address.gsub /^[0-9\-]*\s/, "\\0#{value} ") :
|
28
|
+
("#{value} #{translated_address}")
|
29
|
+
else
|
30
|
+
@postal_address
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postal_address_translator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Maloeuvre
|
@@ -19,7 +19,7 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- bin/postal_address_translator
|
21
21
|
- lib/postal_address_translator.rb
|
22
|
-
- lib/postal_address_translator/
|
22
|
+
- lib/postal_address_translator/french_translator.rb
|
23
23
|
homepage: http://rubygems.org/gems/postal_address_translator
|
24
24
|
licenses:
|
25
25
|
- MIT
|