Skip to content

Commit

Permalink
Show file tree
Hide file tree
Showing 2 changed files with 252 additions and 0 deletions.
13 changes: 13 additions & 0 deletions gems/activesupport/7.0/_test/test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,19 @@
ActiveSupport::TimeZone['Asia/Tokyo'].to_s
Time.find_zone(Object.name)
Time.zone.now.to_fs
1234567890.50.to_fs(:currency)
1234567890.506.to_fs(:currency, precision: 3)
(1..10).to_fs(:db)
(1..10).to_fs
[1,2].to_fs(:db)
[1,2].to_fs
Time.now.to_fs(:db)
Time.now.to_fs
Date.today.to_fs(:db)
Date.today.to_fs
DateTime.today.to_fs(:db)
DateTime.today.to_fs


Array.wrap(nil)
Array.wrap([1, 2, 3])
Expand Down
239 changes: 239 additions & 0 deletions gems/activesupport/7.0/activesupport-7.0.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,242 @@ end
class String
def downcase_first: () -> String
end

# active_support/core_ext/array/conversions.rb
class Array[unchecked out Elem]
# Extends <tt>Array#to_s</tt> to convert a collection of elements into a
# comma separated id list if <tt>:db</tt> argument is given as the format.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# Blog.all.to_fs(:db) # => "1,2,3"
# Blog.none.to_fs(:db) # => "null"
# [1,2].to_fs # => "[1, 2]"
def to_fs: (?Symbol format) -> String
end

# active_support/core_ext/numeric/conversions.rb
class Numeric
# \Numeric With Format
#
# Provides options for converting numbers into formatted strings.
# Options are provided for phone numbers, currency, percentage,
# precision, positional notation, file size, and pretty printing.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# ==== Options
#
# For details on which formats use which options, see ActiveSupport::NumberHelper
#
# ==== Examples
#
# Phone Numbers:
# 5551234.to_fs(:phone) # => "555-1234"
# 1235551234.to_fs(:phone) # => "123-555-1234"
# 1235551234.to_fs(:phone, area_code: true) # => "(123) 555-1234"
# 1235551234.to_fs(:phone, delimiter: ' ') # => "123 555 1234"
# 1235551234.to_fs(:phone, area_code: true, extension: 555) # => "(123) 555-1234 x 555"
# 1235551234.to_fs(:phone, country_code: 1) # => "+1-123-555-1234"
# 1235551234.to_fs(:phone, country_code: 1, extension: 1343, delimiter: '.')
# # => "+1.123.555.1234 x 1343"
#
# Currency:
# 1234567890.50.to_fs(:currency) # => "$1,234,567,890.50"
# 1234567890.506.to_fs(:currency) # => "$1,234,567,890.51"
# 1234567890.506.to_fs(:currency, precision: 3) # => "$1,234,567,890.506"
# 1234567890.506.to_fs(:currency, round_mode: :down) # => "$1,234,567,890.50"
# 1234567890.506.to_fs(:currency, locale: :fr) # => "1 234 567 890,51 €"
# -1234567890.50.to_fs(:currency, negative_format: '(%u%n)')
# # => "($1,234,567,890.50)"
# 1234567890.50.to_fs(:currency, unit: '&pound;', separator: ',', delimiter: '')
# # => "&pound;1234567890,50"
# 1234567890.50.to_fs(:currency, unit: '&pound;', separator: ',', delimiter: '', format: '%n %u')
# # => "1234567890,50 &pound;"
#
# Percentage:
# 100.to_fs(:percentage) # => "100.000%"
# 100.to_fs(:percentage, precision: 0) # => "100%"
# 1000.to_fs(:percentage, delimiter: '.', separator: ',') # => "1.000,000%"
# 302.24398923423.to_fs(:percentage, precision: 5) # => "302.24399%"
# 302.24398923423.to_fs(:percentage, round_mode: :down) # => "302.243%"
# 1000.to_fs(:percentage, locale: :fr) # => "1 000,000%"
# 100.to_fs(:percentage, format: '%n %') # => "100.000 %"
#
# Delimited:
# 12345678.to_fs(:delimited) # => "12,345,678"
# 12345678.05.to_fs(:delimited) # => "12,345,678.05"
# 12345678.to_fs(:delimited, delimiter: '.') # => "12.345.678"
# 12345678.to_fs(:delimited, delimiter: ',') # => "12,345,678"
# 12345678.05.to_fs(:delimited, separator: ' ') # => "12,345,678 05"
# 12345678.05.to_fs(:delimited, locale: :fr) # => "12 345 678,05"
# 98765432.98.to_fs(:delimited, delimiter: ' ', separator: ',')
# # => "98 765 432,98"
#
# Rounded:
# 111.2345.to_fs(:rounded) # => "111.235"
# 111.2345.to_fs(:rounded, precision: 2) # => "111.23"
# 111.2345.to_fs(:rounded, precision: 2, round_mode: :up) # => "111.24"
# 13.to_fs(:rounded, precision: 5) # => "13.00000"
# 389.32314.to_fs(:rounded, precision: 0) # => "389"
# 111.2345.to_fs(:rounded, significant: true) # => "111"
# 111.2345.to_fs(:rounded, precision: 1, significant: true) # => "100"
# 13.to_fs(:rounded, precision: 5, significant: true) # => "13.000"
# 111.234.to_fs(:rounded, locale: :fr) # => "111,234"
# 13.to_fs(:rounded, precision: 5, significant: true, strip_insignificant_zeros: true)
# # => "13"
# 389.32314.to_fs(:rounded, precision: 4, significant: true) # => "389.3"
# 1111.2345.to_fs(:rounded, precision: 2, separator: ',', delimiter: '.')
# # => "1.111,23"
#
# Human-friendly size in Bytes:
# 123.to_fs(:human_size) # => "123 Bytes"
# 1234.to_fs(:human_size) # => "1.21 KB"
# 12345.to_fs(:human_size) # => "12.1 KB"
# 1234567.to_fs(:human_size) # => "1.18 MB"
# 1234567890.to_fs(:human_size) # => "1.15 GB"
# 1234567890123.to_fs(:human_size) # => "1.12 TB"
# 1234567890123456.to_fs(:human_size) # => "1.1 PB"
# 1234567890123456789.to_fs(:human_size) # => "1.07 EB"
# 1234567.to_fs(:human_size, precision: 2) # => "1.2 MB"
# 1234567.to_fs(:human_size, precision: 2, round_mode: :up) # => "1.3 MB"
# 483989.to_fs(:human_size, precision: 2) # => "470 KB"
# 1234567.to_fs(:human_size, precision: 2, separator: ',') # => "1,2 MB"
# 1234567890123.to_fs(:human_size, precision: 5) # => "1.1228 TB"
# 524288000.to_fs(:human_size, precision: 5) # => "500 MB"
#
# Human-friendly format:
# 123.to_fs(:human) # => "123"
# 1234.to_fs(:human) # => "1.23 Thousand"
# 12345.to_fs(:human) # => "12.3 Thousand"
# 1234567.to_fs(:human) # => "1.23 Million"
# 1234567890.to_fs(:human) # => "1.23 Billion"
# 1234567890123.to_fs(:human) # => "1.23 Trillion"
# 1234567890123456.to_fs(:human) # => "1.23 Quadrillion"
# 1234567890123456789.to_fs(:human) # => "1230 Quadrillion"
# 489939.to_fs(:human, precision: 2) # => "490 Thousand"
# 489939.to_fs(:human, precision: 2, round_mode: :down) # => "480 Thousand"
# 489939.to_fs(:human, precision: 4) # => "489.9 Thousand"
# 1234567.to_fs(:human, precision: 4,
# significant: false) # => "1.2346 Million"
# 1234567.to_fs(:human, precision: 1,
# separator: ',',
# significant: false) # => "1,2 Million"
def to_fs: (?Symbol format, **untyped) -> String
end

# active_support/core_ext/range/conversions.rb
class Range[out Elem]
# Convert range to a formatted string. See RANGE_FORMATS for predefined formats.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# range = (1..100) # => 1..100
#
# range.to_s # => "1..100"
# range.to_fs(:db) # => "BETWEEN '1' AND '100'"
#
# range = (1..) # => 1..
# range.to_fs(:db) # => ">= '1'"
#
# range = (..100) # => ..100
# range.to_fs(:db) # => "<= '100'"
#
# == Adding your own range formats to to_fs
# You can add your own formats to the Range::RANGE_FORMATS hash.
# Use the format name as the hash key and a Proc instance.
#
# # config/initializers/range_formats.rb
# Range::RANGE_FORMATS[:short] = ->(start, stop) { "Between #{start.to_fs(:db)} and #{stop.to_fs(:db)}" }
def to_fs: (?Symbol format) -> String
end

# active_support/core_ext/date/conversions.rb
class Date
# Convert to a formatted string. See DATE_FORMATS for predefined formats.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007
#
# date.to_fs(:db) # => "2007-11-10"
# date.to_formatted_s(:db) # => "2007-11-10"
#
# date.to_fs(:short) # => "10 Nov"
# date.to_fs(:number) # => "20071110"
# date.to_fs(:long) # => "November 10, 2007"
# date.to_fs(:long_ordinal) # => "November 10th, 2007"
# date.to_fs(:rfc822) # => "10 Nov 2007"
# date.to_fs(:iso8601) # => "2007-11-10"
#
# == Adding your own date formats to to_fs
# You can add your own formats to the Date::DATE_FORMATS hash.
# Use the format name as the hash key and either a strftime string
# or Proc instance that takes a date argument as the value.
#
# # config/initializers/date_formats.rb
# Date::DATE_FORMATS[:month_and_year] = '%B %Y'
# Date::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") }
def to_fs: (?Symbol format) -> String
end

# active_support/core_ext/time/conversions.rb
class Time
# Converts to a formatted string. See DATE_FORMATS for built-in formats.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# time = Time.now # => 2007-01-18 06:10:17 -06:00
#
# time.to_fs(:time) # => "06:10"
# time.to_formatted_s(:time) # => "06:10"
#
# time.to_fs(:db) # => "2007-01-18 06:10:17"
# time.to_fs(:number) # => "20070118061017"
# time.to_fs(:short) # => "18 Jan 06:10"
# time.to_fs(:long) # => "January 18, 2007 06:10"
# time.to_fs(:long_ordinal) # => "January 18th, 2007 06:10"
# time.to_fs(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600"
# time.to_fs(:rfc2822) # => "Thu, 18 Jan 2007 06:10:17 -0600"
# time.to_fs(:iso8601) # => "2007-01-18T06:10:17-06:00"
#
# == Adding your own time formats to +to_fs+
# You can add your own formats to the Time::DATE_FORMATS hash.
# Use the format name as the hash key and either a strftime string
# or Proc instance that takes a time argument as the value.
#
# # config/initializers/time_formats.rb
# Time::DATE_FORMATS[:month_and_year] = '%B %Y'
# Time::DATE_FORMATS[:short_ordinal] = ->(time) { time.strftime("%B #{time.day.ordinalize}") }
def to_fs: (?Symbol format) -> String
end

# active_support/core_ext/date_time/conversions.rb
class DateTime
# Convert to a formatted string. See Time::DATE_FORMATS for predefined formats.
#
# This method is aliased to <tt>to_formatted_s</tt>.
#
# === Examples
# datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000
#
# datetime.to_fs(:db) # => "2007-12-04 00:00:00"
# datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00"
# datetime.to_fs(:number) # => "20071204000000"
# datetime.to_fs(:short) # => "04 Dec 00:00"
# datetime.to_fs(:long) # => "December 04, 2007 00:00"
# datetime.to_fs(:long_ordinal) # => "December 4th, 2007 00:00"
# datetime.to_fs(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000"
# datetime.to_fs(:iso8601) # => "2007-12-04T00:00:00+00:00"
#
# == Adding your own datetime formats to to_fs
# DateTime formats are shared with Time. You can add your own to the
# Time::DATE_FORMATS hash. Use the format name as the hash key and
# either a strftime string or Proc instance that takes a time or
# datetime argument as the value.
#
# # config/initializers/time_formats.rb
# Time::DATE_FORMATS[:month_and_year] = '%B %Y'
# Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") }
def to_fs: (?Symbol format) -> String
end

0 comments on commit 5000fe9

Please sign in to comment.