international_date_parser 0.2.3 → 0.2.4

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: c37551b392c73e2de3cc5877a4f259b18eeab857
4
- data.tar.gz: 25677d0f2d14bf78849b32f894ec9f14d0c294e4
3
+ metadata.gz: e37a3e7aab1142910ddd5e4ff07b1aef159fe730
4
+ data.tar.gz: 1a26b5b98d35d841dce3909f5260d9e26d1c13be
5
5
  SHA512:
6
- metadata.gz: 234722f4cbbfeccc0cebeb0d21d1c2dc4ce50b89a5db9683f4ea68630bc08afe722b64561f6760e9f1dc43b1c0458eb436859b07368bb34bbfee223b6b6eff4f
7
- data.tar.gz: 69a8d823cee4d30f802b48d2a39e30626890f557286b1a0334596cbd6d6afe050d2ab0c2e646afffaed64c4cdc8578959786080d414abf82fa7e9680244a0a47
6
+ metadata.gz: 5aa3bd7f6cab479fc57fee615e109adf165361aa7db4c82153fd0a6d28caf8fd7356a06642bd92b1e9b1c4f02deca04bc0d5f929fb0e127f023a02f7818b6594
7
+ data.tar.gz: a280295386eaabf405eb8756226a344f3e0b4c31a48abdfbe255068222c285b14ee721a6471af96c7819c82f9d870209d6d7e332cb4ce4cb110f02e43b8c79e4
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ .byebug_history
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
- DateTime.parse_international("28 de Fevereiro de 2020")
11
- "28 de Fevereiro de 2020".to_international_date
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:
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "byebug", "~> 8.2"
23
24
 
24
25
  spec.required_ruby_version = '>= 1.9.3'
25
26
  end
@@ -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::MONTHNAMES) for the
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 'international_date_parser/railtie' if defined?(Rails)
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
- month_number =(MONTH_TRANSLATIONS.index(month_from) || MONTH_TRANSLATIONS_SHORT.index(month_from))
40
- date.sub(month_from, Date::MONTHNAMES[month_number % 12 + 1]) if month_number
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
- class DateTime
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
- end
49
+ require 'international_date_parser/railtie' if defined?(Rails)
@@ -1,3 +1,5 @@
1
+ require 'rails/railtie'
2
+
1
3
  module InternationalDateParser
2
4
  class Railtie < Rails::Railtie
3
5
  end
@@ -1,6 +1,6 @@
1
1
  module InternationalDateParser
2
2
  MAJOR = 0
3
3
  MINOR = 2
4
- REVISION = 3
4
+ REVISION = 4
5
5
  VERSION = [MAJOR, MINOR, REVISION].join(".")
6
6
  end
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.3
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: 2015-12-28 00:00:00.000000000 Z
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