andy_rails_toolbox 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -15
- data/Rakefile +0 -6
- data/app/assets/javascripts/jquery.timeago.load.coffee +2 -1
- data/app/helpers/bootstrap_helper.rb +175 -96
- data/app/helpers/hash_helper.rb +4 -3
- data/app/helpers/qrcode_helper.rb +1 -1
- data/lib/andy_rails_toolbox/bootstrap-sass.rb +1 -0
- data/lib/andy_rails_toolbox/font-awesome-rails.rb +1 -0
- data/lib/andy_rails_toolbox/version.rb +1 -1
- data/lib/andy_rails_toolbox.rb +3 -0
- metadata +76 -9
- data/app/helpers/font_awesome_helper.rb +0 -94
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ec7999c1f2abf182ec385152af0025d4fd7864e
|
4
|
+
data.tar.gz: 818c24d74ccb8af8e928a88db5b5874367d0efe4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 392ca668c9f2f7328ca759696495babed7dddb910734431032d241a8fd2aaad7892b3e96a56450c9c91124830fa392f8e61cfa1fc676244ad6f4285622905b91
|
7
|
+
data.tar.gz: a043389d4987a619dc966e9a154178be73831c80e16bee7bc22a5e127a27c1e42da76393b888df1170681a3fe878b2d91e30ce74a39db3f1928aed35e81b40d0
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Andy Rails Toolbox
|
1
|
+
# Andy Rails Toolbox [![Gem Version](https://badge.fury.io/rb/andy_rails_toolbox.svg)](http://badge.fury.io/rb/andy_rails_toolbox)
|
2
2
|
|
3
3
|
Andy Rails Toolbox includes many useful helpers for rails development.
|
4
4
|
|
@@ -39,14 +39,14 @@ Examples
|
|
39
39
|
|
40
40
|
ICONS
|
41
41
|
|
42
|
-
```
|
42
|
+
``` ruby
|
43
43
|
bs_icon 'user'
|
44
44
|
# => <span class="glyphicon glyphicon-user"></span>
|
45
45
|
```
|
46
46
|
|
47
47
|
BUTTONS
|
48
48
|
|
49
|
-
```
|
49
|
+
``` ruby
|
50
50
|
html_button 'button'
|
51
51
|
# => <button name="button" type="button" class="btn btn-default">button</button>
|
52
52
|
html_button 'button', color: 'primary'
|
@@ -73,7 +73,7 @@ input_submit 'input button'
|
|
73
73
|
|
74
74
|
IMAGES
|
75
75
|
|
76
|
-
```
|
76
|
+
``` ruby
|
77
77
|
image_responsive 'pic.png'
|
78
78
|
# => <img class="img-responsive" src="/images/pic.png" alt="Pic" />
|
79
79
|
image_rounded 'pic.png'
|
@@ -105,7 +105,7 @@ irb(main):002:0> Pygments.styles
|
|
105
105
|
|
106
106
|
Examples
|
107
107
|
|
108
|
-
```
|
108
|
+
``` ruby
|
109
109
|
markdown '# h1'
|
110
110
|
# => <h1>h1</h1>
|
111
111
|
markdown '## h2'
|
@@ -118,7 +118,7 @@ markdown @post.content
|
|
118
118
|
|
119
119
|
#### QrcodeHelper Examples
|
120
120
|
|
121
|
-
```
|
121
|
+
``` ruby
|
122
122
|
qrcode 'Hello world!'
|
123
123
|
```
|
124
124
|
|
@@ -126,7 +126,7 @@ qrcode 'Hello world!'
|
|
126
126
|
|
127
127
|
QRCode options parameters: <a href="https://google-developers.appspot.com/chart/infographics/docs/qr_codes#overview" target="_blank">Here</a>
|
128
128
|
|
129
|
-
```
|
129
|
+
``` ruby
|
130
130
|
qrcode 'Hello world!', width: '300', output_encoding: 'Shift_JIS', error_correction_level: 'H', margin: '10'
|
131
131
|
```
|
132
132
|
|
@@ -134,17 +134,18 @@ qrcode 'Hello world!', width: '300', output_encoding: 'Shift_JIS', error_correct
|
|
134
134
|
|
135
135
|
Font Awesome icons Homepage: <a href="http://fortawesome.github.io/Font-Awesome/" target="_blank">http://fortawesome.github.io/Font-Awesome/</a>
|
136
136
|
|
137
|
-
|
137
|
+
In your `application.css`, include the css file:
|
138
138
|
|
139
|
-
```
|
140
|
-
|
141
|
-
|
142
|
-
|
139
|
+
```css
|
140
|
+
/*
|
141
|
+
*= require font-awesome
|
142
|
+
*/
|
143
143
|
```
|
144
|
+
Then restart your webserver if it was previously running
|
144
145
|
|
145
146
|
Examples
|
146
147
|
|
147
|
-
```
|
148
|
+
``` ruby
|
148
149
|
fa_icon "user"
|
149
150
|
# => <i class="fa fa-user"></i>
|
150
151
|
|
@@ -160,7 +161,7 @@ fa_icon "user 4x"
|
|
160
161
|
|
161
162
|
#### HashHelper Examples
|
162
163
|
|
163
|
-
```
|
164
|
+
``` ruby
|
164
165
|
options = { a: '1', b: '2', c: '3' }
|
165
166
|
|
166
167
|
get_value :a, options
|
@@ -194,7 +195,7 @@ Add below codes to file `app/assets/javascripts/application.js`
|
|
194
195
|
|
195
196
|
Use in View
|
196
197
|
|
197
|
-
```
|
198
|
+
``` ruby
|
198
199
|
timeago '2014-11-21 09:38:27.256503'
|
199
200
|
# => '2個月之前'
|
200
201
|
```
|
data/Rakefile
CHANGED
@@ -1,111 +1,160 @@
|
|
1
1
|
module BootstrapHelper
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
|
3
|
+
# --------- #
|
4
|
+
# - ICONS - #
|
5
|
+
# --------- #
|
5
6
|
|
6
7
|
# Generates an icon.
|
7
|
-
def bs_icon(icon,
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
def bs_icon(icon, html_options = {})
|
9
|
+
html_options = html_options.stringify_keys
|
10
|
+
classes = ['glyphicon']
|
11
|
+
classes << "glyphicon-#{icon}"
|
12
|
+
if preset_class = html_options.delete('class')
|
13
|
+
classes << preset_class
|
14
|
+
end
|
15
|
+
html_options['class'] = classes * ' '
|
16
|
+
|
17
|
+
content_tag(:span, nil, html_options)
|
12
18
|
end
|
13
19
|
|
14
|
-
|
15
|
-
|
16
|
-
|
20
|
+
# ---------------- #
|
21
|
+
# - LINK BUTTONS - #
|
22
|
+
# ---------------- #
|
17
23
|
|
18
|
-
# Generates a button.
|
19
|
-
def
|
20
|
-
|
24
|
+
# Generates a link button.
|
25
|
+
def link_button(label = nil, options = nil, html_options = nil, &block)
|
26
|
+
html_options, options, label = options, label, capture(&block) if block_given?
|
27
|
+
|
28
|
+
html_options ||= {}
|
29
|
+
html_options = html_options.stringify_keys
|
30
|
+
html_options = normalize_button_options_for_bootstrap(html_options)
|
31
|
+
|
32
|
+
if (label_hidden = html_options.delete('label_hidden')) && !block_given?
|
33
|
+
label = content_tag :span, label, class: "hidden-#{label_hidden}"
|
34
|
+
end
|
35
|
+
|
36
|
+
if (icon = html_options.delete('icon')) && !block_given?
|
37
|
+
label = fa_icon(icon, text: label)
|
38
|
+
end
|
39
|
+
|
40
|
+
if html_options['confirm']
|
41
|
+
html_options['data-confirm'] = html_options.delete('confirm')
|
42
|
+
end
|
43
|
+
|
44
|
+
if html_options['disable_with']
|
45
|
+
html_options['data-disable-with'] = html_options.delete('disable_with')
|
46
|
+
end
|
47
|
+
|
48
|
+
link_to(label, options, html_options)
|
21
49
|
end
|
22
50
|
|
23
|
-
|
24
|
-
|
25
|
-
|
51
|
+
def new_button(label = nil, options = nil, html_options = nil)
|
52
|
+
button_options = { icon: 'plus', color: 'primary' }
|
53
|
+
html_options ||= {}
|
54
|
+
html_options.update button_options
|
55
|
+
|
56
|
+
link_button(label, options, html_options)
|
26
57
|
end
|
27
58
|
|
28
|
-
# Generates a
|
29
|
-
def
|
30
|
-
|
59
|
+
# Generates a link show button.
|
60
|
+
def show_button(label = nil, options = nil, html_options = nil)
|
61
|
+
button_options = { icon: 'search', color: 'info' }
|
62
|
+
html_options ||= {}
|
63
|
+
html_options.update button_options
|
64
|
+
|
65
|
+
link_button(label, options, html_options)
|
31
66
|
end
|
32
67
|
|
33
|
-
# Generates a
|
34
|
-
def
|
35
|
-
|
68
|
+
# Generates a link edit button.
|
69
|
+
def edit_button(label = nil, options = nil, html_options = nil)
|
70
|
+
button_options = { icon: 'edit', color: 'warning' }
|
71
|
+
html_options ||= {}
|
72
|
+
html_options.update button_options
|
73
|
+
|
74
|
+
link_button(label, options, html_options)
|
36
75
|
end
|
37
76
|
|
38
|
-
# Generates a link
|
39
|
-
def
|
40
|
-
|
77
|
+
# Generates a link destroy button.
|
78
|
+
def destroy_button(label = nil, options = nil, html_options = nil)
|
79
|
+
button_options = { icon: 'trash', color: 'danger', method: :delete, confirm: 'Are you sure?' }
|
80
|
+
html_options ||= {}
|
81
|
+
html_options.update button_options
|
82
|
+
|
83
|
+
link_button(label, options, html_options)
|
41
84
|
end
|
42
85
|
|
43
|
-
# Generates a
|
44
|
-
def
|
45
|
-
|
86
|
+
# Generates a link back button.
|
87
|
+
def back_button(label = nil, options = nil, html_options = nil)
|
88
|
+
button_options = { icon: 'reply' }
|
89
|
+
html_options ||= {}
|
90
|
+
html_options.update button_options
|
91
|
+
|
92
|
+
link_button(label, options, html_options)
|
46
93
|
end
|
47
94
|
|
48
|
-
# Generates a
|
49
|
-
def
|
50
|
-
|
95
|
+
# Generates a link cancel button.
|
96
|
+
def cancel_button(label = nil, options = nil, html_options = nil)
|
97
|
+
button_options = { icon: 'ban' }
|
98
|
+
html_options ||= {}
|
99
|
+
html_options.update button_options
|
100
|
+
|
101
|
+
link_button(label, options, html_options)
|
51
102
|
end
|
52
103
|
|
104
|
+
# ----------- #
|
105
|
+
# - BUTTONS - #
|
106
|
+
# ----------- #
|
107
|
+
|
53
108
|
# Generates a button.
|
54
|
-
def
|
55
|
-
|
109
|
+
def button(label = nil, html_options = nil, &block)
|
110
|
+
html_options, label = label, capture(&block) if block_given?
|
56
111
|
|
57
|
-
|
58
|
-
|
112
|
+
html_options ||= {}
|
113
|
+
html_options = html_options.stringify_keys
|
114
|
+
html_options = normalize_button_options_for_bootstrap(html_options, :button)
|
59
115
|
|
60
|
-
|
61
|
-
add_css_class(%(btn-#{size}), options) if size
|
116
|
+
html_options['type'] ||= 'button'
|
62
117
|
|
63
|
-
|
64
|
-
|
118
|
+
if (label_hidden = html_options.delete('label_hidden')) && !block_given?
|
119
|
+
label = content_tag :span, label, class: "hidden-#{label_hidden}"
|
120
|
+
end
|
65
121
|
|
66
|
-
|
122
|
+
if (icon = html_options.delete('icon')) && !block_given?
|
123
|
+
label = fa_icon(icon, text: label)
|
124
|
+
end
|
67
125
|
|
68
|
-
|
69
|
-
|
70
|
-
if icon
|
71
|
-
label = fa_icon(icon) + ' ' + label
|
72
|
-
end
|
126
|
+
if html_options['confirm']
|
127
|
+
html_options['data-confirm'] = html_options.delete('confirm')
|
73
128
|
end
|
74
129
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
def create_button(type, label, options)
|
79
|
-
url = pop_value :url, options, '#'
|
80
|
-
case type
|
81
|
-
when :html_button
|
82
|
-
options[:type] = :button unless options[:type]
|
83
|
-
button_tag label, options
|
84
|
-
when :submit_button
|
85
|
-
options[:name] = nil
|
86
|
-
options[:type] = :submit
|
87
|
-
button_tag label, options
|
88
|
-
when :reset_button
|
89
|
-
options[:name] = nil
|
90
|
-
options[:type] = :reset
|
91
|
-
button_tag label, options
|
92
|
-
when :link_button
|
93
|
-
options[:role] = :button
|
94
|
-
link_to label, url, options
|
95
|
-
when :input_button
|
96
|
-
options[:value] = label
|
97
|
-
options[:type] = :button
|
98
|
-
tag 'input', options
|
99
|
-
when :input_submit
|
100
|
-
submit_tag label, options
|
101
|
-
else
|
102
|
-
# type code here
|
130
|
+
if html_options['disable_with']
|
131
|
+
html_options['data-disable-with'] = html_options.delete('disable_with')
|
103
132
|
end
|
133
|
+
|
134
|
+
button_tag(label, html_options)
|
135
|
+
end
|
136
|
+
|
137
|
+
# Generates a submit button.
|
138
|
+
def submit_button(label = nil, html_options = nil)
|
139
|
+
button_options = { icon: 'check', color: 'primary', name: 'submit', type: 'submit' }
|
140
|
+
html_options ||= {}
|
141
|
+
html_options.update button_options
|
142
|
+
|
143
|
+
button(label, html_options)
|
104
144
|
end
|
105
145
|
|
106
|
-
|
107
|
-
|
108
|
-
|
146
|
+
# Generates a reset button.
|
147
|
+
def reset_button(label = nil, html_options = nil)
|
148
|
+
button_options = { icon: 'eraser', name: 'reset', type: 'reset' }
|
149
|
+
html_options ||= {}
|
150
|
+
html_options.update button_options
|
151
|
+
|
152
|
+
button(label, html_options)
|
153
|
+
end
|
154
|
+
|
155
|
+
# ---------- #
|
156
|
+
# - IMAGES - #
|
157
|
+
# ---------- #
|
109
158
|
|
110
159
|
# Generates a responsive-friendly image tag
|
111
160
|
def image_responsive(source, options = {})
|
@@ -131,9 +180,55 @@ module BootstrapHelper
|
|
131
180
|
image_tag source, options
|
132
181
|
end
|
133
182
|
|
134
|
-
|
135
|
-
|
136
|
-
|
183
|
+
# ------------ #
|
184
|
+
# - OVERRIDE - #
|
185
|
+
# ------------ #
|
186
|
+
|
187
|
+
# override rails helper: content_tag
|
188
|
+
def content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
|
189
|
+
if block_given?
|
190
|
+
options = content_or_options_with_block if content_or_options_with_block.is_a? Hash
|
191
|
+
normalize_typography_options(options) if options
|
192
|
+
content_tag_string name, capture(&block), options, escape
|
193
|
+
else
|
194
|
+
normalize_typography_options(options) if options
|
195
|
+
content_tag_string name, content_or_options_with_block, options, escape
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
private
|
200
|
+
|
201
|
+
def normalize_button_options_for_bootstrap(html_options = {}, type = :link)
|
202
|
+
classes = ['btn']
|
203
|
+
if color = html_options.delete('color')
|
204
|
+
classes << "btn-#{color}"
|
205
|
+
else
|
206
|
+
classes << 'btn-default'
|
207
|
+
end
|
208
|
+
if size = html_options.delete('size')
|
209
|
+
classes << "btn-#{size}"
|
210
|
+
end
|
211
|
+
if block = html_options.delete('block')
|
212
|
+
classes << 'btn-block'
|
213
|
+
end
|
214
|
+
if active = html_options.delete('active')
|
215
|
+
classes << 'active'
|
216
|
+
end
|
217
|
+
if type == :link && html_options['disabled']
|
218
|
+
html_options.delete('disabled')
|
219
|
+
classes << 'disabled'
|
220
|
+
end
|
221
|
+
if preset_class = html_options.delete('class')
|
222
|
+
classes << preset_class
|
223
|
+
end
|
224
|
+
|
225
|
+
html_options['class'] = classes * ' '
|
226
|
+
html_options
|
227
|
+
end
|
228
|
+
|
229
|
+
# ------------- #
|
230
|
+
# - UTILITIES - #
|
231
|
+
# ------------- #
|
137
232
|
|
138
233
|
# Appends new class names to the given options.
|
139
234
|
def add_css_class(class_names, options)
|
@@ -192,20 +287,4 @@ module BootstrapHelper
|
|
192
287
|
add_color_class options
|
193
288
|
add_bgcolor_class options
|
194
289
|
end
|
195
|
-
|
196
|
-
################
|
197
|
-
### OVERRIDE ###
|
198
|
-
################
|
199
|
-
|
200
|
-
# override rails helper: content_tag
|
201
|
-
def content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
|
202
|
-
if block_given?
|
203
|
-
options = content_or_options_with_block if content_or_options_with_block.is_a? Hash
|
204
|
-
normalize_typography_options(options) unless options.nil?
|
205
|
-
content_tag_string name, capture(&block), options, escape
|
206
|
-
else
|
207
|
-
normalize_typography_options(options) unless options.nil?
|
208
|
-
content_tag_string name, content_or_options_with_block, options, escape
|
209
|
-
end
|
210
|
-
end
|
211
290
|
end
|
data/app/helpers/hash_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module QrcodeHelper
|
2
|
-
def qrcode(data='', options = {})
|
2
|
+
def qrcode(data = '', options = {})
|
3
3
|
# Google API: https://google-developers.appspot.com/chart/infographics/docs/qr_codes
|
4
4
|
width = pop_value :width, options, '200'
|
5
5
|
output_encoding = pop_value :output_encoding, options
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'bootstrap-sass'
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'font-awesome-rails'
|
data/lib/andy_rails_toolbox.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,109 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: andy_rails_toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ChouAndy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bootstrap-sass
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.3'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.3.4
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.3'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.3.4
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: sass-rails
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.2'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.2'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: font-awesome-rails
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '4.3'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 4.3.0.0
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '4.3'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 4.3.0.0
|
13
67
|
- !ruby/object:Gem::Dependency
|
14
68
|
name: redcarpet
|
15
69
|
requirement: !ruby/object:Gem::Requirement
|
16
70
|
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '3.2'
|
17
74
|
- - ">="
|
18
75
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
76
|
+
version: 3.2.3
|
20
77
|
type: :runtime
|
21
78
|
prerelease: false
|
22
79
|
version_requirements: !ruby/object:Gem::Requirement
|
23
80
|
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.2'
|
24
84
|
- - ">="
|
25
85
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
86
|
+
version: 3.2.3
|
27
87
|
- !ruby/object:Gem::Dependency
|
28
88
|
name: pygments.rb
|
29
89
|
requirement: !ruby/object:Gem::Requirement
|
30
90
|
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.6'
|
31
94
|
- - ">="
|
32
95
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
96
|
+
version: 0.6.3
|
34
97
|
type: :runtime
|
35
98
|
prerelease: false
|
36
99
|
version_requirements: !ruby/object:Gem::Requirement
|
37
100
|
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.6'
|
38
104
|
- - ">="
|
39
105
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
106
|
+
version: 0.6.3
|
41
107
|
description: Andy Rails Toolbox includes many useful helpers for rails development.
|
42
108
|
email:
|
43
109
|
- chouandy625@gmail.com
|
@@ -52,12 +118,13 @@ files:
|
|
52
118
|
- app/assets/javascripts/jquery.timeago.load.coffee
|
53
119
|
- app/assets/javascripts/jquery.timeago.zh-TW.js
|
54
120
|
- app/helpers/bootstrap_helper.rb
|
55
|
-
- app/helpers/font_awesome_helper.rb
|
56
121
|
- app/helpers/hash_helper.rb
|
57
122
|
- app/helpers/markdown_helper.rb
|
58
123
|
- app/helpers/qrcode_helper.rb
|
59
124
|
- app/helpers/timeago_helper.rb
|
60
125
|
- lib/andy_rails_toolbox.rb
|
126
|
+
- lib/andy_rails_toolbox/bootstrap-sass.rb
|
127
|
+
- lib/andy_rails_toolbox/font-awesome-rails.rb
|
61
128
|
- lib/andy_rails_toolbox/version.rb
|
62
129
|
homepage: https://github.com/ChouAndy/andy_rails_toolbox
|
63
130
|
licenses:
|
@@ -71,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
138
|
requirements:
|
72
139
|
- - ">="
|
73
140
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
141
|
+
version: 1.9.3
|
75
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
143
|
requirements:
|
77
144
|
- - ">="
|
@@ -79,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
146
|
version: '0'
|
80
147
|
requirements: []
|
81
148
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.4.
|
149
|
+
rubygems_version: 2.4.7
|
83
150
|
signing_key:
|
84
151
|
specification_version: 4
|
85
152
|
summary: Includes many useful helpers for rails development.
|
@@ -1,94 +0,0 @@
|
|
1
|
-
module FontAwesomeHelper
|
2
|
-
# Creates an icon tag given an icon name and possible icon
|
3
|
-
# modifiers.
|
4
|
-
#
|
5
|
-
# Examples
|
6
|
-
#
|
7
|
-
# fa_icon "camera-retro"
|
8
|
-
# # => <i class="fa fa-camera-retro"></i>
|
9
|
-
#
|
10
|
-
# fa_icon "camera-retro", text: "Take a photo"
|
11
|
-
# # => <i class="fa fa-camera-retro"></i> Take a photo
|
12
|
-
# fa_icon "chevron-right", text: "Get started", right: true
|
13
|
-
# # => Get started <i class="fa fa-chevron-right"></i>
|
14
|
-
#
|
15
|
-
# fa_icon "camera-retro 2x"
|
16
|
-
# # => <i class="fa fa-camera-retro fa-2x"></i>
|
17
|
-
# fa_icon ["camera-retro", "4x"]
|
18
|
-
# # => <i class="fa fa-camera-retro fa-4x"></i>
|
19
|
-
# fa_icon "spinner spin lg"
|
20
|
-
# # => <i class="fa fa-spinner fa-spin fa-lg">
|
21
|
-
#
|
22
|
-
# fa_icon "quote-left 4x", class: "pull-left"
|
23
|
-
# # => <i class="fa fa-quote-left fa-4x pull-left"></i>
|
24
|
-
#
|
25
|
-
# fa_icon "user", data: { id: 123 }
|
26
|
-
# # => <i class="fa fa-user" data-id="123"></i>
|
27
|
-
#
|
28
|
-
# content_tag(:li, fa_icon("check li", text: "Bulleted list item"))
|
29
|
-
# # => <li><i class="fa fa-check fa-li"></i> Bulleted list item</li>
|
30
|
-
def fa_icon(names = 'flag', options = {})
|
31
|
-
classes = ['fa']
|
32
|
-
classes.concat Private.icon_names(names)
|
33
|
-
classes.concat Array(options.delete(:class))
|
34
|
-
text = options.delete(:text)
|
35
|
-
right_icon = options.delete(:right)
|
36
|
-
icon = content_tag(:i, nil, options.merge(class: classes))
|
37
|
-
Private.icon_join(icon, text, right_icon)
|
38
|
-
end
|
39
|
-
|
40
|
-
# Creates an stack set of icon tags given a base icon name, a main icon
|
41
|
-
# name, and possible icon modifiers.
|
42
|
-
#
|
43
|
-
# Examples
|
44
|
-
#
|
45
|
-
# fa_stacked_icon "twitter", base: "square-o"
|
46
|
-
# # => <span class="fa-stack">
|
47
|
-
# # => <i class="fa fa-square-o fa-stack-2x"></i>
|
48
|
-
# # => <i class="fa fa-twitter fa-stack-1x"></i>
|
49
|
-
# # => </span>
|
50
|
-
#
|
51
|
-
# fa_stacked_icon "terminal inverse", base: "square", class: "pull-right", text: "Hi!"
|
52
|
-
# # => <span class="fa-stack pull-right">
|
53
|
-
# # => <i class="fa fa-square fa-stack-2x"></i>
|
54
|
-
# # => <i class="fa fa-terminal fa-inverse fa-stack-1x"></i>
|
55
|
-
# # => </span> Hi!
|
56
|
-
#
|
57
|
-
# fa_stacked_icon "camera", base: "ban-circle", reverse: true
|
58
|
-
# # => <span class="fa-stack">
|
59
|
-
# # => <i class="fa fa-camera fa-stack-1x"></i>
|
60
|
-
# # => <i class="fa fa-ban-circle fa-stack-2x"></i>
|
61
|
-
# # => </span>
|
62
|
-
def fa_stacked_icon(names = 'flag', options = {})
|
63
|
-
classes = Private.icon_names('stack').concat(Array(options.delete(:class)))
|
64
|
-
base_names = Private.array_value(options.delete(:base) || 'square-o').push('stack-2x')
|
65
|
-
names = Private.array_value(names).push('stack-1x')
|
66
|
-
base = fa_icon(base_names, options.delete(:base_options) || {})
|
67
|
-
icon = fa_icon(names, options.delete(:icon_options) || {})
|
68
|
-
icons = [base, icon]
|
69
|
-
icons.reverse! if options.delete(:reverse)
|
70
|
-
text = options.delete(:text)
|
71
|
-
right_icon = options.delete(:right)
|
72
|
-
stacked_icon = content_tag(:span, safe_join(icons), options.merge(class: classes))
|
73
|
-
Private.icon_join(stacked_icon, text, right_icon)
|
74
|
-
end
|
75
|
-
|
76
|
-
module Private
|
77
|
-
extend ActionView::Helpers::OutputSafetyHelper
|
78
|
-
|
79
|
-
def self.icon_join(icon, text, reverse_order = false)
|
80
|
-
return icon if text.blank?
|
81
|
-
elements = [icon, ERB::Util.html_escape(text)]
|
82
|
-
elements.reverse! if reverse_order
|
83
|
-
safe_join(elements, ' ')
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.icon_names(names = [])
|
87
|
-
array_value(names).map { |n| "fa-#{n}" }
|
88
|
-
end
|
89
|
-
|
90
|
-
def self.array_value(value = [])
|
91
|
-
value.is_a?(Array) ? value : value.to_s.split(/\s+/)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|