From 0b2454fb97eebdb88ef3e2d3807a255e47d251cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Wed, 25 Jan 2017 14:17:49 +0100 Subject: [PATCH] adds User#age --- app/models/user.rb | 8 ++++++++ spec/models/user_spec.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 8e41a0427..80b0cb621 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -246,6 +246,14 @@ class User < ActiveRecord::Base "#{name} (#{email})" end + def age + if date_of_birth.blank? + nil + else + ((Date.today - date_of_birth.to_date).to_i / 365.25).to_i + end + end + def save_requiring_finish_signup begin self.registering_with_oauth = true diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 0f03086ba..789341fe9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -65,6 +65,13 @@ describe User do end end + describe "#age" do + it "is the rounded integer age based on the date_of_birth" do + user = create(:user, date_of_birth: 33.years.ago) + expect(user.age).to eq(33) + end + end + describe 'preferences' do describe 'email_on_comment' do it 'should be false by default' do