dates_from_string 1.2.2 → 1.2.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 +4 -4
- data/README.md +1 -1
- data/lib/dates_from_string.rb +4 -39
- data/lib/dates_from_string/patterns.rb +37 -0
- data/lib/dates_from_string/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48c0aa20cd9618285c004faf1e4edbbdca9ebbb9
|
4
|
+
data.tar.gz: eac2ddd3c3bf6aa0f12ac1473e972a07420c402d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 262f34a6fce751f4b1bdd43c83b68809c6568a2a448d8e2f7f7e01748e1080a341b60e0175fa9d58c9cf588c84e35be637a2581c6d4aa9b5466de6b597d92cb5
|
7
|
+
data.tar.gz: 464c4c303b29e9feae92884f11398f7d7fa5d2dc7543d5feca9ec407ae84fbc5d7d0ca335da4f340bfb112b2ef492811b1934f20d2eb4b5fea632afa93175a73
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
[](https://travis-ci.org/sergey-chechaev/dates_from_string)
|
3
3
|
# DatesFromString
|
4
4
|
|
5
|
-
Flexible solution for finding dates in text. After parsing text, gem return flexible structure of dates, that allow
|
5
|
+
Flexible solution for finding dates in text. After parsing text, the gem return flexible structure of dates, that allow getting a date by you own logic use distance for next date type and keywords between dates. Gem also support find a year in email and find a date in structure.
|
6
6
|
|
7
7
|
|
8
8
|
## Installation
|
data/lib/dates_from_string.rb
CHANGED
@@ -1,44 +1,9 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'dates_from_string/version'
|
2
|
+
require 'parsing_structure'
|
3
|
+
require 'dates_from_string/patterns'
|
3
4
|
|
4
5
|
class DatesFromString
|
5
|
-
|
6
|
-
|
7
|
-
PATTERNS = {
|
8
|
-
[
|
9
|
-
/\d{4}-\d{2}-\d{2}/,
|
10
|
-
/\d{4}-\d{1}-\d{2}/,
|
11
|
-
/\d{4}-\d{1}-\d{1}/,
|
12
|
-
/\d{4}-\d{2}-\d{1}/,
|
13
|
-
] => -> string { string.to_s.split("-") },
|
14
|
-
[
|
15
|
-
/\d{2}-\d{2}-\d{4}/,
|
16
|
-
/\d{2}-\d{1}-\d{4}/,
|
17
|
-
/\d{1}-\d{1}-\d{4}/,
|
18
|
-
/\d{1}-\d{2}-\d{4}/,
|
19
|
-
] => -> string { string.to_s.split("-").reverse },
|
20
|
-
[
|
21
|
-
/\d{4}\.\d{2}\.\d{2}/,
|
22
|
-
/\d{4}\.\d{2}\.\d{1}/,
|
23
|
-
] => -> string { string.to_s.split(".") },
|
24
|
-
[
|
25
|
-
/\d{2}\.\d{2}\.\d{4}/,
|
26
|
-
/\d{1}\.\d{2}\.\d{4}/,
|
27
|
-
] => -> string { string.to_s.split(".").reverse },
|
28
|
-
[
|
29
|
-
/\d{4}\/\d{2}\/\d{2}/,
|
30
|
-
/\d{4}\/\d{2}\/\d{1}/,
|
31
|
-
] => -> string { string.to_s.split("/") },
|
32
|
-
[
|
33
|
-
/\d{2}\/\d{2}\/\d{4}/,
|
34
|
-
/\d{1}\/\d{2}\/\d{4}/,
|
35
|
-
] => -> string { string.to_s.split("/").reverse },
|
36
|
-
}
|
37
|
-
|
38
|
-
DATE_COUNTRY_FORMAT = {
|
39
|
-
default: -> {[:year,:month,:day]},
|
40
|
-
usa: -> {[:year,:day,:month]}
|
41
|
-
}
|
6
|
+
include Patterns
|
42
7
|
|
43
8
|
def initialize(key_words = [], date_format: :default)
|
44
9
|
@key_words = key_words
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Patterns
|
2
|
+
PATTERNS = {
|
3
|
+
[
|
4
|
+
/\d{4}-\d{2}-\d{2}/,
|
5
|
+
/\d{4}-\d{1}-\d{2}/,
|
6
|
+
/\d{4}-\d{1}-\d{1}/,
|
7
|
+
/\d{4}-\d{2}-\d{1}/
|
8
|
+
] => ->(string) { string.to_s.split('-') },
|
9
|
+
[
|
10
|
+
/\d{2}-\d{2}-\d{4}/,
|
11
|
+
/\d{2}-\d{1}-\d{4}/,
|
12
|
+
/\d{1}-\d{1}-\d{4}/,
|
13
|
+
/\d{1}-\d{2}-\d{4}/
|
14
|
+
] => ->(string) { string.to_s.split('-').reverse },
|
15
|
+
[
|
16
|
+
/\d{4}\.\d{2}\.\d{2}/,
|
17
|
+
/\d{4}\.\d{2}\.\d{1}/
|
18
|
+
] => ->(string) { string.to_s.split('.') },
|
19
|
+
[
|
20
|
+
/\d{2}\.\d{2}\.\d{4}/,
|
21
|
+
/\d{1}\.\d{2}\.\d{4}/
|
22
|
+
] => ->(string) { string.to_s.split('.').reverse },
|
23
|
+
[
|
24
|
+
/\d{4}\/\d{2}\/\d{2}/,
|
25
|
+
/\d{4}\/\d{2}\/\d{1}/
|
26
|
+
] => ->(string) { string.to_s.split('/') },
|
27
|
+
[
|
28
|
+
/\d{2}\/\d{2}\/\d{4}/,
|
29
|
+
/\d{1}\/\d{2}\/\d{4}/
|
30
|
+
] => ->(string) { string.to_s.split('/').reverse }
|
31
|
+
}.freeze
|
32
|
+
|
33
|
+
DATE_COUNTRY_FORMAT = {
|
34
|
+
default: -> { [:year, :month, :day] },
|
35
|
+
usa: -> { [:year, :day, :month] }
|
36
|
+
}.freeze
|
37
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dates_from_string
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Chechaev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- bin/setup
|
86
86
|
- dates_from_string.gemspec
|
87
87
|
- lib/dates_from_string.rb
|
88
|
+
- lib/dates_from_string/patterns.rb
|
88
89
|
- lib/dates_from_string/version.rb
|
89
90
|
- lib/parsing_structure.rb
|
90
91
|
homepage: ''
|