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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad6d87c333e5705c279b6e3748bb04ecf330d800639523d7d74e564b5c489bcf
4
- data.tar.gz: 3185b744a8f58e03e2081ab989b830c1408103683c40a5d59e1ca1e7a9af95c6
3
+ metadata.gz: 20c65ef7789b9298cb92e17c86dc149dea2be400a247b7d834e73112af558daf
4
+ data.tar.gz: 12978914c8fdce252365e71420b543b0b2d650e105930714905e400507d7154c
5
5
  SHA512:
6
- metadata.gz: 92c3278652f83e8eb201b5d7c7f52db31fc17025c645ec803127bd08b27c4660a15d4a8582fc29ea26448b188b76b5db5cf768a92ec92b6c11ab5d3bbd509617
7
- data.tar.gz: 472bc6e4be4827d1030475a005c7f6fb132f4435a1c5597e5f21d15b5f084533b715f32f03041021439698b0757c72e909af6bf4470a384e876033b6c66b31d4
6
+ metadata.gz: 31067b24785e34031d86dc973ab10356e0554b8f64b335b0222c22df0153aaa26a29127bd9fed367f0ada84d94d7f6de9df44b22ac93ee931854379bacaf030f
7
+ data.tar.gz: b88a4065ec7755a7c0f54fa5613a6d4130cb1892aca27f0bf513e3f02b81f62c8d7966097456cd087444707c80f353eef34477b577388029686e8750c9df6c12
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.2.0] - 2025-04-04
2
+
3
+ - Fix: type check bug for ActiveRecord inputs.
4
+ - Tests: add more coverage for parameters support.
5
+
1
6
  ## [0.1.0] - 2025-03-17
2
7
 
3
8
  - Initial release.
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/expiry_calculator.svg)](https://rubygems.org/gems/expiry_calculator)
4
4
  [![Build](https://github.com/abarrak/expiry_calculator/actions/workflows/ci.yml/badge.svg)](https://github.com/abarrak/expiry_calculator/actions/workflows/ci.yml)
5
+ [![Code Coverage](https://qlty.sh/badges/26185eb3-29df-401a-b266-ce7123b55fc3/test_coverage.svg)](https://qlty.sh/gh/abarrak/projects/expiry_calculator)
6
+ [![Maintainability](https://qlty.sh/badges/26185eb3-29df-401a-b266-ce7123b55fc3/maintainability.svg)](https://qlty.sh/gh/abarrak/projects/expiry_calculator)
5
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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/network-client/)
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?(ApplicationRecord) && r === ApplicationRecord }
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."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExpiryCalculator
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
@@ -1,4 +1,7 @@
1
1
  module ExpiryCalculator
2
2
  VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
3
+
4
+ module Logic
5
+ def calculate: (Date | DateTime | String | ActiveRecord::Base record, String record_attr) -> Integer
6
+ end
4
7
  end
data/sig/manifest.yaml ADDED
@@ -0,0 +1,3 @@
1
+ dependencies:
2
+ - name: date
3
+ - name: activerecord
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.1.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-03-23 00:00:00.000000000 Z
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