eventual 0.5.6 → 0.5.7
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.
- data/VERSION +1 -1
- data/lib/eventual/es/event_parser.treetop +7 -4
- data/lib/eventual/syntax_nodes.rb +10 -2
- data/spec/es_eventual_spec.rb +17 -0
- metadata +14 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.7
|
@@ -12,7 +12,7 @@ grammar EsDates
|
|
12
12
|
end
|
13
13
|
|
14
14
|
rule period
|
15
|
-
|
15
|
+
weekday_list_constrain? (range / month)
|
16
16
|
end
|
17
17
|
|
18
18
|
rule date
|
@@ -60,7 +60,6 @@ grammar EsDates
|
|
60
60
|
time_range ((space 'y' / ',') time_range)* <Eventual::TimeRangeList>
|
61
61
|
end
|
62
62
|
|
63
|
-
##########
|
64
63
|
rule month_name
|
65
64
|
(((space 'de') / ',')? space)? ('enero' / 'febrero' / 'marzo' / 'abril' / 'mayo' / 'junio' / 'julio' / 'agosto' / 'septiembre' / 'octubre' / 'noviembre' / 'diciembre') <Eventual::MonthName>
|
66
65
|
end
|
@@ -69,10 +68,14 @@ grammar EsDates
|
|
69
68
|
((space 'de' 'l'?) / ',')? space ([1-9] [0-9] [0-9] [0-9] / "'" [0-9] [0-9]) <Eventual::Year>
|
70
69
|
end
|
71
70
|
|
72
|
-
rule
|
73
|
-
wdays_node:(weekday_list / weekdays / weekday) (',' / (space ('del' / 'de' / 'durante todo' / 'durante')))? space <Eventual::WeekdayConstrain>
|
71
|
+
rule weekday_list_constrain
|
72
|
+
wdays_node:(weekday_period / weekday_list / weekdays / weekday) (',' / (space ('del' / 'de' / 'durante todo' / 'durante')))? space <Eventual::WeekdayConstrain>
|
74
73
|
end
|
75
74
|
|
75
|
+
rule weekday_period
|
76
|
+
('de' space)? weekday space 'a' space weekday
|
77
|
+
end
|
78
|
+
|
76
79
|
rule weekday_constrain
|
77
80
|
wdays_node:weekday ','? space <Eventual::WeekdayConstrain>
|
78
81
|
end
|
@@ -26,13 +26,21 @@ module Eventual
|
|
26
26
|
|
27
27
|
class WeekdayConstrain < Treetop::Runtime::SyntaxNode #:nodoc:
|
28
28
|
def value
|
29
|
-
text = wdays_node.text_value.sub('semana', '')
|
29
|
+
text = wdays_node.text_value.sub('semana', '').sub(/^de\s/, '')
|
30
30
|
days = text.scan(WdayListR).map{ |d| WdaysR.index /#{d}/ }
|
31
31
|
days += (1..5).map if text.include?('entre')
|
32
32
|
days += [6,0] if text.include?('fines')
|
33
|
+
days.sort!
|
34
|
+
days = (days.first..days.last).map if text.match /\sal?\s/
|
33
35
|
days.uniq
|
34
36
|
end
|
35
37
|
end
|
38
|
+
|
39
|
+
class WeekdayPeriodConstrain < WeekdayConstrain #:nodoc:
|
40
|
+
def value
|
41
|
+
text_value.scan()
|
42
|
+
end
|
43
|
+
end
|
36
44
|
|
37
45
|
class MonthName < Treetop::Runtime::SyntaxNode #:nodoc:
|
38
46
|
def value
|
@@ -236,4 +244,4 @@ module Eventual
|
|
236
244
|
(first.to_i..last.to_i).include? date.strftime("%H%M").to_i
|
237
245
|
end
|
238
246
|
end
|
239
|
-
end
|
247
|
+
end
|
data/spec/es_eventual_spec.rb
CHANGED
@@ -361,6 +361,23 @@ describe Eventual, 'Es' do
|
|
361
361
|
it_should_behave_like 'includes corresponding dates'
|
362
362
|
end
|
363
363
|
end
|
364
|
+
|
365
|
+
describe 'wday range' do
|
366
|
+
before do
|
367
|
+
@dates = (Date.parse('2010-3-1')..Date.parse('2010-3-22')).reject{ |day| not [1,2,3,4,5].include?(day.wday) }
|
368
|
+
end
|
369
|
+
describe "wdays for 'lunes a viernes del 1 al 22 de marzo del '10" do
|
370
|
+
before { @result = Eventual.parse("lunes a viernes del 1 al 22 de marzo del '10") }
|
371
|
+
it_should_behave_like 'correctly parses dates'
|
372
|
+
it_should_behave_like 'includes corresponding dates'
|
373
|
+
end
|
374
|
+
|
375
|
+
describe "wdays for 'de lunes a viernes del 1 al 22 de marzo del '10" do
|
376
|
+
before { @result = Eventual.parse("de lunes a viernes del 1 al 22 de marzo del '10") }
|
377
|
+
it_should_behave_like 'correctly parses dates'
|
378
|
+
it_should_behave_like 'includes corresponding dates'
|
379
|
+
end
|
380
|
+
end
|
364
381
|
end
|
365
382
|
end
|
366
383
|
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventual
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
9
|
+
- 7
|
10
|
+
version: 0.5.7
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Macario Ortega
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-10-01 00:00:00 -05:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: treetop
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 13
|
27
30
|
segments:
|
28
31
|
- 1
|
29
32
|
- 4
|
@@ -35,9 +38,11 @@ dependencies:
|
|
35
38
|
name: rspec
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - ">="
|
40
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 13
|
41
46
|
segments:
|
42
47
|
- 1
|
43
48
|
- 2
|
@@ -81,26 +86,30 @@ rdoc_options:
|
|
81
86
|
require_paths:
|
82
87
|
- lib
|
83
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
84
90
|
requirements:
|
85
91
|
- - ">="
|
86
92
|
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
87
94
|
segments:
|
88
95
|
- 0
|
89
96
|
version: "0"
|
90
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
91
99
|
requirements:
|
92
100
|
- - ">="
|
93
101
|
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
94
103
|
segments:
|
95
104
|
- 0
|
96
105
|
version: "0"
|
97
106
|
requirements: []
|
98
107
|
|
99
108
|
rubyforge_project:
|
100
|
-
rubygems_version: 1.3.
|
109
|
+
rubygems_version: 1.3.7
|
101
110
|
signing_key:
|
102
111
|
specification_version: 3
|
103
112
|
summary: Reconocimiento de fechas y periodos en lenguaje natural. Natural language date and period parsing, currently only in spanish.
|
104
113
|
test_files:
|
105
|
-
- spec/es_eventual_spec.rb
|
106
114
|
- spec/spec_helper.rb
|
115
|
+
- spec/es_eventual_spec.rb
|