lib/ffaker/time.rb in ffaker-2.2.0 vs lib/ffaker/time.rb in ffaker-2.3.0

- old
+ new

@@ -3,28 +3,40 @@ module FFaker module Time extend ModuleUtils extend self - MONTHS = %w(January February March April May June July August September October November December) + MONTHS = %w(January February March April May June July August September October November December).freeze def month - MONTHS.sample + fetch_sample(MONTHS) end - def date(params={}) + def date(params = {}) years_back = params[:year_range] || 5 - latest_year = params [:year_latest] || 0 - year = (rand * (years_back)).ceil + (::Time.now.year - latest_year - years_back) + latest_year = params [:year_latest] || 0 + year = (rand * years_back).ceil + (::Time.now.year - latest_year - years_back) month = (rand * 12).ceil day = (rand * 31).ceil - series = [date = ::Time.local(year, month, day)] + hours = params[:hours] || 0 + minutes = params[:minutes] || 0 + series = [date = ::Time.local(year, month, day, hours, minutes)] if params[:series] params[:series].each do |some_time_after| series << series.last + (rand * some_time_after).ceil end return series end - date.strftime "%Y-%m-%d %T %z" + date.strftime '%Y-%m-%d %T %z' + end + + def datetime(params = {}) + hours = params[:hours] || (rand * 12).ceil + minutes = params[:minutes] || (rand * 59).ceil + date(params.merge(hours: hours, minutes: minutes)) + end + + def between(from, to) + ::Time.at(from + rand * (to.to_f - from.to_f)) end end end