beautiful_scaffold 1.0.2 → 2.0.0.pre

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.
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