HappyFriday 0.3.0 → 0.4.1
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 +22 -5
- data/lib/HappyFriday/version.rb +1 -1
- data/lib/HappyFriday.rb +22 -11
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9357c7d344a25ec5773cfd40a97641602e5d5e33e10435b00b721ce6f2e777e
|
4
|
+
data.tar.gz: c0685d10bbfcfa912e6c5621d471060f7cae9efe7eb903943a3c38261c16d6ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37eb44bf9423090e4399176da90c43be7341b4d5c719b789b316c1d0b3193c98fd8f1fdbc999507468453e4906021b048e053a21a04fa6d6e9534a7c48dfd5af
|
7
|
+
data.tar.gz: d4e2d3ef75a298d08e4d5e91ad8a99f542988e64095d7302471dc8c58c1b616238382254ba32ade1f85cd5fdf5dd853823c34c7788b45aaebe9619e37f81fcba
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# HappyFriday
|
2
2
|
|
3
|
-
|
3
|
+
This gem is capable of obtaining and determining HappyFriday.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -15,15 +15,32 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
15
15
|
## Usage
|
16
16
|
|
17
17
|
### HappyFriday decision
|
18
|
-
true or false returns.
|
19
18
|
```rb
|
20
|
-
|
19
|
+
date = Date.new(2022, 5, 3)
|
20
|
+
HappyFriday.happy_friday?(date)
|
21
|
+
=> false
|
22
|
+
|
23
|
+
date = Date.new(2022, 5, 27)
|
24
|
+
HappyFriday.happy_friday?(date)
|
25
|
+
=> true
|
21
26
|
```
|
22
27
|
|
23
|
-
###
|
28
|
+
### Get the next HappyFriday
|
24
29
|
You can get a HappyFriday for that month.
|
25
30
|
```rb
|
26
|
-
|
31
|
+
date = Date.new(2022, 5)
|
32
|
+
HappyFriday.get_next_happy_friday(date)
|
33
|
+
=> Fri, 27 May 2022
|
34
|
+
|
35
|
+
# If the last Friday of the month is a holiday, the day before becomes HappyFriday.
|
36
|
+
date = Date.new(2022, 4)
|
37
|
+
HappyFriday.get_next_happy_friday(date)
|
38
|
+
=> Thu, 28 Apr 2022
|
39
|
+
|
40
|
+
# If HappyFriday of that month has passed, get next month.
|
41
|
+
date = Date.new(2022, 4, 30)
|
42
|
+
HappyFriday.get_next_happy_friday(date)
|
43
|
+
=> Fri, 27 May 2022
|
27
44
|
```
|
28
45
|
|
29
46
|
## Development
|
data/lib/HappyFriday/version.rb
CHANGED
data/lib/HappyFriday.rb
CHANGED
@@ -7,12 +7,12 @@ require 'holiday_jp'
|
|
7
7
|
module HappyFriday
|
8
8
|
class Error < StandardError; end
|
9
9
|
|
10
|
-
def self.
|
11
|
-
target_date.strftime("%Y%m%d") == HappyFriday.
|
10
|
+
def self.happy_friday?(target_date)
|
11
|
+
target_date.strftime("%Y%m%d") == HappyFriday.get_next_happy_friday(target_date).strftime("%Y%m%d")
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.
|
15
|
-
last_of_month = Date.new(
|
14
|
+
def self.get_next_happy_friday(target_date)
|
15
|
+
last_of_month = Date.new(target_date.year, target_date.month, -1)
|
16
16
|
|
17
17
|
case last_of_month.wday
|
18
18
|
when 0..4
|
@@ -23,16 +23,27 @@ module HappyFriday
|
|
23
23
|
raise 'Unpredictable day of the week.'
|
24
24
|
end
|
25
25
|
|
26
|
-
last_friday = last_of_month
|
26
|
+
last_friday = last_of_month - before_friday_days.days
|
27
27
|
|
28
28
|
raise 'err' unless last_friday.wday == 5
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
loop do
|
31
|
+
if HolidayJp.holiday?(last_friday)
|
32
|
+
last_friday -= 1
|
33
|
+
else
|
34
|
+
break
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# If HappyFriday of that month has passed, get next month.
|
39
|
+
# TODO: refactoring
|
40
|
+
if target_date > last_friday
|
41
|
+
next_month = last_friday + 1.month
|
42
|
+
happy_friday = HappyFriday.get_next_happy_friday(Date.new(next_month.year, next_month.month))
|
43
|
+
else
|
44
|
+
happy_friday = last_friday
|
45
|
+
end
|
35
46
|
|
36
|
-
|
47
|
+
happy_friday
|
37
48
|
end
|
38
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: HappyFriday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- holasoynaoki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Determine if today is a HappyFriday.
|
14
14
|
email:
|
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
50
|
requirements: []
|
51
|
-
rubygems_version: 3.2.
|
51
|
+
rubygems_version: 3.2.3
|
52
52
|
signing_key:
|
53
53
|
specification_version: 4
|
54
54
|
summary: Determine if today is a HappyFriday.
|