power-age 1.0.0 → 1.0.2

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.
Files changed (5) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +21 -1
  3. data/age.rb +6 -0
  4. data/has_age.rb +16 -0
  5. metadata +8 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8514b970f16a52230de0515a0c029315d4100951
4
- data.tar.gz: '09e7ef32716c0c2638db590fba77e37dc6af4f63'
2
+ SHA256:
3
+ metadata.gz: 0c31dd4782ae3c6b769850fc274ed66a1db1c4069841c3760e974c8e74483e34
4
+ data.tar.gz: 8a9bf818d45a75e4fc75e0ab5bc9dd9aade4c796c231c8b3d6a78be731823c81
5
5
  SHA512:
6
- metadata.gz: 85c8805ebd44294f14ec76a59556145fe2a45eb3b903afbac5f88a61e75ea62bbe53432e7482c9d946f9f73da5a9f4641d8d5f2cd5b363231eaa6f85088e329f
7
- data.tar.gz: 4dc3f7cbb5dc2a99b72082fe4aa48ef05b9feaa27ab58c54681aebc741e05a09ec136930807e3677de3d854b02eb9d7ad91e1fc659ffc1eba175080c9deffeeb
6
+ metadata.gz: ee81ba2ab2c599572d4b6ef6e6edf3530424974159bcc6ddb8183e57446193368e199d429e187ff53946302b0dd3ac410ad520464a7199db1e2d5b023c4c5ac6
7
+ data.tar.gz: 25c7f6f35ebea57a1b2dde32e6e9edd00717cdcc5f59c5ca302e046cf4831035e5d66791821715546b06408f569d814183b95326de9b64c947983d75970bde83
data/README.md CHANGED
@@ -18,7 +18,10 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- ### `Age#new(timestamp)`
21
+ ### `Age::now(timestamp)`
22
+ shortcut for `Age.new(timestamp).now`
23
+
24
+ ### `Age::new(timestamp)`
22
25
  `Age#new` accepts a Time, Date or DateTime object as argument.
23
26
 
24
27
  ### `Age#now`
@@ -38,3 +41,20 @@ user = User.new(Time.new(1970, 6, 21))
38
41
 
39
42
  Age.new(user.dob).at event.start_date
40
43
  ```
44
+
45
+ ### ActiveRecord/ActiveModel
46
+
47
+ ```ruby
48
+ class User < ApplicationRecord
49
+ has_person_name
50
+ has_age
51
+ end
52
+
53
+ class Dog < ApplicationRecord
54
+ has_age :pet_birth_date
55
+ end
56
+
57
+ user = User.new(dob: Date.new(2000, 1, 1))
58
+ user.age
59
+ user.age(at: Time.now + 1.day)
60
+ ```
data/age.rb CHANGED
@@ -1,4 +1,8 @@
1
1
  class Age
2
+ def self.now(dob)
3
+ new(dob).now
4
+ end
5
+
2
6
  def initialize(dob)
3
7
  @dob = dob
4
8
  end
@@ -17,3 +21,5 @@ class Age
17
21
  date.strftime('%Y%m%d').to_i
18
22
  end
19
23
  end
24
+
25
+ require_relative "has_age" if defined? ActiveSupport
data/has_age.rb ADDED
@@ -0,0 +1,16 @@
1
+ module HasAge
2
+ def has_age(column = :dob)
3
+ define_method(:age) do |at: Time.current|
4
+ Age.new(public_send(column)).at(at)
5
+ end
6
+ end
7
+ end
8
+
9
+ ActiveSupport.on_load(:active_model) do
10
+ extend HasAge
11
+ end
12
+
13
+
14
+ ActiveSupport.on_load(:active_record) do
15
+ extend HasAge
16
+ end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: power-age
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Melchert
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2017-12-10 00:00:00.000000000 Z
10
+ date: 2025-04-21 00:00:00.000000000 Z
12
11
  dependencies: []
13
- description: A handy little age calculation class
12
+ description: A handy little age calculation class. Including ActiveModel has_age.
14
13
  email: kevin.melchert@gmail.com
15
14
  executables: []
16
15
  extensions: []
@@ -18,10 +17,11 @@ extra_rdoc_files: []
18
17
  files:
19
18
  - README.md
20
19
  - age.rb
21
- homepage:
22
- licenses: []
20
+ - has_age.rb
21
+ homepage: https://github.com/max-power/age
22
+ licenses:
23
+ - MIT
23
24
  metadata: {}
24
- post_install_message:
25
25
  rdoc_options: []
26
26
  require_paths:
27
27
  - "."
@@ -36,9 +36,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  requirements: []
39
- rubyforge_project:
40
- rubygems_version: 2.6.11
41
- signing_key:
39
+ rubygems_version: 3.6.6
42
40
  specification_version: 4
43
41
  summary: Age Calculator
44
42
  test_files: []