business-days 2.0.0 → 3.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/business-days.rb +21 -2
  3. metadata +11 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d7105eb2e425985c8181e8072d969fa20212e8d9
4
- data.tar.gz: f840d5b52c8c489a56fdcd544f30f11cd036e947
2
+ SHA256:
3
+ metadata.gz: 3c0bf45b7be3c9886a729b5d860ea5e77bf34741168cf5b0567ce35feddd833f
4
+ data.tar.gz: b83d5ce82cb80fea5921f61e1e6a9272dc463921742338a2256bab9f08b605a3
5
5
  SHA512:
6
- metadata.gz: ec03a964c382a479491f9226b8f4a645cb98058cd910f304f02a7c0001cb897d4206846c475e29fde53df18b03eb9c94e28ce3cd5eecb10a0cbe11260a7fa55e
7
- data.tar.gz: 63ed47b9ca9e5cb4d7454c40a91676202b16212dee96e2b3ef77e5d9357cb6f984153e18f5adc69a821a7b82014e41c517040be3dccef321a451b8ea122f1f1d
6
+ metadata.gz: ac61b432a5bd0212e248bb8f36d08c1bb97068be2a03e6e10547a6f0fd6c4beaf3423f850e4ab32417223d4ca89dd15962cb93d2ca5839054c87e83bf9d416c8
7
+ data.tar.gz: b9dcc655b5bf75b9dc0257732a826aea4cf82d76f54f5bd09678a21943e027a7c0e9aa43bfc7013d77fc060f8e527bb9f8d801a2a2046b0441455079b5bcbf86
@@ -25,7 +25,7 @@ class BusinessDaysSingleton
25
25
 
26
26
  # 3. Add the latest business day in each year (it's a bank holiday)
27
27
  (from..to).each do |year|
28
- @holidays.push(latest_non_bank_businness_day(year))
28
+ @holidays.push(latest_non_bank_business_day(year))
29
29
  end
30
30
  end
31
31
 
@@ -76,6 +76,24 @@ class BusinessDaysSingleton
76
76
  @holidays.push(date)
77
77
  end
78
78
 
79
+ # Remove given date from holidays list for all commands after this.
80
+ #
81
+ # @param date [Date] the non-holiday date to be add.
82
+ def remove_holiday(date)
83
+ raise ArgumentError.new('Not a date') unless date.kind_of?(Date)
84
+
85
+ @holidays.delete(date)
86
+ end
87
+
88
+ # Remove latest holiday for each year
89
+ def remove_latest_non_bank_business_days
90
+ years = Set.new(@holidays.map { |d| d.year })
91
+ years.each do |year|
92
+ max_date = @holidays.select { |d| d.year == year }.max
93
+ self.remove_holiday(max_date) if max_date.strftime('%m%d') >= "1229"
94
+ end
95
+ end
96
+
79
97
  # Returns the first business day after the given date.
80
98
  #
81
99
  # @param date [Date] the reference date.
@@ -105,9 +123,10 @@ class BusinessDaysSingleton
105
123
 
106
124
  date
107
125
  end
126
+
108
127
  private
109
128
 
110
- def latest_non_bank_businness_day(year)
129
+ def latest_non_bank_business_day(year)
111
130
  d = Date.civil(year, 12, 31)
112
131
  while !self.business_day?(d)
113
132
  d = d - 1.day
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: business-days
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allan Costa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-18 00:00:00.000000000 Z
11
+ date: 2020-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.1'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.1'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tzinfo
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2.5
33
+ version: 1.2.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.2.5
40
+ version: 1.2.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tzinfo-data
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: holidays
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 6.3.0
61
+ version: '7.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 6.3.0
68
+ version: '7.1'
69
69
  description: Methods to check if a given date is a business days and to perform computations
70
70
  based on Business days.
71
71
  email: allan@cloudwalk.io
@@ -96,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.6.11
99
+ rubygems_version: 3.0.3
101
100
  signing_key:
102
101
  specification_version: 4
103
102
  summary: Business Days