更改库范围内的日期默认 to_s 格式
Change Date default to_s format in the scope of library
我希望库范围内的所有日期都具有通用格式 ("%d.%m.%Y"
) 而不是默认格式 ("%Y-%d-%m"
)。现在我想出了 3 种不同的方法(我不喜欢其中任何一种)来完成我想要的。所有这些都在下面按照从最痛苦到最不痛苦的顺序表示:
- 明确定义所有带有日期的属性,并在导出器中将它们转换为必要的格式;
- 为每个具有必要格式的
Date
实例重新定义 to_s
方法;
- 使用自定义
to_s
方法定义 Date
class 的自定义后代。
附加信息:
- 初始对象最多可以有 3 个嵌套,每个嵌套具有
Date
类型的属性;
Date
类型的属性名称可以不同;
- 我正在使用 Virtus gem。
问题如下:
有没有更好的方法来处理我正在努力解决的问题(如果没有,那么在上面已经表示的那些问题之间最优雅的方法是什么) ?
创建另一个模块,对 Date::to_s
进行细化
module MyDate
refine Date do
def to_s
# here goes your implementation of to_s
end
end
end
然后:
class NeedsCustomDateFormat
using MyDate
# All Date instances will have the custom to_s
end
我希望库范围内的所有日期都具有通用格式 ("%d.%m.%Y"
) 而不是默认格式 ("%Y-%d-%m"
)。现在我想出了 3 种不同的方法(我不喜欢其中任何一种)来完成我想要的。所有这些都在下面按照从最痛苦到最不痛苦的顺序表示:
- 明确定义所有带有日期的属性,并在导出器中将它们转换为必要的格式;
- 为每个具有必要格式的
Date
实例重新定义to_s
方法; - 使用自定义
to_s
方法定义Date
class 的自定义后代。
附加信息:
- 初始对象最多可以有 3 个嵌套,每个嵌套具有
Date
类型的属性; Date
类型的属性名称可以不同;- 我正在使用 Virtus gem。
问题如下:
有没有更好的方法来处理我正在努力解决的问题(如果没有,那么在上面已经表示的那些问题之间最优雅的方法是什么) ?
创建另一个模块,对 Date::to_s
module MyDate
refine Date do
def to_s
# here goes your implementation of to_s
end
end
end
然后:
class NeedsCustomDateFormat
using MyDate
# All Date instances will have the custom to_s
end