beautiful_scaffold 1.0.2 → 2.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/CHANGELOG +24 -1
  4. data/Gemfile +24 -9
  5. data/Gemfile.lock +209 -0
  6. data/README.rdoc +25 -26
  7. data/Rakefile +27 -4
  8. data/beautiful_scaffold.gemspec +6 -4
  9. data/lib/beautiful_scaffold/version.rb +3 -0
  10. data/lib/generators/beautiful_jointable_generator.rb +39 -6
  11. data/lib/generators/beautiful_migration_generator.rb +11 -19
  12. data/lib/generators/beautiful_scaffold_common_methods.rb +51 -26
  13. data/lib/generators/beautiful_scaffold_generator.rb +100 -43
  14. data/lib/generators/templates/app/assets/javascripts/application-bs.js +5 -6
  15. data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +64 -77
  16. data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +25 -41
  17. data/lib/generators/templates/app/assets/javascripts/fixed_menu.js +3 -1
  18. data/lib/generators/templates/app/assets/javascripts/jstree.min.js +6 -0
  19. data/lib/generators/templates/app/assets/stylesheets/application-bs.css +14 -6
  20. data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +10 -1
  21. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/32px.png +0 -0
  22. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/40px.png +0 -0
  23. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/style.scss +1146 -0
  24. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/throbber.gif +0 -0
  25. data/lib/generators/templates/app/assets/stylesheets/themes/default/32px.png +0 -0
  26. data/lib/generators/templates/app/assets/stylesheets/themes/default/40px.png +0 -0
  27. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.scss +1102 -0
  28. data/lib/generators/templates/app/assets/stylesheets/themes/default/throbber.gif +0 -0
  29. data/lib/generators/templates/app/controllers/base.rb +7 -5
  30. data/lib/generators/templates/app/controllers/master_base.rb +18 -24
  31. data/lib/generators/templates/app/helpers/beautiful_helper.rb +83 -61
  32. data/lib/generators/templates/app/initializers/link_renderer.rb +23 -18
  33. data/lib/generators/templates/app/views/_form.html.erb +2 -2
  34. data/lib/generators/templates/app/views/_form_habtm_tag.html.erb +6 -2
  35. data/lib/generators/templates/app/views/_mass_inserting.html.erb +38 -30
  36. data/lib/generators/templates/app/views/_modal_columns.html.erb +3 -3
  37. data/lib/generators/templates/app/views/index.html.erb +83 -79
  38. data/lib/generators/templates/app/views/layout.html.erb +29 -36
  39. data/lib/generators/templates/app/views/partials/_forget_password.html.erb +2 -2
  40. data/lib/generators/templates/app/views/partials/_form_field.html.erb +7 -7
  41. data/lib/generators/templates/app/views/partials/_index_batch.html.erb +1 -1
  42. data/lib/generators/templates/app/views/partials/_index_column.html.erb +4 -4
  43. data/lib/generators/templates/app/views/partials/_index_header.html.erb +1 -1
  44. data/lib/generators/templates/app/views/partials/_index_search.html.erb +1 -1
  45. data/lib/generators/templates/app/views/partials/_register_form.html.erb +2 -2
  46. data/lib/generators/templates/app/views/partials/_show_field.html.erb +3 -3
  47. data/lib/generators/templates/app/views/partials/_sign_in_form.html.erb +1 -1
  48. data/lib/generators/templates/app/views/partials/_sign_in_sign_out.html.erb +2 -2
  49. data/lib/generators/templates/app/views/show.html.erb +2 -2
  50. data/lib/generators/templates/app/views/treeview.html.erb +8 -5
  51. metadata +21 -19
  52. data/lib/generators/templates/app/assets/javascripts/jquery.jstree.js +0 -4551
  53. data/lib/generators/templates/app/assets/stylesheets/datepicker.css +0 -224
  54. data/lib/generators/templates/app/assets/stylesheets/reset.css +0 -48
  55. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.gif +0 -0
  56. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.png +0 -0
  57. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.css +0 -74
  58. data/lib/generators/templates/app/assets/stylesheets/timepicker.css +0 -89
  59. data/test/scaffold_test.rb +0 -68
@@ -1,224 +0,0 @@
1
- /*!
2
- * Datepicker for Bootstrap
3
- *
4
- * Copyright 2012 Stefan Petre
5
- * Improvements by Andrew Rowls
6
- * Licensed under the Apache License v2.0
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- *
9
- */
10
- .datepicker {
11
- top: 0;
12
- left: 0;
13
- padding: 4px;
14
- margin-top: 1px;
15
- -webkit-border-radius: 4px;
16
- -moz-border-radius: 4px;
17
- border-radius: 4px;
18
- /*.dow {
19
- border-top: 1px solid #ddd !important;
20
- }*/
21
-
22
- }
23
- .datepicker:before {
24
- content: '';
25
- display: inline-block;
26
- border-left: 7px solid transparent;
27
- border-right: 7px solid transparent;
28
- border-bottom: 7px solid #ccc;
29
- border-bottom-color: rgba(0, 0, 0, 0.2);
30
- position: absolute;
31
- top: -7px;
32
- left: 6px;
33
- }
34
- .datepicker:after {
35
- content: '';
36
- display: inline-block;
37
- border-left: 6px solid transparent;
38
- border-right: 6px solid transparent;
39
- border-bottom: 6px solid #ffffff;
40
- position: absolute;
41
- top: -6px;
42
- left: 7px;
43
- }
44
- .datepicker > div {
45
- display: none;
46
- }
47
- .datepicker.days div.datepicker-days {
48
- display: block;
49
- }
50
- .datepicker.months div.datepicker-months {
51
- display: block;
52
- }
53
- .datepicker.years div.datepicker-years {
54
- display: block;
55
- }
56
- .datepicker table {
57
- width: 100%;
58
- margin: 0;
59
- }
60
- .datepicker td,
61
- .datepicker th {
62
- text-align: center;
63
- width: 20px;
64
- height: 20px;
65
- -webkit-border-radius: 4px;
66
- -moz-border-radius: 4px;
67
- border-radius: 4px;
68
- }
69
- .datepicker td.day:hover {
70
- background: #eeeeee;
71
- cursor: pointer;
72
- }
73
- .datepicker td.old,
74
- .datepicker td.new {
75
- color: #999999;
76
- }
77
- .datepicker td.disabled,
78
- .datepicker td.disabled:hover {
79
- background: none;
80
- color: #999999;
81
- cursor: default;
82
- }
83
- .datepicker td.active,
84
- .datepicker td.active:hover,
85
- .datepicker td.active.disabled,
86
- .datepicker td.active.disabled:hover {
87
- background-color: #006dcc;
88
- background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
89
- background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
90
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
91
- background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
92
- background-image: -o-linear-gradient(top, #0088cc, #0044cc);
93
- background-image: linear-gradient(top, #0088cc, #0044cc);
94
- background-repeat: repeat-x;
95
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
96
- border-color: #0044cc #0044cc #002a80;
97
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
98
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
99
- color: #fff;
100
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
101
- }
102
- .datepicker td.active:hover,
103
- .datepicker td.active:hover:hover,
104
- .datepicker td.active.disabled:hover,
105
- .datepicker td.active.disabled:hover:hover,
106
- .datepicker td.active:active,
107
- .datepicker td.active:hover:active,
108
- .datepicker td.active.disabled:active,
109
- .datepicker td.active.disabled:hover:active,
110
- .datepicker td.active.active,
111
- .datepicker td.active:hover.active,
112
- .datepicker td.active.disabled.active,
113
- .datepicker td.active.disabled:hover.active,
114
- .datepicker td.active.disabled,
115
- .datepicker td.active:hover.disabled,
116
- .datepicker td.active.disabled.disabled,
117
- .datepicker td.active.disabled:hover.disabled,
118
- .datepicker td.active[disabled],
119
- .datepicker td.active:hover[disabled],
120
- .datepicker td.active.disabled[disabled],
121
- .datepicker td.active.disabled:hover[disabled] {
122
- background-color: #0044cc;
123
- }
124
- .datepicker td.active:active,
125
- .datepicker td.active:hover:active,
126
- .datepicker td.active.disabled:active,
127
- .datepicker td.active.disabled:hover:active,
128
- .datepicker td.active.active,
129
- .datepicker td.active:hover.active,
130
- .datepicker td.active.disabled.active,
131
- .datepicker td.active.disabled:hover.active {
132
- background-color: #003399 \9;
133
- }
134
- .datepicker td span {
135
- display: block;
136
- width: 47px;
137
- height: 54px;
138
- line-height: 54px;
139
- float: left;
140
- margin: 2px;
141
- cursor: pointer;
142
- -webkit-border-radius: 4px;
143
- -moz-border-radius: 4px;
144
- border-radius: 4px;
145
- }
146
- .datepicker td span:hover {
147
- background: #eeeeee;
148
- }
149
- .datepicker td span.disabled,
150
- .datepicker td span.disabled:hover {
151
- background: none;
152
- color: #999999;
153
- cursor: default;
154
- }
155
- .datepicker td span.active,
156
- .datepicker td span.active:hover,
157
- .datepicker td span.active.disabled,
158
- .datepicker td span.active.disabled:hover {
159
- background-color: #006dcc;
160
- background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
161
- background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
162
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
163
- background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
164
- background-image: -o-linear-gradient(top, #0088cc, #0044cc);
165
- background-image: linear-gradient(top, #0088cc, #0044cc);
166
- background-repeat: repeat-x;
167
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
168
- border-color: #0044cc #0044cc #002a80;
169
- border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
170
- filter: progid:dximagetransform.microsoft.gradient(enabled=false);
171
- color: #fff;
172
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
173
- }
174
- .datepicker td span.active:hover,
175
- .datepicker td span.active:hover:hover,
176
- .datepicker td span.active.disabled:hover,
177
- .datepicker td span.active.disabled:hover:hover,
178
- .datepicker td span.active:active,
179
- .datepicker td span.active:hover:active,
180
- .datepicker td span.active.disabled:active,
181
- .datepicker td span.active.disabled:hover:active,
182
- .datepicker td span.active.active,
183
- .datepicker td span.active:hover.active,
184
- .datepicker td span.active.disabled.active,
185
- .datepicker td span.active.disabled:hover.active,
186
- .datepicker td span.active.disabled,
187
- .datepicker td span.active:hover.disabled,
188
- .datepicker td span.active.disabled.disabled,
189
- .datepicker td span.active.disabled:hover.disabled,
190
- .datepicker td span.active[disabled],
191
- .datepicker td span.active:hover[disabled],
192
- .datepicker td span.active.disabled[disabled],
193
- .datepicker td span.active.disabled:hover[disabled] {
194
- background-color: #0044cc;
195
- }
196
- .datepicker td span.active:active,
197
- .datepicker td span.active:hover:active,
198
- .datepicker td span.active.disabled:active,
199
- .datepicker td span.active.disabled:hover:active,
200
- .datepicker td span.active.active,
201
- .datepicker td span.active:hover.active,
202
- .datepicker td span.active.disabled.active,
203
- .datepicker td span.active.disabled:hover.active {
204
- background-color: #003399 \9;
205
- }
206
- .datepicker td span.old {
207
- color: #999999;
208
- }
209
- .datepicker th.switch {
210
- width: 145px;
211
- }
212
- .datepicker thead tr:first-child th {
213
- cursor: pointer;
214
- }
215
- .datepicker thead tr:first-child th:hover {
216
- background: #eeeeee;
217
- }
218
- .input-group.date .input-group-addon i,
219
- .input-group.date .input-group-addon i {
220
- display: block;
221
- cursor: pointer;
222
- width: 16px;
223
- height: 16px;
224
- }
@@ -1,48 +0,0 @@
1
- /* http://meyerweb.com/eric/tools/css/reset/
2
- v2.0 | 20110126
3
- License: none (public domain)
4
- */
5
-
6
- html, body, div, span, applet, object, iframe,
7
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
- a, abbr, acronym, address, big, cite, code,
9
- del, dfn, em, img, ins, kbd, q, s, samp,
10
- small, strike, strong, sub, sup, tt, var,
11
- b, u, i, center,
12
- dl, dt, dd, ol, ul, li,
13
- fieldset, form, label, legend,
14
- table, caption, tbody, tfoot, thead, tr, th, td,
15
- article, aside, canvas, details, embed,
16
- figure, figcaption, footer, header, hgroup,
17
- menu, nav, output, ruby, section, summary,
18
- time, mark, audio, video {
19
- margin: 0;
20
- padding: 0;
21
- border: 0;
22
- font-size: 100%;
23
- font: inherit;
24
- vertical-align: baseline;
25
- }
26
- /* HTML5 display-role reset for older browsers */
27
- article, aside, details, figcaption, figure,
28
- footer, header, hgroup, menu, nav, section {
29
- display: block;
30
- }
31
- body {
32
- line-height: 1;
33
- }
34
- ol, ul {
35
- list-style: none;
36
- }
37
- blockquote, q {
38
- quotes: none;
39
- }
40
- blockquote:before, blockquote:after,
41
- q:before, q:after {
42
- content: '';
43
- content: none;
44
- }
45
- table {
46
- border-collapse: collapse;
47
- border-spacing: 0;
48
- }
@@ -1,74 +0,0 @@
1
- /*
2
- * jsTree default theme 1.0
3
- * Supported features: dots/no-dots, icons/no-icons, focused, loading
4
- * Supported plugins: ui (hovered, clicked), checkbox, contextmenu, search
5
- */
6
-
7
- .jstree-default li,
8
- .jstree-default ins { background-image:url("d.png"); background-repeat:no-repeat; background-color:transparent; }
9
- .jstree-default li { background-position:-90px 0; background-repeat:repeat-y; }
10
- .jstree-default li.jstree-last { background:transparent; }
11
- .jstree-default .jstree-open > ins { background-position:-72px 0; }
12
- .jstree-default .jstree-closed > ins { background-position:-54px 0; }
13
- .jstree-default .jstree-leaf > ins { background-position:-36px 0; }
14
-
15
- .jstree-default .jstree-hovered { background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px; }
16
- .jstree-default .jstree-clicked { background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px; }
17
- .jstree-default a .jstree-icon { background-position:-56px -19px; }
18
- .jstree-default a.jstree-loading .jstree-icon { background:url("throbber.gif") center center no-repeat !important; }
19
-
20
- /*.jstree-default.jstree-focused { background:#ffffee; }*/
21
-
22
- .jstree-default .jstree-no-dots li,
23
- .jstree-default .jstree-no-dots .jstree-leaf > ins { background:transparent; }
24
- .jstree-default .jstree-no-dots .jstree-open > ins { background-position:-18px 0; }
25
- .jstree-default .jstree-no-dots .jstree-closed > ins { background-position:0 0; }
26
-
27
- .jstree-default .jstree-no-icons a .jstree-icon { display:none; }
28
-
29
- .jstree-default .jstree-search { font-style:italic; }
30
-
31
- .jstree-default .jstree-no-icons .jstree-checkbox { display:inline-block; }
32
- .jstree-default .jstree-no-checkboxes .jstree-checkbox { display:none !important; }
33
- .jstree-default .jstree-checked > a > .jstree-checkbox { background-position:-38px -19px; }
34
- .jstree-default .jstree-unchecked > a > .jstree-checkbox { background-position:-2px -19px; }
35
- .jstree-default .jstree-undetermined > a > .jstree-checkbox { background-position:-20px -19px; }
36
- .jstree-default .jstree-checked > a > .jstree-checkbox:hover { background-position:-38px -37px; }
37
- .jstree-default .jstree-unchecked > a > .jstree-checkbox:hover { background-position:-2px -37px; }
38
- .jstree-default .jstree-undetermined > a > .jstree-checkbox:hover { background-position:-20px -37px; }
39
-
40
- #vakata-dragged.jstree-default ins { background:transparent !important; }
41
- #vakata-dragged.jstree-default .jstree-ok { background:url("d.png") -2px -53px no-repeat !important; }
42
- #vakata-dragged.jstree-default .jstree-invalid { background:url("d.png") -18px -53px no-repeat !important; }
43
- #jstree-marker.jstree-default { background:url("d.png") -41px -57px no-repeat !important; text-indent:-100px; }
44
-
45
- .jstree-default a.jstree-search { color:aqua; }
46
- .jstree-default .jstree-locked a { color:silver; cursor:default; }
47
-
48
- #vakata-contextmenu.jstree-default-context,
49
- #vakata-contextmenu.jstree-default-context li ul { background:#f0f0f0; border:1px solid #979797; -moz-box-shadow: 1px 1px 2px #999; -webkit-box-shadow: 1px 1px 2px #999; box-shadow: 1px 1px 2px #999; }
50
- #vakata-contextmenu.jstree-default-context li { }
51
- #vakata-contextmenu.jstree-default-context a { color:black; }
52
- #vakata-contextmenu.jstree-default-context a:hover,
53
- #vakata-contextmenu.jstree-default-context .vakata-hover > a { padding:0 5px; background:#e8eff7; border:1px solid #aecff7; color:black; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; }
54
- #vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a,
55
- #vakata-contextmenu.jstree-default-context li.jstree-contextmenu-disabled a:hover { color:silver; background:transparent; border:0; padding:1px 4px; }
56
- #vakata-contextmenu.jstree-default-context li.vakata-separator { background:white; border-top:1px solid #e0e0e0; margin:0; }
57
- #vakata-contextmenu.jstree-default-context li ul { margin-left:-4px; }
58
-
59
- /* IE6 BEGIN */
60
- .jstree-default li,
61
- .jstree-default ins,
62
- #vakata-dragged.jstree-default .jstree-invalid,
63
- #vakata-dragged.jstree-default .jstree-ok,
64
- #jstree-marker.jstree-default { _background-image:url("d.gif"); }
65
- .jstree-default .jstree-open ins { _background-position:-72px 0; }
66
- .jstree-default .jstree-closed ins { _background-position:-54px 0; }
67
- .jstree-default .jstree-leaf ins { _background-position:-36px 0; }
68
- .jstree-default a ins.jstree-icon { _background-position:-56px -19px; }
69
- #vakata-contextmenu.jstree-default-context ins { _display:none; }
70
- #vakata-contextmenu.jstree-default-context li { _zoom:1; }
71
- .jstree-default .jstree-undetermined a .jstree-checkbox { _background-position:-20px -19px; }
72
- .jstree-default .jstree-checked a .jstree-checkbox { _background-position:-38px -19px; }
73
- .jstree-default .jstree-unchecked a .jstree-checkbox { _background-position:-2px -19px; }
74
- /* IE6 END */
@@ -1,89 +0,0 @@
1
-
2
- .bootstrap-timepicker.dropdown-menu {
3
- border-radius: 4px 4px 4px 4px;
4
- display: none;
5
- left: 0;
6
- margin-top: 1px;
7
- padding: 4px;
8
- top: 0;
9
- }
10
- .bootstrap-timepicker.dropdown-menu.open {
11
- display: inline-block;
12
- }
13
- .bootstrap-timepicker.dropdown-menu:before {
14
- border-bottom: 7px solid rgba(0, 0, 0, 0.2);
15
- border-left: 7px solid transparent;
16
- border-right: 7px solid transparent;
17
- content: "";
18
- left: 6px;
19
- position: absolute;
20
- top: -7px;
21
- }
22
- .bootstrap-timepicker.dropdown-menu:after {
23
- border-bottom: 6px solid #FFFFFF;
24
- border-left: 6px solid transparent;
25
- border-right: 6px solid transparent;
26
- content: "";
27
- left: 7px;
28
- position: absolute;
29
- top: -6px;
30
- }
31
- .bootstrap-timepicker.modal .modal-dialog {
32
- width: 200px;
33
- }
34
- .bootstrap-timepicker.modal .modal-content {
35
- padding: 0;
36
- }
37
- .bootstrap-timepicker table {
38
- margin: 0;
39
- width: 100%;
40
- }
41
- .bootstrap-timepicker table td {
42
- height: 30px;
43
- margin: 0;
44
- padding: 2px;
45
- text-align: center;
46
- width: 49%;
47
- }
48
- .bootstrap-timepicker table.show-meridian td, .bootstrap-timepicker table.show-seconds td {
49
- width: 32%;
50
- }
51
- .bootstrap-timepicker table.show-seconds.show-meridian td {
52
- width: 23.5%;
53
- }
54
- .bootstrap-timepicker table td.separator {
55
- width: 2% !important;
56
- }
57
- .bootstrap-timepicker table td span {
58
- width: 100%;
59
- }
60
- .bootstrap-timepicker table td a {
61
- border: 1px solid transparent;
62
- display: inline-block;
63
- margin: 0;
64
- outline: 0 none;
65
- padding: 8px 0;
66
- width: 90%;
67
- }
68
- .bootstrap-timepicker table td a:hover {
69
- background-color: #EEEEEE;
70
- border-color: #DDDDDD;
71
- border-radius: 4px 4px 4px 4px;
72
- }
73
- .bootstrap-timepicker table td a i {
74
- margin-top: 2px;
75
- }
76
- .bootstrap-timepicker table td input {
77
- margin: 0;
78
- text-align: center;
79
- width: 25px;
80
- }
81
- .bootstrap-timepicker-component .input-group-addon {
82
- cursor: pointer;
83
- }
84
- .bootstrap-timepicker-component .input-group-addon i {
85
- display: block;
86
- height: 16px;
87
- width: 16px;
88
- }
89
-
@@ -1,68 +0,0 @@
1
- require 'bundler'
2
- require 'thor'
3
- require 'rails'
4
- require 'rails/generators'
5
- require 'minitest/autorun'
6
-
7
- require_relative File.expand_path("../../lib/generators/beautiful_scaffold_generator", __FILE__)
8
-
9
- ENV["RAILS_ENV"] = 'test'
10
-
11
- class ScaffoldGeneratorTest < ::Rails::Generators::TestCase
12
-
13
- tests BeautifulScaffoldGenerator
14
- destination File.expand_path("../tmp/dummyapp", File.dirname(__FILE__))
15
-
16
- def create_generator_sample_app
17
- if !File.exist?(destination_root)
18
- puts "---> Create Dummy App #{destination_root}"
19
- FileUtils.cd(File.dirname(destination_root)) do
20
- system "rails new dummyapp --quiet --skip-bundle"
21
- end
22
-
23
- test_params = "User email:string birthday:datetime children:integer biography:text"
24
-
25
- run_generator test_params.split(' ')
26
- end
27
- end
28
-
29
- Minitest.after_run do
30
- FileUtils.rm_rf(destination_root)
31
- end
32
-
33
- setup do
34
- create_generator_sample_app
35
- end
36
-
37
- test "generates js css" do
38
- assert_file "app/assets/javascripts/application-bs.js"
39
- assert_file "app/assets/javascripts/beautiful_scaffold.js"
40
- assert_file "app/assets/javascripts/bootstrap-colorpicker.js"
41
- assert_file "app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js"
42
- assert_file "app/assets/javascripts/bootstrap-wysihtml5.js"
43
- end
44
-
45
- test "generates model" do
46
- assert_file "app/models/user.rb" do |content|
47
- assert_match('self.permitted_attributes', content)
48
- #assert_match(/return #{test_params.split(' ')[1..-1]keys.map{ |k| ":#{k}"}.join(',')}/, content)
49
- end
50
- end
51
-
52
- test "generates controller" do
53
- assert_file "app/controllers/users_controller.rb" do |content|
54
- assert_match("session['fields']['user'] ||= (User.columns.map(&:name) - [\"id\"])[0..4]", content)
55
- end
56
- end
57
-
58
- test "generates initializer" do
59
- assert_file "config/initializers/ransack.rb" do |content|
60
- assert_match('Ransack.configure do |config|', content)
61
- end
62
-
63
- assert_file "config/initializers/link_renderer.rb" do |content|
64
- assert_match('class LinkRenderer < LinkRendererBase', content)
65
- end
66
- end
67
-
68
- end