fat_core 5.4.0 → 5.5.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/bin/easter +45 -0
- data/fat_core.gemspec +2 -0
- data/lib/fat_core/date.rb +9 -6
- data/lib/fat_core/version.rb +2 -2
- data/lib/fat_core.rb +4 -2
- data/spec/lib/date_spec.rb +1 -0
- data/spec/lib/string_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +33 -8
- data/bin/easters +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1d33a9870d8ccce5d113d794887245fbf460f7e0b7d3985232d15747c566f81
|
4
|
+
data.tar.gz: a3e9ee377b71fff964bf72d1a7f7cd732a48160aa2e999c72917854c4385b6d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96f62693a783e002ebc46d390daae93fd3d5e234e2ddfcd94b116dd2a56c60c551413a30b6ee3a7d3ae5bb1bae58e4c4526bb0cdf4757737b3dbe077757928d9
|
7
|
+
data.tar.gz: 5975a2e7eaf800668e17104e3285cf28627d6c6f21ef205f8a092e001def9149b0847bd1e62b442fb49d493e1ae2ff2d736e4648859d1c26ef64e43b14b14772
|
data/bin/easter
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "debug"
|
5
|
+
require 'fat_core/date'
|
6
|
+
|
7
|
+
usage = <<~HELP
|
8
|
+
USAGE:
|
9
|
+
easter -- print the date of Easter for the current year
|
10
|
+
easter year -- print the date of Easter for the given year
|
11
|
+
easter year1 year2 -- print the dates of Easter from year1 to year2
|
12
|
+
|
13
|
+
Note: if the date of Easter is the earliest possible, it is marked with a '<';
|
14
|
+
if it is the latest date possible, it is marked with a '>'
|
15
|
+
HELP
|
16
|
+
first, last = *ARGV
|
17
|
+
first ||= Date.today.year
|
18
|
+
last ||= Date.today.year
|
19
|
+
|
20
|
+
if first.to_s.match?(/--help|-h/)
|
21
|
+
puts usage
|
22
|
+
exit(1)
|
23
|
+
end
|
24
|
+
|
25
|
+
begin
|
26
|
+
first = Integer(first)
|
27
|
+
last = Integer(last)
|
28
|
+
rescue ArgumentError
|
29
|
+
warn "!!Error: invalid year number given\n\n"
|
30
|
+
puts usage
|
31
|
+
exit(2)
|
32
|
+
end
|
33
|
+
|
34
|
+
(first..last).each do |yr|
|
35
|
+
easter = Date.easter(yr)
|
36
|
+
sig =
|
37
|
+
if easter.month == 4 && easter.day >= 25
|
38
|
+
' >'
|
39
|
+
elsif easter.month == 3 && easter.day <= 22
|
40
|
+
' <'
|
41
|
+
else
|
42
|
+
''
|
43
|
+
end
|
44
|
+
puts "Easter #{yr}: #{easter.iso}#{sig}"
|
45
|
+
end
|
data/fat_core.gemspec
CHANGED
data/lib/fat_core/date.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'date'
|
4
|
-
require 'active_support'
|
5
3
|
require 'active_support/core_ext/date'
|
6
4
|
require 'active_support/core_ext/time'
|
7
5
|
require 'active_support/core_ext/numeric/time'
|
@@ -58,7 +56,7 @@ module FatCore
|
|
58
56
|
EOT = ::Date.parse('3000-12-31')
|
59
57
|
|
60
58
|
# Symbols for each of the days of the week, e.g., :sunday, :monday, etc.
|
61
|
-
DAYSYMS = ::Date::DAYNAMES.map
|
59
|
+
DAYSYMS = ::Date::DAYNAMES.map { |name| name.downcase.to_sym }
|
62
60
|
|
63
61
|
# :category: Formatting
|
64
62
|
# @group Formatting
|
@@ -532,7 +530,7 @@ module FatCore
|
|
532
530
|
else
|
533
531
|
# One of the days before the start of the year's first week, so it
|
534
532
|
# belongs to the last week of the prior year.
|
535
|
-
Date.new(year - 1, 12, 31).week_number
|
533
|
+
::Date.new(year - 1, 12, 31).week_number
|
536
534
|
end
|
537
535
|
end
|
538
536
|
|
@@ -944,7 +942,9 @@ module FatCore
|
|
944
942
|
::Date.parse('2018-12-24'),
|
945
943
|
::Date.parse('2019-12-24'),
|
946
944
|
::Date.parse('2020-12-24'),
|
947
|
-
|
945
|
+
# Biden
|
946
|
+
::Date.parse('2024-12-24'),
|
947
|
+
]
|
948
948
|
|
949
949
|
# Presidential funeral since JFK
|
950
950
|
PRESIDENTIAL_FUNERALS = [
|
@@ -964,7 +964,9 @@ module FatCore
|
|
964
964
|
::Date.parse('2007-01-02'),
|
965
965
|
# GHWBFuneral
|
966
966
|
::Date.parse('2018-12-05'),
|
967
|
-
|
967
|
+
# JEC Funeral
|
968
|
+
::Date.parse('2018-12-05'),
|
969
|
+
]
|
968
970
|
|
969
971
|
# Return whether this date is a United States federal holiday.
|
970
972
|
#
|
@@ -1834,6 +1836,7 @@ module FatCore
|
|
1834
1836
|
# @param year [Integer] the year of interest
|
1835
1837
|
# @return [::Date] the date of Easter for year
|
1836
1838
|
def easter(year)
|
1839
|
+
year = year.to_i
|
1837
1840
|
y = year
|
1838
1841
|
a = y % 19
|
1839
1842
|
b, c = y.divmod(100)
|
data/lib/fat_core/version.rb
CHANGED
data/lib/fat_core.rb
CHANGED
data/spec/lib/date_spec.rb
CHANGED
@@ -1069,6 +1069,7 @@ describe Date do
|
|
1069
1069
|
describe 'holidays' do
|
1070
1070
|
it 'knows Easter in its year' do
|
1071
1071
|
expect(described_class.today.easter_this_year).to eq(described_class.parse('2012-04-08'))
|
1072
|
+
expect(Date.easter(2012)).to eq(Date.parse('2012-04-08'))
|
1072
1073
|
expect(described_class.parse('2014-04-20').easter?).to be true
|
1073
1074
|
expect(described_class.parse('2014-03-20').easter?).to be false
|
1074
1075
|
end
|
data/spec/lib/string_spec.rb
CHANGED
@@ -139,7 +139,7 @@ the people, for the people, shall not perish from the earth."
|
|
139
139
|
expect('-8.008'.number?).to be true
|
140
140
|
expect('8.008e33'.number?).to be true
|
141
141
|
expect('-8.008e33'.number?).to be true
|
142
|
-
expect('0x8.008'.number?).to
|
142
|
+
expect('0x8.008'.number?).to be_truthy
|
143
143
|
expect('hello world'.number?).to be false
|
144
144
|
end
|
145
145
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,7 @@ require 'pry'
|
|
8
8
|
require 'debug'
|
9
9
|
|
10
10
|
require 'active_support/testing/time_helpers'
|
11
|
+
require 'fat_core'
|
11
12
|
|
12
13
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
13
14
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fat_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel E. Doherty
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-02-23 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -38,6 +37,34 @@ dependencies:
|
|
38
37
|
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '0'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: ostruct
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: stringio
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 3.1.2
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 3.1.2
|
41
68
|
description: |
|
42
69
|
Useful extensions to Date, String, Range and other classes
|
43
70
|
including useful Date extensions for dealing with US Federal
|
@@ -47,7 +74,7 @@ description: |
|
|
47
74
|
email:
|
48
75
|
- ded@ddoherty.net
|
49
76
|
executables:
|
50
|
-
-
|
77
|
+
- easter
|
51
78
|
extensions: []
|
52
79
|
extra_rdoc_files: []
|
53
80
|
files:
|
@@ -64,7 +91,7 @@ files:
|
|
64
91
|
- Rakefile
|
65
92
|
- TODO.org
|
66
93
|
- bin/console
|
67
|
-
- bin/
|
94
|
+
- bin/easter
|
68
95
|
- fat_core.gemspec
|
69
96
|
- lib/fat_core.rb
|
70
97
|
- lib/fat_core/ChangeLog
|
@@ -99,7 +126,6 @@ licenses:
|
|
99
126
|
- MIT
|
100
127
|
metadata:
|
101
128
|
yard.run: yri
|
102
|
-
post_install_message:
|
103
129
|
rdoc_options: []
|
104
130
|
require_paths:
|
105
131
|
- lib
|
@@ -114,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
140
|
- !ruby/object:Gem::Version
|
115
141
|
version: '0'
|
116
142
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
118
|
-
signing_key:
|
143
|
+
rubygems_version: 3.6.3
|
119
144
|
specification_version: 4
|
120
145
|
summary: some useful core extensions
|
121
146
|
test_files: []
|
data/bin/easters
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
#
|
5
|
-
# This file was generated by Bundler.
|
6
|
-
#
|
7
|
-
# The application 'easters' is installed as part of a gem, and
|
8
|
-
# this file is here to facilitate running it.
|
9
|
-
#
|
10
|
-
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
-
|
13
|
-
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
-
|
15
|
-
if File.file?(bundle_binstub)
|
16
|
-
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
|
17
|
-
load(bundle_binstub)
|
18
|
-
else
|
19
|
-
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
-
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
require "rubygems"
|
25
|
-
require "bundler/setup"
|
26
|
-
|
27
|
-
load Gem.bin_path("fat_core", "easters")
|