@@ -2,6 +2,26 @@ module Ransack
2
2
module Helpers
3
3
module FormHelper
4
4
5
+ def asc
6
+ 'asc' . freeze
7
+ end
8
+
9
+ def desc
10
+ 'desc' . freeze
11
+ end
12
+
13
+ def asc_arrow
14
+ '▲' . freeze
15
+ end
16
+
17
+ def desc_arrow
18
+ '▼' . freeze
19
+ end
20
+
21
+ def non_breaking_space
22
+ ' ' . freeze
23
+ end
24
+
5
25
def search_form_for ( record , options = { } , &proc )
6
26
if record . is_a? ( Ransack ::Search )
7
27
search = record
@@ -28,7 +48,7 @@ def search_form_for(record, options = {}, &proc)
28
48
"#{ search . klass . to_s . underscore } _search" ,
29
49
:method => :get
30
50
}
31
- options [ :as ] ||= 'q'
51
+ options [ :as ] ||= 'q' . freeze
32
52
options [ :html ] . reverse_merge! ( html_options )
33
53
options [ :builder ] ||= FormBuilder
34
54
@@ -67,9 +87,9 @@ def sort_link(search, attribute, *args)
67
87
current_dir = prev_attr == attr_name ? prev_dir : nil
68
88
69
89
if current_dir
70
- new_dir = current_dir == ' desc' ? ' asc' : ' desc'
90
+ new_dir = current_dir == desc ? asc : desc
71
91
else
72
- new_dir = default_order || ' asc'
92
+ new_dir = default_order || asc
73
93
end
74
94
75
95
html_options = args . first . is_a? ( Hash ) ? args . shift . dup : { }
@@ -90,7 +110,7 @@ def sort_link(search, attribute, *args)
90
110
link_to (
91
111
[ ERB ::Util . h ( name ) , order_indicator_for ( current_dir ) ]
92
112
. compact
93
- . join ( ' ' )
113
+ . join ( non_breaking_space )
94
114
. html_safe ,
95
115
url ,
96
116
html_options
@@ -100,10 +120,10 @@ def sort_link(search, attribute, *args)
100
120
private
101
121
102
122
def order_indicator_for ( order )
103
- if order == ' asc'
104
- '▲'
105
- elsif order == ' desc'
106
- '▼'
123
+ if order == asc
124
+ asc_arrow
125
+ elsif order == desc
126
+ desc_arrow
107
127
else
108
128
nil
109
129
end
0 commit comments