Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
5f295aeb
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5f295aeb
编写于
2月 15, 2014
作者:
X
Xavier Noria
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
implements new option :month_format_string for date select helpers [Closes #13618]
上级
bfc776f7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
48 addition
and
9 deletion
+48
-9
actionview/CHANGELOG.md
actionview/CHANGELOG.md
+14
-0
actionview/lib/action_view/helpers/date_helper.rb
actionview/lib/action_view/helpers/date_helper.rb
+24
-9
actionview/test/template/date_helper_test.rb
actionview/test/template/date_helper_test.rb
+10
-0
未找到文件。
actionview/CHANGELOG.md
浏览文件 @
5f295aeb
*
Date select helpers accept a format string for the months selector via the
new option
`:month_format_string`
.
When rendered, the format string gets passed keys `:number` (integer), and
`:name` (string), in order to be able to interpolate them as in
'%{name} (%<number>02d)'
for example.
This option is motivated by #13618.
*Xavier Noria*
*
Added
`config.action_view.raise_on_missing_translations`
to define whether an
error should be raised for missing translations.
...
...
actionview/lib/action_view/helpers/date_helper.rb
浏览文件 @
5f295aeb
...
...
@@ -169,6 +169,9 @@ def time_ago_in_words(from_time, include_seconds_or_options = {})
# "2 - February" instead of "February").
# * <tt>:use_month_names</tt> - Set to an array with 12 month names if you want to customize month names.
# Note: You can also use Rails' i18n functionality for this.
# * <tt>:month_format_string</tt> - Set to a format string. The string gets passed keys +:number+ (integer)
# and +:name+ (string). A format string would be something like "%{name} (%<number>02d)" for example.
# See <tt>Kernel.sprintf</tt> for documentation on format sequences.
# * <tt>:date_separator</tt> - Specifies a string to separate the date fields. Default is "" (i.e. nothing).
# * <tt>:start_year</tt> - Set the start year for the year select. Default is <tt>Date.today.year - 5</tt>if
# you are creating new record. While editing existing record, <tt>:start_year</tt> defaults to
...
...
@@ -850,24 +853,36 @@ def translated_month_names
I18n
.
translate
(
key
,
:locale
=>
@options
[
:locale
])
end
# Lookup month name for number.
# month_name(1) => "January"
# Looks up month names by number (1-based):
#
# If <tt>:use_month_numbers</tt> option is passed
# month_name(1) => 1
# month_name(1) # => "January"
#
# If <tt>:use_two_month_numbers</tt> option is passed
# month_name(1) => '01'
# If the <tt>:use_month_numbers</tt> option is passed:
#
# If <tt>:add_month_numbers</tt> option is passed
# month_name(1) => "1 - January"
# month_name(1) # => 1
#
# If the <tt>:use_two_month_numbers</tt> option is passed:
#
# month_name(1) # => '01'
#
# If the <tt>:add_month_numbers</tt> option is passed:
#
# month_name(1) # => "1 - January"
#
# If the <tt>:month_format_string</tt> option is passed:
#
# month_name(1) # => "January (01)"
#
# depending on the format string.
def
month_name
(
number
)
if
@options
[
:use_month_numbers
]
number
elsif
@options
[
:use_two_digit_numbers
]
sprintf
"%02d"
,
number
'%02d'
%
number
elsif
@options
[
:add_month_numbers
]
"
#{
number
}
-
#{
month_names
[
number
]
}
"
elsif
format_string
=
@options
[
:month_format_string
]
format_string
%
{
number:
number
,
name:
month_names
[
number
]}
else
month_names
[
number
]
end
...
...
actionview/test/template/date_helper_test.rb
浏览文件 @
5f295aeb
...
...
@@ -326,6 +326,16 @@ def test_select_month_with_numbers_and_names
assert_dom_equal
expected
,
select_month
(
8
,
:add_month_numbers
=>
true
)
end
def
test_select_month_with_format_string
expected
=
%(<select id="date_month" name="date[month]">\n)
expected
<<
%(<option value="1">January (01)</option>\n<option value="2">February (02)</option>\n<option value="3">March (03)</option>\n<option value="4">April (04)</option>\n<option value="5">May (05)</option>\n<option value="6">June (06)</option>\n<option value="7">July (07)</option>\n<option value="8" selected="selected">August (08)</option>\n<option value="9">September (09)</option>\n<option value="10">October (10)</option>\n<option value="11">November (11)</option>\n<option value="12">December (12)</option>\n)
expected
<<
"</select>
\n
"
format_string
=
'%{name} (%<number>02d)'
assert_dom_equal
expected
,
select_month
(
Time
.
mktime
(
2003
,
8
,
16
),
:month_format_string
=>
format_string
)
assert_dom_equal
expected
,
select_month
(
8
,
:month_format_string
=>
format_string
)
end
def
test_select_month_with_numbers_and_names_with_abbv
expected
=
%(<select id="date_month" name="date[month]">\n)
expected
<<
%(<option value="1">1 - Jan</option>\n<option value="2">2 - Feb</option>\n<option value="3">3 - Mar</option>\n<option value="4">4 - Apr</option>\n<option value="5">5 - May</option>\n<option value="6">6 - Jun</option>\n<option value="7">7 - Jul</option>\n<option value="8" selected="selected">8 - Aug</option>\n<option value="9">9 - Sep</option>\n<option value="10">10 - Oct</option>\n<option value="11">11 - Nov</option>\n<option value="12">12 - Dec</option>\n)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录