opening_hours_converter 1.6.5 → 1.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7620943b112f4e05e8e88a5aba3e54ad9e82cf92
4
- data.tar.gz: 909f4a789f28ae86c17cd09abbdcf2b66b39dac2
3
+ metadata.gz: 8dde0e88ef73e434363226fda08f86a3c90f64ff
4
+ data.tar.gz: e1dcb8effef3ea9ffad5034bf8783bede0fa40c3
5
5
  SHA512:
6
- metadata.gz: e279574b1c77844b7d3cc20da4141bb14c5a4e34d61d2b78bd7de239bed0e7695a9a5353c33a9b3ac3e8882cfdec2b6172eaea62b0e34a3b34db539256741da2
7
- data.tar.gz: d3f5e5e8f9313cce07f64d822415eb21db34806ec900c2b448b25f147d96661a0b2cd53592727add1267e8158f871ddc2f24d4311aa9f8b8b616358744af47bd
6
+ metadata.gz: 870f6a0df3790e759e36c911542b4144f10a76503a22474299c3db448eac75f0abe3611edd276aa25e6d9764294b0f6b82ffe57376f787f127b8006393492559
7
+ data.tar.gz: dbb28223d2991e3e8cf7c94b986f483f40e56e20d15880539adb228a3e2764497bebd721239eee3d6ca01157ecc77d51b6d9387a8461987d0a51e0f8e2f4c61a
@@ -233,22 +233,189 @@ module OpeningHoursConverter
233
233
  return result
234
234
  end
235
235
 
236
- def has_superior_or_equal_start_day?(my, o)
236
+ def touch?(o)
237
+ return true if contains?(o)
238
+ return true if o.type == "always" || @type == "always"
239
+ result = false
240
+ if self.equals(o)
241
+ result = true
242
+ else
243
+ my = to_day
244
+ o = o.to_day
245
+
246
+ result = ((my_start_is_before_o_end?(my, o) && my_start_is_after_o_start?(my, o)) ||
247
+ (my_end_is_before_o_end?(my, o) && my_end_is_after_o_start?(my, o))) ||
248
+ ((my_start_is_before_o_end?(o, my) && my_start_is_after_o_start?(o, my)) ||
249
+ (my_end_is_before_o_end?(o, my) && my_end_is_after_o_start?(o, my)))
250
+ end
251
+ return result
252
+ end
253
+
254
+ def my_start_is_after_o_start?(my, o)
237
255
  result = false
238
256
  if has_start_year?(o) && has_start_year?(my)
239
- result = o.start[:year] > my.start[:year] || (o.start[:year] == my.start[:year] && has_superior_start_month?(my, o))
257
+ result = o.start[:year] < my.start[:year] || (o.start[:year] == my.start[:year] &&
258
+ my_start_day_is_after_o_start_day?(my, o))
240
259
  elsif !has_start_year?(o) && !has_start_year?(my)
241
- result = has_superior_start_month?(my, o)
260
+ result = my_start_day_is_after_o_start_day?(my, o)
261
+ end
262
+ result
263
+ end
264
+
265
+ def my_start_is_before_o_start?(my, o)
266
+ result = false
267
+ if has_start_year?(o) && has_start_year?(my)
268
+ result = o.start[:year] > my.start[:year] || (o.start[:year] == my.start[:year] &&
269
+ my_start_day_is_before_o_start_day?(my, o))
270
+ elsif !has_start_year?(o) && !has_start_year?(my)
271
+ result = my_start_day_is_before_o_start_day?(my, o)
242
272
  end
243
273
  result
244
274
  end
245
275
 
276
+ def my_end_is_before_o_end?(my, o)
277
+ result = false
278
+ if !my.end.nil? && !o.end.nil?
279
+ if has_end_year?(o) && has_end_year?(my)
280
+ result = o.end[:year] > my.end[:year] || (o.end[:year] == my.end[:year] &&
281
+ my_end_day_is_before_o_end_day?(my, o))
282
+ elsif !has_end_year?(o) && !has_end_year?(my)
283
+ result = my_end_day_is_before_o_end_day?(my, o)
284
+ end
285
+ else
286
+ my_start_is_before_o_start?(my, o)
287
+ end
288
+ result
289
+ end
290
+
291
+ def my_start_is_before_o_end?(my, o)
292
+ result = false
293
+ if has_start_year?(o) && has_start_year?(my)
294
+ if o.end
295
+ result = o.end[:year] > my.start[:year] || (o.end[:year] == my.start[:year] &&
296
+ my_start_day_is_before_o_end_day?(my, o))
297
+ else
298
+ result = o.start[:year] > my.start[:year] || (o.start[:year] == my.start[:year] &&
299
+ my_start_day_is_before_o_end_day?(my, o))
300
+ end
301
+ elsif !has_start_year?(o) && !has_start_year?(my)
302
+ result = my_start_day_is_before_o_end_day?(my, o)
303
+ end
304
+ result
305
+ end
306
+
307
+ def my_end_is_after_o_start?(my, o)
308
+ result = false
309
+ if has_start_year?(o) && has_start_year?(my)
310
+ if my.end
311
+ result = o.start[:year] < my.end[:year] || (o.start[:year] == my.end[:year] &&
312
+ my_end_day_is_after_o_start_day?(my, o))
313
+ else
314
+ result = o.start[:year] < my.start[:year] || (o.start[:year] == my.start[:year] &&
315
+ my_end_day_is_after_o_start_day?(my, o))
316
+ end
317
+ elsif !has_start_year?(o) && !has_start_year?(my)
318
+ result = my_end_day_is_after_o_start_day?(my, o)
319
+ end
320
+ result
321
+ end
322
+
323
+ def my_start_day_is_after_o_start_day?(my, o)
324
+ (o.start[:month] < my.start[:month] ||
325
+ (o.start[:month] == my.start[:month] &&
326
+ o.start[:day] <= my.start[:day]))
327
+ end
328
+
329
+ def my_start_day_is_before_o_start_day?(my, o)
330
+ (o.start[:month] > my.start[:month] ||
331
+ (o.start[:month] == my.start[:month] &&
332
+ o.start[:day] >= my.start[:day]))
333
+ end
334
+
335
+ def my_start_day_is_before_o_end_day?(my, o)
336
+ if !o.end.nil?
337
+ (o.end[:month] > my.start[:month] ||
338
+ (o.end[:month] == my.start[:month] &&
339
+ o.end[:day] >= my.start[:day]))
340
+ else
341
+ (o.start[:month] > my.start[:month] ||
342
+ (o.start[:month] == my.start[:month] &&
343
+ o.start[:day] >= my.start[:day]))
344
+ end
345
+ end
346
+
347
+ def my_start_day_is_after_o_end_day?(my, o)
348
+ if !o.end.nil?
349
+ (o.end[:month] < my.start[:month] ||
350
+ (o.end[:month] == my.start[:month] &&
351
+ o.end[:day] <= my.start[:day]))
352
+ else
353
+ (o.start[:month] < my.start[:month] ||
354
+ (o.start[:month] == my.start[:month] &&
355
+ o.start[:day] <= my.start[:day]))
356
+ end
357
+ end
358
+
359
+ def my_end_day_is_before_o_end_day?(my, o)
360
+ if !o.end.nil? && !my.end.nil?
361
+ (o.end[:month] > my.end[:month] ||
362
+ (o.end[:month] == my.end[:month] &&
363
+ o.end[:day] >= my.end[:day]))
364
+ elsif o.end && my.end
365
+ (o.start[:month] > my.start[:month] ||
366
+ (o.start[:month] == my.start[:month] &&
367
+ o.start[:day] >= my.start[:day]))
368
+ elsif o.end
369
+ (o.end[:month] > my.start[:month] ||
370
+ (o.end[:month] == my.start[:month] &&
371
+ o.end[:day] >= my.start[:day]))
372
+ else
373
+ (o.start[:month] > my.end[:month] ||
374
+ (o.start[:month] == my.end[:month] &&
375
+ o.start[:day] >= my.end[:day]))
376
+ end
377
+ end
378
+
379
+ def my_end_day_is_after_o_start_day?(my, o)
380
+ if !o.end.nil?
381
+ (o.start[:month] < my.end[:month] ||
382
+ (o.start[:month] == my.end[:month] &&
383
+ o.start[:day] <= my.end[:day]))
384
+ else
385
+ (o.start[:month] < my.start[:month] ||
386
+ (o.start[:month] == my.start[:month] &&
387
+ o.start[:day] <= my.start[:day]))
388
+ end
389
+ end
390
+
391
+ def my_end_day_is_before_o_start_day?(my, o)
392
+ if !o.end.nil?
393
+ (o.start[:month] < my.end[:month] ||
394
+ (o.start[:month] == my.end[:month] &&
395
+ o.start[:day] <= my.end[:day]))
396
+ else
397
+ (o.start[:month] < my.start[:month] ||
398
+ (o.start[:month] == my.start[:month] &&
399
+ o.start[:day] <= my.start[:day]))
400
+ end
401
+ end
402
+
246
403
  def has_superior_start_month?(my, o)
247
404
  (o.start[:month] > my.start[:month] ||
248
405
  (o.start[:month] == my.start[:month] &&
249
406
  o.start[:day] >= my.start[:day]))
250
407
  end
251
408
 
409
+ def has_superior_or_equal_start_day?(my, o)
410
+ result = false
411
+ if has_start_year?(o) && has_start_year?(my)
412
+ result = o.start[:year] > my.start[:year] || (o.start[:year] == my.start[:year] && has_superior_start_month?(my, o))
413
+ elsif !has_start_year?(o) && !has_start_year?(my)
414
+ result = has_superior_start_month?(my, o)
415
+ end
416
+ result
417
+ end
418
+
252
419
  def has_inferior_or_equal_end_day?(my, o)
253
420
  result = false
254
421
  return false if my.end.nil?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opening_hours_converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.5
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ziserman Martin