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