international_date_parser 0.2.3 → 0.2.4
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 +4 -4
- data/.gitignore +1 -0
- data/README.md +3 -3
- data/international_date_parser.gemspec +1 -0
- data/lib/international_date_parser.rb +21 -28
- data/lib/international_date_parser/railtie.rb +2 -0
- data/lib/international_date_parser/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e37a3e7aab1142910ddd5e4ff07b1aef159fe730
|
4
|
+
data.tar.gz: 1a26b5b98d35d841dce3909f5260d9e26d1c13be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5aa3bd7f6cab479fc57fee615e109adf165361aa7db4c82153fd0a6d28caf8fd7356a06642bd92b1e9b1c4f02deca04bc0d5f929fb0e127f023a02f7818b6594
|
7
|
+
data.tar.gz: a280295386eaabf405eb8756226a344f3e0b4c31a48abdfbe255068222c285b14ee721a6471af96c7819c82f9d870209d6d7e332cb4ce4cb110f02e43b8c79e4
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -6,9 +6,9 @@ Extend the date parsing capabilities of Ruby to work with dates which months are
|
|
6
6
|
|
7
7
|
#### Usage:
|
8
8
|
```
|
9
|
-
Date.parse_international("28 de Fevereiro de 2020")
|
10
|
-
|
11
|
-
|
9
|
+
InternationalDateParser::Date.parse_international("28 de Fevereiro de 2020")
|
10
|
+
InternationalDateParser::Date.parse_international("28 abr 2020")
|
11
|
+
|
12
12
|
```
|
13
13
|
|
14
14
|
#### Notes:
|
@@ -10,7 +10,7 @@
|
|
10
10
|
# date_string.to_international_date
|
11
11
|
#
|
12
12
|
# Notes:
|
13
|
-
# 1) This routine works by substituting your local month names (as defined by Date::
|
13
|
+
# 1) This routine works by substituting your local month names (as defined by Date::MONTH_TRANSLATIONS) for the
|
14
14
|
# international names when they occur in the date_string.
|
15
15
|
# 2) As distributed, this code works for French, German, Italian, and Spanish. You must add the month
|
16
16
|
# names for any additional languages you wish to handle.
|
@@ -18,39 +18,32 @@
|
|
18
18
|
|
19
19
|
module InternationalDateParser
|
20
20
|
|
21
|
-
require '
|
21
|
+
require 'date'
|
22
|
+
class Date < Date
|
23
|
+
MONTH_TO_PARSE = {
|
24
|
+
fr: %w(janvier février mars avril mai juin juillet août septembre octobre novembre décembre), # French
|
25
|
+
ge: %w(Januar Februar März April Mai Juni Juli August September Oktober November Dezember), # German
|
26
|
+
it: %w(gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre), # Italian
|
27
|
+
es: %w(enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre), # Spanish
|
28
|
+
pt: %w(janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro), # Portuguese
|
29
|
+
}
|
30
|
+
MONTH_TRANSLATIONS = MONTH_TO_PARSE.values.flatten
|
31
|
+
MONTH_TRANSLATIONS_SHORT = MONTH_TRANSLATIONS.map{|m| m[0,3]}
|
22
32
|
|
23
|
-
class Date
|
24
33
|
def self.parse_international(date)
|
25
|
-
parse(date_to_english(date))
|
34
|
+
Date.parse(date_to_english(date))
|
26
35
|
end
|
27
36
|
|
28
|
-
MONTH_TRANSLATIONS = []
|
29
|
-
MONTH_TRANSLATIONS += %w(janvier février mars avril mai juin juillet août septembre octobre novembre décembre) # French
|
30
|
-
MONTH_TRANSLATIONS += %w(Januar Februar März April Mai Juni Juli August September Oktober November Dezember) # German
|
31
|
-
MONTH_TRANSLATIONS += %w(gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre) # Italian
|
32
|
-
MONTH_TRANSLATIONS += %w(enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre) # Spanish
|
33
|
-
MONTH_TRANSLATIONS += %w(janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro) # Portuguese
|
34
|
-
|
35
|
-
MONTH_TRANSLATIONS_SHORT = MONTH_TRANSLATIONS.map{|m| m[0,3]}
|
36
|
-
|
37
37
|
def self.date_to_english(date)
|
38
|
-
month_from = date[/[^\s\d,]{3,}/i] # Search for a month name
|
39
|
-
|
40
|
-
date.
|
38
|
+
month_from = date[/[^\s\d,]{3,}/i].downcase # Search for a month name
|
39
|
+
month_index = MONTH_TRANSLATIONS.index(month_from) || MONTH_TRANSLATIONS_SHORT.index(month_from)
|
40
|
+
date.scan(/\s[^\s\d,]{1,2}\s/).each{|s| date.sub!(s[/[^\s]+/],'') if s}
|
41
|
+
date.downcase!
|
42
|
+
date.sub!(month_from, Date::MONTHNAMES[month_index % 12 + 1]) if month_index
|
43
|
+
date
|
41
44
|
end
|
42
45
|
end
|
43
46
|
|
44
|
-
|
45
|
-
def self.parse_international(string)
|
46
|
-
parse Date.date_to_english(string)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
class String
|
51
|
-
def to_international_date
|
52
|
-
Date::parse_international(self).to_date
|
53
|
-
end
|
54
|
-
end
|
47
|
+
end
|
55
48
|
|
56
|
-
|
49
|
+
require 'international_date_parser/railtie' if defined?(Rails)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: international_date_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Humberto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: byebug
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '8.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '8.2'
|
41
55
|
description: Ruby class Date extension to translate months and then parse the string
|
42
56
|
email:
|
43
57
|
- hlsp999@gmail.com
|