File: date.rb

package info (click to toggle)
ruby-ffaker 2.23.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,776 kB
  • sloc: ruby: 12,788; makefile: 8; sh: 1
file content (40 lines) | stat: -rw-r--r-- 910 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true

require 'date'

module FFaker
  module Date
    extend FFaker::ModuleUtils
    extend self

    # Generates a random date between 2 dates
    def between(from, to)
      FFaker::Time.between(from, to).to_date
    end

    # Generates a random date up to `days` days in the past
    def backward(days = 365)
      from = ::Date.today - days
      to   = ::Date.today - 1

      between(from, to)
    end

    # Generates a random date up to `days` days in the future
    def forward(days = 365)
      from = ::Date.today + 1
      to   = ::Date.today + days

      between(from, to)
    end

    # Random birthday date (maximum age between 18 and 65)
    # Keyword arguments: min_age, max_age
    def birthday(min_age: 18, max_age: 65)
      from = ::Date.today.prev_year(max_age + 1).next_day
      to = ::Date.today.prev_year(min_age)

      between(from, to)
    end
  end
end