date_select_separator 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +3 -2
- data/lib/date_select_separator/version.rb +1 -1
- data/lib/date_select_separator.rb +11 -2
- data/test/date_select_separator_test.rb +34 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -36,9 +36,10 @@ And then use ```use_separators: true```:
|
|
36
36
|
<%= f.date_select :birthday, use_separators: {inline: true} %>
|
37
37
|
<%= f.datetime_select :birthday, time_separator: '', use_separators: {inline: true} %>
|
38
38
|
|
39
|
-
# Options: html_tag, class_prefix
|
39
|
+
# Options: html_tag, class_prefix etc
|
40
40
|
<%= f.date_select :birthday, use_month_numbers: true, use_separators: {html_tag: :div, class_prefix: 'foo'} %>
|
41
|
-
|
41
|
+
<%= f.date_select :birthday, use_month_numbers: true, use_separators: {year: 'yy', month: 'mm', day: 'dd'} %>
|
42
|
+
|
42
43
|
## Contributing
|
43
44
|
|
44
45
|
1. Fork it
|
@@ -20,7 +20,7 @@ module ActionView
|
|
20
20
|
|
21
21
|
if separators.present?
|
22
22
|
if use_inline_separator?(separators)
|
23
|
-
options.merge!({:use_separator =>
|
23
|
+
options.merge!({:use_separator => separator_name(type, separators)})
|
24
24
|
build_select(type, build_options_with_separator(selected, options))
|
25
25
|
else
|
26
26
|
build_select(type, build_options(selected, options)) + separator_tag(type, separators)
|
@@ -41,6 +41,15 @@ module ActionView
|
|
41
41
|
I18n.translate(key, :locale => @options[:locale])
|
42
42
|
end
|
43
43
|
|
44
|
+
def separator_name(type, separators)
|
45
|
+
if separators.class == Hash && separators[type].present?
|
46
|
+
separators[type]
|
47
|
+
else
|
48
|
+
key = 'datetime.separators.' + type.to_s
|
49
|
+
I18n.translate(key, :locale => @options[:locale])
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
44
53
|
def separator_tag(type, separators)
|
45
54
|
return '' if use_inline_separator?(separators)
|
46
55
|
|
@@ -48,7 +57,7 @@ module ActionView
|
|
48
57
|
options = (separators.class == Hash) ? default_options.merge!(separators) : default_options
|
49
58
|
|
50
59
|
if options
|
51
|
-
name =
|
60
|
+
name = separator_name(type, separators)
|
52
61
|
class_name = options[:class_prefix] + "_#{type}"
|
53
62
|
content_tag(options[:html_tag], name, :class => class_name) + "\n"
|
54
63
|
else
|
@@ -597,4 +597,38 @@ class DateSelectSeparatorTest < ActionView::TestCase
|
|
597
597
|
|
598
598
|
assert_dom_equal expected, datetime_select("post", "updated_at", :use_separators => {:inline => true}, :locale => :ja)
|
599
599
|
end
|
600
|
+
|
601
|
+
def test_datetime_select_with_custom_separators_and_arguments
|
602
|
+
@post = Post.new
|
603
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
604
|
+
|
605
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
606
|
+
expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
|
607
|
+
expected << "</select>\n"
|
608
|
+
expected << %(<span class="separator_year">foo_year</span>\n)
|
609
|
+
|
610
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
611
|
+
expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
|
612
|
+
expected << "</select>\n"
|
613
|
+
expected << %(<span class="separator_month">foo_month</span>\n)
|
614
|
+
|
615
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
616
|
+
expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
|
617
|
+
expected << "</select>\n"
|
618
|
+
expected << %(<span class="separator_day">foo_day</span>\n)
|
619
|
+
|
620
|
+
expected << " — "
|
621
|
+
|
622
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
623
|
+
expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
|
624
|
+
expected << "</select>\n"
|
625
|
+
expected << %(<span class="separator_hour">foo_hour</span>\n)
|
626
|
+
expected << " : "
|
627
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
628
|
+
expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
|
629
|
+
expected << "</select>\n"
|
630
|
+
expected << %(<span class="separator_minute">foo_minute</span>\n)
|
631
|
+
|
632
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :use_separators => {year: 'foo_year', month: 'foo_month', day: 'foo_day', hour: 'foo_hour', minute: 'foo_minute'})
|
633
|
+
end
|
600
634
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: date_select_separator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|