ice_cube 0.14.0 → 0.15.0
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/config/locales/de.yml +178 -0
- data/config/locales/fr.yml +173 -0
- data/config/locales/ru.yml +195 -0
- data/config/locales/sv.yml +169 -0
- data/lib/ice_cube/parsers/ical_parser.rb +16 -25
- data/lib/ice_cube/rule.rb +35 -15
- data/lib/ice_cube/schedule.rb +2 -2
- data/lib/ice_cube/time_util.rb +11 -3
- data/lib/ice_cube/validations/day.rb +2 -0
- data/lib/ice_cube/validations/until.rb +2 -2
- data/lib/ice_cube/version.rb +1 -1
- metadata +7 -45
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4da7e2dd818b7ab5f3c5dd023370bbc80f8e8ced
|
|
4
|
+
data.tar.gz: e131a536a09b9c2bda6373b8c1f76cc2b8857245
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0ea3d24d220d7683a46c74b7b63bb2ab9959de7e1b4d08dd96664593f99bf78402e0f27fc395a4e21e46ce7cdea01a7780b7c5948fc10299a671cfe8f1c4a8f9
|
|
7
|
+
data.tar.gz: ab2b07d2a5023c56a165b0cd3f8407f4c36816413efb005e1e31a8b82123cd4ba878a710b05832c2d521804d6dfb62fbd328199286b32e341e64f0e180fdd7ea
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
de:
|
|
2
|
+
ice_cube:
|
|
3
|
+
pieces_connector: ' / '
|
|
4
|
+
not: 'außer %{target}'
|
|
5
|
+
not_on: 'außer am %{target}'
|
|
6
|
+
date:
|
|
7
|
+
formats:
|
|
8
|
+
default: '%-d. %B %Y'
|
|
9
|
+
month_names:
|
|
10
|
+
-
|
|
11
|
+
- Januar
|
|
12
|
+
- Februar
|
|
13
|
+
- März
|
|
14
|
+
- April
|
|
15
|
+
- Mai
|
|
16
|
+
- Juni
|
|
17
|
+
- Juli
|
|
18
|
+
- August
|
|
19
|
+
- September
|
|
20
|
+
- Oktober
|
|
21
|
+
- November
|
|
22
|
+
- Dezember
|
|
23
|
+
day_names:
|
|
24
|
+
- Sonntag
|
|
25
|
+
- Montag
|
|
26
|
+
- Dienstag
|
|
27
|
+
- Mittwoch
|
|
28
|
+
- Donnerstag
|
|
29
|
+
- Freitag
|
|
30
|
+
- Samstag
|
|
31
|
+
times:
|
|
32
|
+
other: '%{count} mal'
|
|
33
|
+
one: '%{count} mal'
|
|
34
|
+
until: 'bis zum %{date}'
|
|
35
|
+
days_of_week: '%{segments} %{day}'
|
|
36
|
+
days_of_month:
|
|
37
|
+
one: '%{segments} Tag des Monats'
|
|
38
|
+
other: '%{segments} Tag des Monats'
|
|
39
|
+
days_of_year:
|
|
40
|
+
one: '%{segments} Tag des Jahres'
|
|
41
|
+
other: '%{segments} Tag des Jahres'
|
|
42
|
+
at_hours_of_the_day:
|
|
43
|
+
one: in der %{segments} Stunde des Tages
|
|
44
|
+
other: in der %{segments} Stunde des Tages
|
|
45
|
+
on_minutes_of_hour:
|
|
46
|
+
one: in der %{segments} Minute der Stunde
|
|
47
|
+
other: in der %{segments} Minute der Stunde
|
|
48
|
+
at_seconds_of_minute:
|
|
49
|
+
one: in der %{segments} Sekunde
|
|
50
|
+
other: in der %{segments} Sekunde
|
|
51
|
+
on_seconds_of_minute:
|
|
52
|
+
one: in der %{segments} Sekunde der Minute
|
|
53
|
+
other: in der %{segments} Sekunde der Minute
|
|
54
|
+
each_second:
|
|
55
|
+
one: Jede Sekunde
|
|
56
|
+
other: Alle %{count} Sekunden
|
|
57
|
+
each_minute:
|
|
58
|
+
one: Jede Minute
|
|
59
|
+
other: Alle %{count} Minuten
|
|
60
|
+
each_hour:
|
|
61
|
+
one: Stündlich
|
|
62
|
+
other: Alle %{count} Stunden
|
|
63
|
+
each_day:
|
|
64
|
+
one: Täglich
|
|
65
|
+
other: Alle %{count} Tage
|
|
66
|
+
each_week:
|
|
67
|
+
one: Wöchentlich
|
|
68
|
+
other: Alle %{count} Wochen
|
|
69
|
+
each_month:
|
|
70
|
+
one: Monatlich
|
|
71
|
+
other: Alle %{count} Monate
|
|
72
|
+
each_year:
|
|
73
|
+
one: Jährlich
|
|
74
|
+
other: Alle %{count} Jahre
|
|
75
|
+
'on': am %{sentence}
|
|
76
|
+
in: 'im %{target}'
|
|
77
|
+
integer:
|
|
78
|
+
negative: '%{ordinal}. letzter'
|
|
79
|
+
literal_ordinals:
|
|
80
|
+
-1: letzten
|
|
81
|
+
-2: vorletzten
|
|
82
|
+
ordinal: '%{number}%{ordinal}'
|
|
83
|
+
ordinals:
|
|
84
|
+
default: '.'
|
|
85
|
+
# 1: st
|
|
86
|
+
# 2: nd
|
|
87
|
+
# 3: rd
|
|
88
|
+
# 11: th
|
|
89
|
+
# 12: th
|
|
90
|
+
# 13: th
|
|
91
|
+
on_weekends: am Wochenende
|
|
92
|
+
on_weekdays: an Wochentagen
|
|
93
|
+
days_on:
|
|
94
|
+
- Sonntags
|
|
95
|
+
- Montags
|
|
96
|
+
- Dienstags
|
|
97
|
+
- Mittwochs
|
|
98
|
+
- Donnerstags
|
|
99
|
+
- Freitags
|
|
100
|
+
- Samstags
|
|
101
|
+
on_days: '%{days}'
|
|
102
|
+
array:
|
|
103
|
+
last_word_connector: ' und '
|
|
104
|
+
two_words_connector: ' und '
|
|
105
|
+
words_connector: ', '
|
|
106
|
+
string:
|
|
107
|
+
format:
|
|
108
|
+
day: '%{rest} %{current}'
|
|
109
|
+
day_of_week: '%{rest} %{current}'
|
|
110
|
+
day_of_month: '%{rest} %{current}'
|
|
111
|
+
day_of_year: '%{rest} %{current}'
|
|
112
|
+
hour_of_day: '%{rest} %{current}'
|
|
113
|
+
minute_of_hour: '%{rest} %{current}'
|
|
114
|
+
until: '%{rest} %{current}'
|
|
115
|
+
count: '%{rest} %{current}'
|
|
116
|
+
default: '%{rest} %{current}'
|
|
117
|
+
|
|
118
|
+
date:
|
|
119
|
+
abbr_day_names:
|
|
120
|
+
- So
|
|
121
|
+
- Mo
|
|
122
|
+
- Di
|
|
123
|
+
- Mi
|
|
124
|
+
- Do
|
|
125
|
+
- Fr
|
|
126
|
+
- Sa
|
|
127
|
+
abbr_month_names:
|
|
128
|
+
-
|
|
129
|
+
- Jan
|
|
130
|
+
- Feb
|
|
131
|
+
- Mär
|
|
132
|
+
- Apr
|
|
133
|
+
- Mai
|
|
134
|
+
- Jun
|
|
135
|
+
- Jul
|
|
136
|
+
- Aug
|
|
137
|
+
- Sep
|
|
138
|
+
- Okt
|
|
139
|
+
- Nov
|
|
140
|
+
- Dez
|
|
141
|
+
day_names:
|
|
142
|
+
- Sonntag
|
|
143
|
+
- Montag
|
|
144
|
+
- Dinstag
|
|
145
|
+
- Mittwoch
|
|
146
|
+
- Donnerstag
|
|
147
|
+
- Freitag
|
|
148
|
+
- Samstag
|
|
149
|
+
formats:
|
|
150
|
+
default: "%Y-%m-%d"
|
|
151
|
+
long: "%B %d, %Y"
|
|
152
|
+
short: "%b %d"
|
|
153
|
+
month_names:
|
|
154
|
+
-
|
|
155
|
+
- Januar
|
|
156
|
+
- Februar
|
|
157
|
+
- März
|
|
158
|
+
- April
|
|
159
|
+
- Mai
|
|
160
|
+
- Juni
|
|
161
|
+
- Juli
|
|
162
|
+
- August
|
|
163
|
+
- September
|
|
164
|
+
- Oktober
|
|
165
|
+
- November
|
|
166
|
+
- Dezember
|
|
167
|
+
order:
|
|
168
|
+
- :year
|
|
169
|
+
- :month
|
|
170
|
+
- :day
|
|
171
|
+
|
|
172
|
+
time:
|
|
173
|
+
am: am
|
|
174
|
+
formats:
|
|
175
|
+
default: "%a, %d %b %Y %H:%M:%S %z"
|
|
176
|
+
long: "%B %d, %Y %H:%M"
|
|
177
|
+
short: "%d %b %H:%M"
|
|
178
|
+
pm: pm
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
fr:
|
|
2
|
+
ice_cube:
|
|
3
|
+
pieces_connector: ' / '
|
|
4
|
+
not: 'pas %{target}'
|
|
5
|
+
not_on: 'pas durant %{target}'
|
|
6
|
+
date:
|
|
7
|
+
formats:
|
|
8
|
+
default: '%d %B %Y'
|
|
9
|
+
month_names:
|
|
10
|
+
-
|
|
11
|
+
- janvier
|
|
12
|
+
- février
|
|
13
|
+
- mars
|
|
14
|
+
- avril
|
|
15
|
+
- mai
|
|
16
|
+
- juin
|
|
17
|
+
- juillet
|
|
18
|
+
- août
|
|
19
|
+
- septembre
|
|
20
|
+
- octobre
|
|
21
|
+
- novembre
|
|
22
|
+
- décembre
|
|
23
|
+
day_names:
|
|
24
|
+
- dimanche
|
|
25
|
+
- lundi
|
|
26
|
+
- mardi
|
|
27
|
+
- mercredi
|
|
28
|
+
- jeudi
|
|
29
|
+
- vendredi
|
|
30
|
+
- samedi
|
|
31
|
+
times:
|
|
32
|
+
other: '%{count} fois'
|
|
33
|
+
one: '%{count} fois'
|
|
34
|
+
until: "jusqu'au %{date}"
|
|
35
|
+
days_of_week: '%{segments} %{day}'
|
|
36
|
+
days_of_month:
|
|
37
|
+
other: '%{segments} jours du mois'
|
|
38
|
+
one: '%{segments} jours du mois'
|
|
39
|
+
days_of_year:
|
|
40
|
+
other: "%{segments} jours de l'année"
|
|
41
|
+
one: "%{segments} jours de l'année"
|
|
42
|
+
at_hours_of_the_day:
|
|
43
|
+
other: aux %{segments} heures de la journée
|
|
44
|
+
one: à %{segments}h
|
|
45
|
+
on_minutes_of_hour:
|
|
46
|
+
other: aux %{segments} minutes de l'heure
|
|
47
|
+
one: à la %{segments} minute de l'heure
|
|
48
|
+
at_seconds_of_minute:
|
|
49
|
+
other: aux %{segments} secondes
|
|
50
|
+
one: à la %{segments} seconde
|
|
51
|
+
on_seconds_of_minute:
|
|
52
|
+
other: aux %{segments} secondes de la minute
|
|
53
|
+
one: à la %{segments} seconde de la minute
|
|
54
|
+
each_second:
|
|
55
|
+
one: Toutes les secondes
|
|
56
|
+
other: Toutes les %{count} secondes
|
|
57
|
+
each_minute:
|
|
58
|
+
one: Toutes les minutes
|
|
59
|
+
other: Toutes les %{count} minutes
|
|
60
|
+
each_hour:
|
|
61
|
+
one: Toutes les heures
|
|
62
|
+
other: Toutes les %{count} heures
|
|
63
|
+
each_day:
|
|
64
|
+
one: Quotidien
|
|
65
|
+
other: Tous les %{count} jours
|
|
66
|
+
each_week:
|
|
67
|
+
one: Hebdomadaire
|
|
68
|
+
other: Toutes les %{count} semaines
|
|
69
|
+
each_month:
|
|
70
|
+
one: Mensuel
|
|
71
|
+
other: Tous les %{count} mois
|
|
72
|
+
each_year:
|
|
73
|
+
one: Annuel
|
|
74
|
+
other: Tous les %{count} ans
|
|
75
|
+
'on': les %{sentence}
|
|
76
|
+
in: 'en %{target}'
|
|
77
|
+
integer:
|
|
78
|
+
negative: '%{ordinal} depuis la fin'
|
|
79
|
+
literal_ordinals:
|
|
80
|
+
-1: derniers
|
|
81
|
+
-2: avant-derniers
|
|
82
|
+
ordinal: '%{number}%{ordinal}'
|
|
83
|
+
ordinals:
|
|
84
|
+
default: '°'
|
|
85
|
+
1: °
|
|
86
|
+
on_weekends: pendant les weekends
|
|
87
|
+
on_weekdays: pendant les jours ouvrés
|
|
88
|
+
days_on:
|
|
89
|
+
- dimanches
|
|
90
|
+
- lundis
|
|
91
|
+
- mardis
|
|
92
|
+
- mercredis
|
|
93
|
+
- jeudis
|
|
94
|
+
- vendredis
|
|
95
|
+
- samedis
|
|
96
|
+
on_days: les %{days}
|
|
97
|
+
array:
|
|
98
|
+
last_word_connector: ', et '
|
|
99
|
+
two_words_connector: ' et '
|
|
100
|
+
words_connector: ', '
|
|
101
|
+
string:
|
|
102
|
+
format:
|
|
103
|
+
day: '%{rest} %{current}'
|
|
104
|
+
day_of_week: '%{rest} %{current}'
|
|
105
|
+
day_of_month: '%{rest} %{current}'
|
|
106
|
+
day_of_year: '%{rest} %{current}'
|
|
107
|
+
hour_of_day: '%{rest} %{current}'
|
|
108
|
+
minute_of_hour: '%{rest} %{current}'
|
|
109
|
+
until: '%{rest} %{current}'
|
|
110
|
+
count: '%{rest} %{current}'
|
|
111
|
+
default: '%{rest} %{current}'
|
|
112
|
+
|
|
113
|
+
date:
|
|
114
|
+
abbr_day_names:
|
|
115
|
+
- Dim
|
|
116
|
+
- Lun
|
|
117
|
+
- Mar
|
|
118
|
+
- Mer
|
|
119
|
+
- Jeu
|
|
120
|
+
- Ven
|
|
121
|
+
- Sam
|
|
122
|
+
abbr_month_names:
|
|
123
|
+
-
|
|
124
|
+
- Jan
|
|
125
|
+
- Fév
|
|
126
|
+
- Mar
|
|
127
|
+
- Avr
|
|
128
|
+
- Mai
|
|
129
|
+
- Jun
|
|
130
|
+
- Jul
|
|
131
|
+
- Aou
|
|
132
|
+
- Sep
|
|
133
|
+
- Oct
|
|
134
|
+
- Nov
|
|
135
|
+
- Déc
|
|
136
|
+
day_names:
|
|
137
|
+
- dimanche
|
|
138
|
+
- lundi
|
|
139
|
+
- mardi
|
|
140
|
+
- mecredi
|
|
141
|
+
- jeudi
|
|
142
|
+
- vendredi
|
|
143
|
+
- samedi
|
|
144
|
+
formats:
|
|
145
|
+
default: "%d-%m-%Y"
|
|
146
|
+
long: "%d %B %Y"
|
|
147
|
+
short: "%d %b"
|
|
148
|
+
month_names:
|
|
149
|
+
-
|
|
150
|
+
- janvier
|
|
151
|
+
- février
|
|
152
|
+
- mars
|
|
153
|
+
- avril
|
|
154
|
+
- mai
|
|
155
|
+
- juin
|
|
156
|
+
- juillet
|
|
157
|
+
- août
|
|
158
|
+
- septembre
|
|
159
|
+
- octobre
|
|
160
|
+
- novembre
|
|
161
|
+
- décembre
|
|
162
|
+
order:
|
|
163
|
+
- :year
|
|
164
|
+
- :month
|
|
165
|
+
- :day
|
|
166
|
+
|
|
167
|
+
time:
|
|
168
|
+
am: am
|
|
169
|
+
formats:
|
|
170
|
+
default: "%a, %d %b %Y %H:%M:%S %z"
|
|
171
|
+
long: "%d %B %Y %H:%M"
|
|
172
|
+
short: "%d %b %H:%M"
|
|
173
|
+
pm: pm
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
ice_cube:
|
|
3
|
+
pieces_connector: ' / '
|
|
4
|
+
not: 'не %{target}'
|
|
5
|
+
not_on: 'не в %{target}'
|
|
6
|
+
date:
|
|
7
|
+
formats:
|
|
8
|
+
default: '%-d %B %Y'
|
|
9
|
+
month_names:
|
|
10
|
+
-
|
|
11
|
+
- январь
|
|
12
|
+
- февраль
|
|
13
|
+
- март
|
|
14
|
+
- апрель
|
|
15
|
+
- май
|
|
16
|
+
- июнь
|
|
17
|
+
- июль
|
|
18
|
+
- август
|
|
19
|
+
- сентябрь
|
|
20
|
+
- октябрь
|
|
21
|
+
- ноябрь
|
|
22
|
+
- декабрь
|
|
23
|
+
day_names:
|
|
24
|
+
- воскресенье
|
|
25
|
+
- понедельник
|
|
26
|
+
- вторник
|
|
27
|
+
- среда
|
|
28
|
+
- четверг
|
|
29
|
+
- пятница
|
|
30
|
+
- суббота
|
|
31
|
+
times:
|
|
32
|
+
other: '%{count} раза'
|
|
33
|
+
many: '%{count} раз'
|
|
34
|
+
few: '%{count} раза'
|
|
35
|
+
one: '%{count} раз'
|
|
36
|
+
until: 'до %{date}'
|
|
37
|
+
days_of_week: '%{segments} %{day}'
|
|
38
|
+
days_of_month:
|
|
39
|
+
other: '%{segments} день месяца'
|
|
40
|
+
many: '%{segments} день месяца'
|
|
41
|
+
few: '%{segments} день месяца'
|
|
42
|
+
one: '%{segments} день месяца'
|
|
43
|
+
days_of_year:
|
|
44
|
+
other: '%{segments} день года'
|
|
45
|
+
many: '%{segments} день года'
|
|
46
|
+
few: '%{segments} день года'
|
|
47
|
+
one: '%{segments} день года'
|
|
48
|
+
at_hours_of_the_day:
|
|
49
|
+
other: в %{segments} часы дня
|
|
50
|
+
many: в %{segments} часы дня
|
|
51
|
+
few: в %{segments} часы дня
|
|
52
|
+
one: в %{segments} час дня
|
|
53
|
+
on_minutes_of_hour:
|
|
54
|
+
other: в %{segments} минуты часа
|
|
55
|
+
many: в %{segments} минуты часа
|
|
56
|
+
few: в %{segments} минуты часа
|
|
57
|
+
one: в %{segments} минуту часа
|
|
58
|
+
on_seconds_of_minute:
|
|
59
|
+
other: на %{segments} секунде минуты
|
|
60
|
+
many: на %{segments} секунде минуты
|
|
61
|
+
few: на %{segments} секунде минуты
|
|
62
|
+
one: на %{segments} секунде минуты
|
|
63
|
+
each_second:
|
|
64
|
+
one: Ежесекундно
|
|
65
|
+
few: Каждые %{count} секунды
|
|
66
|
+
many: Каждые %{count} секунд
|
|
67
|
+
other: Каждые %{count} секунды
|
|
68
|
+
each_minute:
|
|
69
|
+
one: Ежеминутно
|
|
70
|
+
few: Каждые %{count} минуты
|
|
71
|
+
many: Каждые %{count} минут
|
|
72
|
+
other: Каждые %{count} минуты
|
|
73
|
+
each_hour:
|
|
74
|
+
one: Каждый час
|
|
75
|
+
few: Каждые %{count} часа
|
|
76
|
+
many: Каждые %{count} часов
|
|
77
|
+
other: Каждые %{count} часа
|
|
78
|
+
each_day:
|
|
79
|
+
one: Ежедневно
|
|
80
|
+
few: Каждые %{count} дня
|
|
81
|
+
many: Каждые %{count} дней
|
|
82
|
+
other: Каждые %{count} дня
|
|
83
|
+
each_week:
|
|
84
|
+
one: Еженедельно
|
|
85
|
+
few: Каждые %{count} недели
|
|
86
|
+
many: Каждые %{count} недель
|
|
87
|
+
other: Каждые %{count} недели
|
|
88
|
+
each_month:
|
|
89
|
+
one: Ежемесячно
|
|
90
|
+
few: Каждые %{count} месяца
|
|
91
|
+
many: Каждые %{count} месяцев
|
|
92
|
+
other: Каждые %{count} месяца
|
|
93
|
+
each_year:
|
|
94
|
+
one: Ежегодно
|
|
95
|
+
few: Каждые %{count} года
|
|
96
|
+
many: Каждые %{count} лет
|
|
97
|
+
other: Каждые %{count} года
|
|
98
|
+
'on': в %{sentence}
|
|
99
|
+
in: 'через %{target}'
|
|
100
|
+
integer:
|
|
101
|
+
negative: '%{ordinal} с конца'
|
|
102
|
+
literal_ordinals:
|
|
103
|
+
-1: последний
|
|
104
|
+
-2: предпоследний
|
|
105
|
+
ordinal: '%{number}%{ordinal}'
|
|
106
|
+
ordinals:
|
|
107
|
+
default: ''
|
|
108
|
+
on_weekends: на выходных
|
|
109
|
+
on_weekdays: по будням
|
|
110
|
+
days_on:
|
|
111
|
+
- воскресеньям
|
|
112
|
+
- понедельникам
|
|
113
|
+
- вторникам
|
|
114
|
+
- средам
|
|
115
|
+
- четвергам
|
|
116
|
+
- пятницам
|
|
117
|
+
- субботам
|
|
118
|
+
on_days: по %{days}
|
|
119
|
+
array:
|
|
120
|
+
last_word_connector: ' и '
|
|
121
|
+
two_words_connector: ' и '
|
|
122
|
+
words_connector: ', '
|
|
123
|
+
string:
|
|
124
|
+
format:
|
|
125
|
+
day: '%{rest} %{current}'
|
|
126
|
+
day_of_week: '%{rest} %{current}'
|
|
127
|
+
day_of_month: '%{rest} %{current}'
|
|
128
|
+
day_of_year: '%{rest} %{current}'
|
|
129
|
+
hour_of_day: '%{rest} %{current}'
|
|
130
|
+
minute_of_hour: '%{rest} %{current}'
|
|
131
|
+
until: '%{rest} %{current}'
|
|
132
|
+
count: '%{rest} %{current}'
|
|
133
|
+
default: '%{rest} %{current}'
|
|
134
|
+
|
|
135
|
+
date:
|
|
136
|
+
abbr_day_names:
|
|
137
|
+
- Вс
|
|
138
|
+
- Пн
|
|
139
|
+
- Вт
|
|
140
|
+
- Ср
|
|
141
|
+
- Чт
|
|
142
|
+
- Пт
|
|
143
|
+
- Сб
|
|
144
|
+
abbr_month_names:
|
|
145
|
+
-
|
|
146
|
+
- Янв.
|
|
147
|
+
- Февр.
|
|
148
|
+
- Марта
|
|
149
|
+
- Апр.
|
|
150
|
+
- Мая
|
|
151
|
+
- Июня
|
|
152
|
+
- Июля
|
|
153
|
+
- Авг.
|
|
154
|
+
- Сент.
|
|
155
|
+
- Окт.
|
|
156
|
+
- Нояб.
|
|
157
|
+
- Дек.
|
|
158
|
+
day_names:
|
|
159
|
+
- Воскресенье
|
|
160
|
+
- Понедельник
|
|
161
|
+
- Вторник
|
|
162
|
+
- Среда
|
|
163
|
+
- Четверг
|
|
164
|
+
- Пятница
|
|
165
|
+
- Суббота
|
|
166
|
+
formats:
|
|
167
|
+
default: "%d.%m.%Y"
|
|
168
|
+
short: "%d %b"
|
|
169
|
+
long: "%d %B %Y"
|
|
170
|
+
month_names:
|
|
171
|
+
-
|
|
172
|
+
- Января
|
|
173
|
+
- Февраля
|
|
174
|
+
- Марта
|
|
175
|
+
- Апреля
|
|
176
|
+
- Мая
|
|
177
|
+
- Июня
|
|
178
|
+
- Июля
|
|
179
|
+
- Августа
|
|
180
|
+
- Сентября
|
|
181
|
+
- Октября
|
|
182
|
+
- Ноября
|
|
183
|
+
- Декабря
|
|
184
|
+
order:
|
|
185
|
+
- :day
|
|
186
|
+
- :month
|
|
187
|
+
- :year
|
|
188
|
+
|
|
189
|
+
time:
|
|
190
|
+
am: утра
|
|
191
|
+
formats:
|
|
192
|
+
default: "%a, %d %b %Y, %H:%M:%S %z"
|
|
193
|
+
short: "%d %b, %H:%M"
|
|
194
|
+
long: "%d %B %Y, %H:%M"
|
|
195
|
+
pm: вечера
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
sv:
|
|
2
|
+
ice_cube:
|
|
3
|
+
pieces_connector: ' / '
|
|
4
|
+
not: 'inte %{target}'
|
|
5
|
+
not_on: 'inte i %{target}'
|
|
6
|
+
date:
|
|
7
|
+
formats:
|
|
8
|
+
default: '%-d %B %Y'
|
|
9
|
+
month_names:
|
|
10
|
+
-
|
|
11
|
+
- januari
|
|
12
|
+
- februari
|
|
13
|
+
- mars
|
|
14
|
+
- april
|
|
15
|
+
- maj
|
|
16
|
+
- juni
|
|
17
|
+
- juli
|
|
18
|
+
- augusti
|
|
19
|
+
- september
|
|
20
|
+
- oktober
|
|
21
|
+
- november
|
|
22
|
+
- december
|
|
23
|
+
day_names:
|
|
24
|
+
- söndag
|
|
25
|
+
- måndag
|
|
26
|
+
- tisdag
|
|
27
|
+
- onsdag
|
|
28
|
+
- torsdag
|
|
29
|
+
- fredag
|
|
30
|
+
- lördag
|
|
31
|
+
times:
|
|
32
|
+
other: '%{count} gånger'
|
|
33
|
+
one: '%{count} gång'
|
|
34
|
+
until: 'tills %{date}'
|
|
35
|
+
days_of_week: '%{segments} %{day}'
|
|
36
|
+
days_of_month:
|
|
37
|
+
other: '%{segments} dagen i månaden'
|
|
38
|
+
one: '%{segments} dagen i månaden'
|
|
39
|
+
days_of_year:
|
|
40
|
+
other: '%{segments} dagen på året'
|
|
41
|
+
one: '%{segments} dagen på året'
|
|
42
|
+
at_hours_of_the_day:
|
|
43
|
+
other: i %{segments} timme på dygnet
|
|
44
|
+
one: i %{segments} timme på dygnet
|
|
45
|
+
on_minutes_of_hour:
|
|
46
|
+
other: i %{segments} minuter av timmen
|
|
47
|
+
one: i %{segments} minuten av timmen
|
|
48
|
+
on_seconds_of_minute:
|
|
49
|
+
other: på %{segments} sekunden av minuten
|
|
50
|
+
one: på %{segments} sekunden av minuten
|
|
51
|
+
each_second:
|
|
52
|
+
one: Varje sekund
|
|
53
|
+
other: Varje %{count} sekund
|
|
54
|
+
each_minute:
|
|
55
|
+
one: Varje minut
|
|
56
|
+
other: Varje %{count} minut
|
|
57
|
+
each_hour:
|
|
58
|
+
one: Varje timme
|
|
59
|
+
other: Varje %{count} timme
|
|
60
|
+
each_day:
|
|
61
|
+
one: Varje dag
|
|
62
|
+
other: Varje %{count} dag
|
|
63
|
+
each_week:
|
|
64
|
+
one: Varje vecka
|
|
65
|
+
other: Varje %{count} vecka
|
|
66
|
+
each_month:
|
|
67
|
+
one: Varje månad
|
|
68
|
+
other: Varje %{count} månad
|
|
69
|
+
each_year:
|
|
70
|
+
one: Varje år
|
|
71
|
+
other: Varje %{count} år
|
|
72
|
+
'on': i %{sentence}
|
|
73
|
+
in: 'efter %{target}'
|
|
74
|
+
integer:
|
|
75
|
+
negative: '%{ordinal} från slutet'
|
|
76
|
+
literal_ordinals:
|
|
77
|
+
-1: sista
|
|
78
|
+
-2: nästsista
|
|
79
|
+
ordinal: '%{number}%{ordinal}'
|
|
80
|
+
ordinals:
|
|
81
|
+
default: ''
|
|
82
|
+
on_weekends: på helger
|
|
83
|
+
on_weekdays: på vardagar
|
|
84
|
+
days_on:
|
|
85
|
+
- söndagar
|
|
86
|
+
- måndagar
|
|
87
|
+
- tisdagar
|
|
88
|
+
- onsdagar
|
|
89
|
+
- torsdagar
|
|
90
|
+
- fredagar
|
|
91
|
+
- lördagar
|
|
92
|
+
on_days: på %{days}
|
|
93
|
+
array:
|
|
94
|
+
last_word_connector: ' och '
|
|
95
|
+
two_words_connector: ' och '
|
|
96
|
+
words_connector: ', '
|
|
97
|
+
string:
|
|
98
|
+
format:
|
|
99
|
+
day: '%{rest} %{current}'
|
|
100
|
+
day_of_week: '%{rest} %{current}'
|
|
101
|
+
day_of_month: '%{rest} %{current}'
|
|
102
|
+
day_of_year: '%{rest} %{current}'
|
|
103
|
+
hour_of_day: '%{rest} %{current}'
|
|
104
|
+
minute_of_hour: '%{rest} %{current}'
|
|
105
|
+
until: '%{rest} %{current}'
|
|
106
|
+
count: '%{rest} %{current}'
|
|
107
|
+
default: '%{rest} %{current}'
|
|
108
|
+
|
|
109
|
+
date:
|
|
110
|
+
abbr_day_names:
|
|
111
|
+
- Sön
|
|
112
|
+
- Mån
|
|
113
|
+
- Tis
|
|
114
|
+
- Ons
|
|
115
|
+
- Tor
|
|
116
|
+
- Fre
|
|
117
|
+
- Lör
|
|
118
|
+
abbr_month_names:
|
|
119
|
+
-
|
|
120
|
+
- Jan
|
|
121
|
+
- Feb
|
|
122
|
+
- Mar
|
|
123
|
+
- Apr
|
|
124
|
+
- Maj
|
|
125
|
+
- Jun
|
|
126
|
+
- Jul
|
|
127
|
+
- Aug
|
|
128
|
+
- Sep
|
|
129
|
+
- Okt
|
|
130
|
+
- Mov
|
|
131
|
+
- Dec
|
|
132
|
+
day_names:
|
|
133
|
+
- Söndag
|
|
134
|
+
- Måndag
|
|
135
|
+
- Tisdag
|
|
136
|
+
- Onsdag
|
|
137
|
+
- Torsdag
|
|
138
|
+
- Fredag
|
|
139
|
+
- Lördag
|
|
140
|
+
formats:
|
|
141
|
+
default: "%Y-%m-%d"
|
|
142
|
+
long: "%e %B %Y"
|
|
143
|
+
short: "%e %b"
|
|
144
|
+
month_names:
|
|
145
|
+
-
|
|
146
|
+
- Januari
|
|
147
|
+
- Februari
|
|
148
|
+
- Mars
|
|
149
|
+
- April
|
|
150
|
+
- Maj
|
|
151
|
+
- Juni
|
|
152
|
+
- Juli
|
|
153
|
+
- Augusti
|
|
154
|
+
- September
|
|
155
|
+
- Oktober
|
|
156
|
+
- November
|
|
157
|
+
- December
|
|
158
|
+
order:
|
|
159
|
+
- :day
|
|
160
|
+
- :month
|
|
161
|
+
- :year
|
|
162
|
+
|
|
163
|
+
time:
|
|
164
|
+
am: ''
|
|
165
|
+
formats:
|
|
166
|
+
default: "%a, %e %b %Y %H:%M:%S %z"
|
|
167
|
+
long: "%e %B %Y %H:%M"
|
|
168
|
+
short: "%e %b %H:%M"
|
|
169
|
+
pm: ''
|
|
@@ -24,14 +24,17 @@ module IceCube
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def self.rule_from_ical(ical)
|
|
27
|
-
|
|
27
|
+
raise ArgumentError, 'empty ical rule' if ical.nil?
|
|
28
|
+
|
|
29
|
+
validations = {}
|
|
30
|
+
params = {validations: validations, interval: 1}
|
|
28
31
|
|
|
29
32
|
ical.split(';').each do |rule|
|
|
30
33
|
(name, value) = rule.split('=')
|
|
31
34
|
value.strip!
|
|
32
35
|
case name
|
|
33
36
|
when 'FREQ'
|
|
34
|
-
params[:
|
|
37
|
+
params[:rule_type] = "IceCube::#{value[0]}#{value.downcase[1..-1]}Rule"
|
|
35
38
|
when 'INTERVAL'
|
|
36
39
|
params[:interval] = value.to_i
|
|
37
40
|
when 'COUNT'
|
|
@@ -39,13 +42,13 @@ module IceCube
|
|
|
39
42
|
when 'UNTIL'
|
|
40
43
|
params[:until] = Time.parse(value).utc
|
|
41
44
|
when 'WKST'
|
|
42
|
-
params[:
|
|
45
|
+
params[:week_start] = TimeUtil.ical_day_to_symbol(value)
|
|
43
46
|
when 'BYSECOND'
|
|
44
|
-
|
|
47
|
+
validations[:second_of_minute] = value.split(',').map(&:to_i)
|
|
45
48
|
when 'BYMINUTE'
|
|
46
|
-
|
|
49
|
+
validations[:minute_of_hour] = value.split(',').map(&:to_i)
|
|
47
50
|
when 'BYHOUR'
|
|
48
|
-
|
|
51
|
+
validations[:hour_of_day] = value.split(',').map(&:to_i)
|
|
49
52
|
when 'BYDAY'
|
|
50
53
|
dows = {}
|
|
51
54
|
days = []
|
|
@@ -59,33 +62,21 @@ module IceCube
|
|
|
59
62
|
days.push TimeUtil.sym_to_wday(day) if dows[day].nil?
|
|
60
63
|
end
|
|
61
64
|
end
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
validations[:day_of_week] = dows unless dows.empty?
|
|
66
|
+
validations[:day] = days unless days.empty?
|
|
64
67
|
when 'BYMONTHDAY'
|
|
65
|
-
|
|
68
|
+
validations[:day_of_month] = value.split(',').map(&:to_i)
|
|
66
69
|
when 'BYMONTH'
|
|
67
|
-
|
|
70
|
+
validations[:month_of_year] = value.split(',').map(&:to_i)
|
|
68
71
|
when 'BYYEARDAY'
|
|
69
|
-
|
|
72
|
+
validations[:day_of_year] = value.split(',').map(&:to_i)
|
|
70
73
|
when 'BYSETPOS'
|
|
71
74
|
else
|
|
72
|
-
|
|
75
|
+
validations[name] = nil # invalid type
|
|
73
76
|
end
|
|
74
77
|
end
|
|
75
78
|
|
|
76
|
-
params
|
|
77
|
-
|
|
78
|
-
# WKST only valid for weekly rules
|
|
79
|
-
params.delete(:wkst) unless params[:freq] == 'weekly'
|
|
80
|
-
|
|
81
|
-
rule = Rule.send(*params.values_at(:freq, :interval, :wkst).compact)
|
|
82
|
-
rule.count(params[:count]) if params[:count]
|
|
83
|
-
rule.until(params[:until]) if params[:until]
|
|
84
|
-
params[:validations].each do |key, value|
|
|
85
|
-
value.is_a?(Array) ? rule.send(key, *value) : rule.send(key, value)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
rule
|
|
79
|
+
Rule.from_hash(params)
|
|
89
80
|
end
|
|
90
81
|
end
|
|
91
82
|
end
|
data/lib/ice_cube/rule.rb
CHANGED
|
@@ -4,6 +4,11 @@ module IceCube
|
|
|
4
4
|
|
|
5
5
|
class Rule
|
|
6
6
|
|
|
7
|
+
INTERVAL_TYPES = [
|
|
8
|
+
:secondly, :minutely, :hourly,
|
|
9
|
+
:daily, :weekly, :monthly, :yearly
|
|
10
|
+
]
|
|
11
|
+
|
|
7
12
|
attr_reader :uses
|
|
8
13
|
|
|
9
14
|
# Is this a terminating schedule?
|
|
@@ -46,21 +51,6 @@ module IceCube
|
|
|
46
51
|
raise MethodNotImplemented, "Expected to be overridden by subclasses"
|
|
47
52
|
end
|
|
48
53
|
|
|
49
|
-
# Convert from a hash and create a rule
|
|
50
|
-
def self.from_hash(original_hash)
|
|
51
|
-
hash = IceCube::FlexibleHash.new original_hash
|
|
52
|
-
return nil unless match = hash[:rule_type].match(/\:\:(.+?)Rule/)
|
|
53
|
-
rule = IceCube::Rule.send(match[1].downcase.to_sym, hash[:interval] || 1)
|
|
54
|
-
rule.interval(hash[:interval] || 1, TimeUtil.wday_to_sym(hash[:week_start] || 0)) if match[1] == "Weekly"
|
|
55
|
-
rule.until(TimeUtil.deserialize_time(hash[:until])) if hash[:until]
|
|
56
|
-
rule.count(hash[:count]) if hash[:count]
|
|
57
|
-
hash[:validations] && hash[:validations].each do |key, value|
|
|
58
|
-
key = key.to_sym unless key.is_a?(Symbol)
|
|
59
|
-
value.is_a?(Array) ? rule.send(key, *value) : rule.send(key, value)
|
|
60
|
-
end
|
|
61
|
-
rule
|
|
62
|
-
end
|
|
63
|
-
|
|
64
54
|
# Reset the uses on the rule to 0
|
|
65
55
|
def reset
|
|
66
56
|
@uses = 0
|
|
@@ -78,6 +68,36 @@ module IceCube
|
|
|
78
68
|
!@count.nil?
|
|
79
69
|
end
|
|
80
70
|
|
|
71
|
+
class << self
|
|
72
|
+
|
|
73
|
+
# Convert from a hash and create a rule
|
|
74
|
+
def from_hash(original_hash)
|
|
75
|
+
hash = IceCube::FlexibleHash.new original_hash
|
|
76
|
+
return nil unless match = hash[:rule_type].match(/\:\:(.+?)Rule/)
|
|
77
|
+
|
|
78
|
+
interval_type = match[1].downcase.to_sym
|
|
79
|
+
raise ArgumentError, "Invalid rule frequency type: #{match[1]}" unless INTERVAL_TYPES.include?(interval_type)
|
|
80
|
+
|
|
81
|
+
rule = IceCube::Rule.send(interval_type, hash[:interval] || 1)
|
|
82
|
+
rule.interval(hash[:interval] || 1, TimeUtil.wday_to_sym(hash[:week_start] || 0)) if match[1] == "Weekly"
|
|
83
|
+
rule.until(TimeUtil.deserialize_time(hash[:until])) if hash[:until]
|
|
84
|
+
rule.count(hash[:count]) if hash[:count]
|
|
85
|
+
hash[:validations] && hash[:validations].each do |name, args|
|
|
86
|
+
apply_validation(rule, name, args)
|
|
87
|
+
end
|
|
88
|
+
rule
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
private
|
|
92
|
+
|
|
93
|
+
def apply_validation(rule, name, args)
|
|
94
|
+
name = name.to_sym
|
|
95
|
+
raise ArgumentError, "Invalid rule validation type: #{name}" unless ValidatedRule::VALIDATION_ORDER.include?(name)
|
|
96
|
+
args.is_a?(Array) ? rule.send(name, *args) : rule.send(name, args)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
end
|
|
100
|
+
|
|
81
101
|
# Convenience methods for creating Rules
|
|
82
102
|
class << self
|
|
83
103
|
|
data/lib/ice_cube/schedule.rb
CHANGED
|
@@ -181,14 +181,14 @@ module IceCube
|
|
|
181
181
|
|
|
182
182
|
# The previous occurrence from a given time
|
|
183
183
|
def previous_occurrence(from)
|
|
184
|
-
from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{
|
|
184
|
+
from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{from.inspect}"
|
|
185
185
|
return nil if from <= start_time
|
|
186
186
|
enumerate_occurrences(start_time, from - 1).to_a.last
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
# The previous n occurrences before a given time
|
|
190
190
|
def previous_occurrences(num, from)
|
|
191
|
-
from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{
|
|
191
|
+
from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{from.inspect}"
|
|
192
192
|
return [] if from <= start_time
|
|
193
193
|
a = enumerate_occurrences(start_time, from - 1).to_a
|
|
194
194
|
a.size > num ? a[-1*num,a.size] : a
|
data/lib/ice_cube/time_util.rb
CHANGED
|
@@ -42,7 +42,7 @@ module IceCube
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def self.match_zone(input_time, reference)
|
|
45
|
-
return unless time = ensure_time(input_time)
|
|
45
|
+
return unless time = ensure_time(input_time, reference)
|
|
46
46
|
time = if reference.respond_to? :time_zone
|
|
47
47
|
time.in_time_zone(reference.time_zone)
|
|
48
48
|
else
|
|
@@ -58,13 +58,21 @@ module IceCube
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
# Ensure that this is either nil, or a time
|
|
61
|
-
def self.ensure_time(time, date_eod = false)
|
|
61
|
+
def self.ensure_time(time, reference = nil, date_eod = false)
|
|
62
62
|
case time
|
|
63
63
|
when DateTime
|
|
64
64
|
warn "IceCube: DateTime support is deprecated (please use Time) at: #{ caller[2] }"
|
|
65
65
|
Time.local(time.year, time.month, time.day, time.hour, time.min, time.sec)
|
|
66
66
|
when Date
|
|
67
|
-
date_eod
|
|
67
|
+
if date_eod
|
|
68
|
+
end_of_date(time, reference)
|
|
69
|
+
else
|
|
70
|
+
if reference
|
|
71
|
+
build_in_zone([time.year, time.month, time.day], reference)
|
|
72
|
+
else
|
|
73
|
+
time.to_time
|
|
74
|
+
end
|
|
75
|
+
end
|
|
68
76
|
else
|
|
69
77
|
time
|
|
70
78
|
end
|
|
@@ -5,6 +5,8 @@ module IceCube
|
|
|
5
5
|
module Validations::Day
|
|
6
6
|
|
|
7
7
|
def day(*days)
|
|
8
|
+
days = days.flatten
|
|
9
|
+
return self if days.empty?
|
|
8
10
|
days.flatten.each do |day|
|
|
9
11
|
unless day.is_a?(Fixnum) || day.is_a?(Symbol)
|
|
10
12
|
raise ArgumentError, "expecting Fixnum or Symbol value for day, got #{day.inspect}"
|
|
@@ -11,7 +11,6 @@ module IceCube
|
|
|
11
11
|
deprecated_alias :until_date, :until_time
|
|
12
12
|
|
|
13
13
|
def until(time)
|
|
14
|
-
time = TimeUtil.ensure_time(time, true)
|
|
15
14
|
@until = time
|
|
16
15
|
replace_validations_for(:until, time.nil? ? nil : [Validation.new(time)])
|
|
17
16
|
self
|
|
@@ -34,7 +33,8 @@ module IceCube
|
|
|
34
33
|
end
|
|
35
34
|
|
|
36
35
|
def validate(step_time, schedule)
|
|
37
|
-
|
|
36
|
+
end_time = TimeUtil.ensure_time(time, schedule.start_time, true)
|
|
37
|
+
raise UntilExceeded if step_time > end_time
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def build_s(builder)
|
data/lib/ice_cube/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ice_cube
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Crepezzi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2017-01-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -38,48 +38,6 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 2.12.0
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: activesupport
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 3.0.0
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 3.0.0
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: tzinfo
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: i18n
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
41
|
description: ice_cube is a recurring date library for Ruby. It allows for quick,
|
|
84
42
|
programatic expansion of recurring date rules.
|
|
85
43
|
email: john@crepezzi.com
|
|
@@ -87,9 +45,13 @@ executables: []
|
|
|
87
45
|
extensions: []
|
|
88
46
|
extra_rdoc_files: []
|
|
89
47
|
files:
|
|
48
|
+
- config/locales/de.yml
|
|
90
49
|
- config/locales/en.yml
|
|
91
50
|
- config/locales/es.yml
|
|
51
|
+
- config/locales/fr.yml
|
|
92
52
|
- config/locales/ja.yml
|
|
53
|
+
- config/locales/ru.yml
|
|
54
|
+
- config/locales/sv.yml
|
|
93
55
|
- lib/ice_cube.rb
|
|
94
56
|
- lib/ice_cube/builders/hash_builder.rb
|
|
95
57
|
- lib/ice_cube/builders/ical_builder.rb
|
|
@@ -158,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
158
120
|
version: '0'
|
|
159
121
|
requirements: []
|
|
160
122
|
rubyforge_project: ice-cube
|
|
161
|
-
rubygems_version: 2.
|
|
123
|
+
rubygems_version: 2.5.2
|
|
162
124
|
signing_key:
|
|
163
125
|
specification_version: 4
|
|
164
126
|
summary: Ruby Date Recurrence Library
|