expiry_calculator 0.1.0 → 0.3.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/CHANGELOG.md +5 -0
- data/README.md +3 -1
- data/lib/expiry_calculator/logic.rb +7 -4
- data/lib/expiry_calculator/version.rb +1 -1
- data/sig/expiry_calculator.rbs +4 -1
- data/sig/manifest.yaml +3 -0
- metadata +45 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20c65ef7789b9298cb92e17c86dc149dea2be400a247b7d834e73112af558daf
|
4
|
+
data.tar.gz: 12978914c8fdce252365e71420b543b0b2d650e105930714905e400507d7154c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31067b24785e34031d86dc973ab10356e0554b8f64b335b0222c22df0153aaa26a29127bd9fed367f0ada84d94d7f6de9df44b22ac93ee931854379bacaf030f
|
7
|
+
data.tar.gz: b88a4065ec7755a7c0f54fa5613a6d4130cb1892aca27f0bf513e3f02b81f62c8d7966097456cd087444707c80f353eef34477b577388029686e8750c9df6c12
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/expiry_calculator)
|
4
4
|
[](https://github.com/abarrak/expiry_calculator/actions/workflows/ci.yml)
|
5
|
+
[](https://qlty.sh/gh/abarrak/projects/expiry_calculator)
|
6
|
+
[](https://qlty.sh/gh/abarrak/projects/expiry_calculator)
|
5
7
|
[](https://opensource.org/licenses/MIT)
|
6
8
|
|
7
9
|
|
@@ -68,7 +70,7 @@ The supported objects:
|
|
68
70
|
|
69
71
|
## API Docs
|
70
72
|
|
71
|
-
The gem specs can [be found at RubyDocs.](https://www.rubydoc.info/gems/
|
73
|
+
The gem specs can [be found at RubyDocs.](https://www.rubydoc.info/gems/expiry_calculator)
|
72
74
|
|
73
75
|
## Contributing
|
74
76
|
|
@@ -5,23 +5,26 @@ module ExpiryCalculator
|
|
5
5
|
#
|
6
6
|
# == Parameters:
|
7
7
|
#
|
8
|
-
# [*record*] +Date|DateTime|ApplicationRecord+: field of date and time to caluclate expiry for. Can be activerecord model containing a date field.
|
8
|
+
# [*record*] +Date|DateTime|String|ApplicationRecord+: field of date and time to caluclate expiry for. Can be activerecord model containing a date field.
|
9
9
|
# [*record_attr*] +symbol|string+ The date attribute field in case of active record model is passed in first arguemtn. Default to nil.
|
10
10
|
#
|
11
11
|
# == Returns:
|
12
12
|
#
|
13
13
|
# The remaining days till the expiry, or zero if it already past.
|
14
14
|
#
|
15
|
+
# == Note:
|
16
|
+
# ref# for AR special check case:
|
17
|
+
# https://github.com/rails/rails/blob/04cda1848cb847c2bdad0bfc12160dc8d5547775/activerecord/lib/active_record/core.rb#L135
|
15
18
|
#
|
16
19
|
def calculate record, record_attr = nil
|
17
20
|
expiry_date = case record
|
18
|
-
when Date
|
19
|
-
record
|
20
21
|
when DateTime
|
21
22
|
record
|
23
|
+
when Date
|
24
|
+
record
|
22
25
|
when String
|
23
26
|
DateTime.parse(record)
|
24
|
-
when ->(r) { defined?(
|
27
|
+
when ->(r) { defined?(ActiveRecord::Base) && r.is_a?(ActiveRecord::Base) }
|
25
28
|
record[record_attr.to_sym]
|
26
29
|
else
|
27
30
|
raise ArgumentError, "record type not supported."
|
data/sig/expiry_calculator.rbs
CHANGED
data/sig/manifest.yaml
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: expiry_calculator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdullah Barrak
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -110,6 +110,48 @@ dependencies:
|
|
110
110
|
version: '1.3'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: activesupport
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '7'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: activerecord
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '7'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '7'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sqlite3
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '2'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rbs
|
113
155
|
requirement: !ruby/object:Gem::Requirement
|
114
156
|
requirements:
|
115
157
|
- - ">="
|
@@ -141,6 +183,7 @@ files:
|
|
141
183
|
- lib/expiry_calculator/logic.rb
|
142
184
|
- lib/expiry_calculator/version.rb
|
143
185
|
- sig/expiry_calculator.rbs
|
186
|
+
- sig/manifest.yaml
|
144
187
|
homepage: https://rubygems.org/gems/expiry_calculator
|
145
188
|
licenses:
|
146
189
|
- MIT
|