expiry_calculator 0.1.0 → 0.2.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: 3f225a5c08541638a9426a8dae313f5907b53905aa76c48c7d5a1409168d6401
4
+ data.tar.gz: c7cfa9e1f18cc71ae8bd32028adb04cdb5d94a44cc332ce6dbddb3e413469be8
5
5
  SHA512:
6
- metadata.gz: 92c3278652f83e8eb201b5d7c7f52db31fc17025c645ec803127bd08b27c4660a15d4a8582fc29ea26448b188b76b5db5cf768a92ec92b6c11ab5d3bbd509617
7
- data.tar.gz: 472bc6e4be4827d1030475a005c7f6fb132f4435a1c5597e5f21d15b5f084533b715f32f03041021439698b0757c72e909af6bf4470a384e876033b6c66b31d4
6
+ metadata.gz: 436f15ce9e1d57c8927402be38e47e6ee7244ad9f71ff0817a591491d11a5d36a583f1dc63442eed11cc341ba40d3948cdb81b60d8e7632e228597163f77ecce
7
+ data.tar.gz: 8b34a402bd623c61406ea777795629eb43b4864e0f2d0ecdd2804e26edca210aac4118ffa97ef7e523ca7df00862cf303252e47e0ed8b4444aad0238543f702f
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
 
@@ -15,15 +15,17 @@ module ExpiryCalculator
15
15
  #
16
16
  def calculate record, record_attr = nil
17
17
  expiry_date = case record
18
- when Date
19
- record
20
18
  when DateTime
21
19
  record
20
+ when Date
21
+ record
22
22
  when String
23
23
  DateTime.parse(record)
24
- when ->(r) { defined?(ApplicationRecord) && r === ApplicationRecord }
24
+ # https://github.com/rails/rails/blob/04cda1848cb847c2bdad0bfc12160dc8d5547775/activerecord/lib/active_record/core.rb#L135
25
+ when ->(r) { defined?(ActiveRecord::Base) && r.is_a?(ActiveRecord::Base) }
25
26
  record[record_attr.to_sym]
26
27
  else
28
+ p record.class
27
29
  raise ArgumentError, "record type not supported."
28
30
  end
29
31
  days = (Date.today..expiry_date).count
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExpiryCalculator
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.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.2.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-04 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: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
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