pah 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +8 -0
- data/CHANGELOG.md +30 -0
- data/CONTRIBUTING.md +22 -0
- data/README.md +46 -30
- data/Rakefile +4 -0
- data/features/assets.feature +13 -0
- data/features/bullet.feature +7 -0
- data/features/canonical_host.feature +9 -0
- data/features/capybara.feature +10 -0
- data/features/database.feature +16 -0
- data/features/env.feature +19 -0
- data/features/gemfile.feature +10 -0
- data/features/generators.feature +18 -0
- data/features/git.feature +12 -0
- data/features/heroku.feature +6 -0
- data/features/jumpup.feature +13 -0
- data/features/layout.feature +12 -0
- data/features/letter_opener.feature +10 -0
- data/features/locale.feature +29 -0
- data/features/newrelic.feature +13 -0
- data/features/public.feature +20 -0
- data/features/puma.feature +11 -0
- data/features/rack_deflater.feature +10 -0
- data/features/rack_timeout.feature +7 -0
- data/features/rails_works.feature +17 -0
- data/features/readme.feature +14 -0
- data/features/remove_unused_files.feature +7 -0
- data/features/rollbar.feature +13 -0
- data/features/rspec.feature +13 -0
- data/features/run_specs.feature +15 -0
- data/features/runner.feature +28 -0
- data/features/secret_token.feature +34 -0
- data/features/secure_headers.feature +14 -0
- data/features/sendgrid.feature +14 -0
- data/features/simple_form.feature +6 -0
- data/features/step_definitions/create_simple_app.rb +10 -0
- data/features/step_definitions/file.rb +9 -0
- data/features/step_definitions/file_content.rb +14 -0
- data/features/support/bin/heroku +36 -0
- data/features/support/env.rb +9 -0
- data/features/support/file_helpers.rb +12 -0
- data/lib/pah/files/Gemfile +19 -18
- data/lib/pah/files/Procfile +1 -1
- data/lib/pah/files/README.md +56 -35
- data/lib/pah/files/app/assets/stylesheets/_variables.scss +9 -12
- data/lib/pah/files/app/assets/stylesheets/application.scss +5 -4
- data/lib/pah/files/app/assets/stylesheets/form.scss +33 -44
- data/lib/pah/files/app/assets/stylesheets/general.scss +10 -18
- data/lib/pah/files/app/assets/stylesheets/reset.scss +26 -15
- data/lib/pah/files/app/assets/stylesheets/responsive.scss +14 -25
- data/lib/pah/files/app/views/application/{_error_messages.html.haml → _error_messages.html.slim} +2 -3
- data/lib/pah/files/app/views/application/{_flash_messages.html.haml → _flash_messages.html.slim} +1 -1
- data/lib/pah/files/app/views/layouts/application.html.slim +51 -0
- data/lib/pah/files/config/initializers/database_connection.rb +9 -6
- data/lib/pah/files/config/locales/pt-BR.yml +8 -10
- data/lib/pah/files/config/newrelic.yml +227 -0
- data/lib/pah/files/config/puma.rb +17 -0
- data/lib/pah/files/spec/spec_helper.rb +14 -10
- data/lib/pah/files/spec/support/capybara.rb +1 -1
- data/lib/pah/partials/_bin.rb +4 -0
- data/lib/pah/partials/_canonical_host.rb +3 -3
- data/lib/pah/partials/_database.rb +1 -3
- data/lib/pah/partials/_gems.rb +15 -7
- data/lib/pah/partials/_generators.rb +1 -3
- data/lib/pah/partials/_heroku.rb +3 -10
- data/lib/pah/partials/_layout.rb +4 -4
- data/lib/pah/partials/_letter_opener.rb +1 -3
- data/lib/pah/partials/_locale.rb +2 -6
- data/lib/pah/partials/_newrelic.rb +6 -0
- data/lib/pah/partials/_puma.rb +2 -0
- data/lib/pah/partials/_rack_deflater.rb +8 -0
- data/lib/pah/partials/_readme.rb +1 -0
- data/lib/pah/partials/_rollbar.rb +13 -3
- data/lib/pah/partials/_rspec.rb +0 -1
- data/lib/pah/partials/_ruby_env.rb +1 -1
- data/lib/pah/partials/_secret_token.rb +4 -7
- data/lib/pah/partials/_secure_headers.rb +3 -3
- data/lib/pah/partials/_sendgrid.rb +19 -0
- data/lib/pah/partials/_simple_form.rb +1 -3
- data/lib/pah/template.rb +10 -3
- data/lib/pah/version.rb +2 -2
- data/pah.gemspec +2 -0
- metadata +115 -9
- data/lib/pah/files/app/views/layouts/application.html.haml +0 -63
- data/lib/pah/files/spec/support/deferred_garbage_collection.rb +0 -30
@@ -1,32 +1,29 @@
|
|
1
1
|
@charset "utf-8";
|
2
2
|
|
3
|
-
|
4
3
|
/* Font Variables */
|
5
|
-
|
6
4
|
$sans_serif: Arial, "Helvetica", sans-serif;
|
7
|
-
|
8
5
|
$font-small: 12px;
|
9
6
|
$font-medium: 15px;
|
10
7
|
$font-large: 19px;
|
11
8
|
$font-big: 29px;
|
12
9
|
|
13
|
-
|
14
10
|
/* Color Variables */
|
15
|
-
|
11
|
+
$main-color: #555;
|
12
|
+
$text: #333;
|
13
|
+
$darker-color: darken($main-color, 10%);
|
14
|
+
$lighter-color: lighten($main-color, 10%);
|
16
15
|
$grey1: #eee;
|
17
16
|
$grey2: #ddd;
|
18
17
|
$grey3: #999;
|
19
18
|
$grey4: #666;
|
20
19
|
$grey5: #333;
|
21
20
|
|
22
|
-
|
23
21
|
/* Mixins */
|
24
|
-
|
25
22
|
@mixin transition($property) {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
-webkit-transition: $property 0.15s ease-in-out;
|
24
|
+
-moz-transition: $property 0.15s ease-in-out;
|
25
|
+
-o-transition: $property 0.15s ease-in-out;
|
26
|
+
transition: $property 0.15s ease-in-out;
|
30
27
|
}
|
31
28
|
|
32
29
|
@mixin clearfix {
|
@@ -39,4 +36,4 @@ $grey5: #333;
|
|
39
36
|
height: 0;
|
40
37
|
min-height: 0;
|
41
38
|
}
|
42
|
-
}
|
39
|
+
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
@import "variables";
|
2
|
+
@import "reset";
|
3
|
+
@import "general";
|
4
|
+
@import "form";
|
5
|
+
@import "responsive";
|
@@ -1,27 +1,23 @@
|
|
1
1
|
@charset "utf-8";
|
2
|
-
@import "variables";
|
3
|
-
|
4
2
|
|
5
3
|
/* Fluid Form */
|
6
4
|
|
7
5
|
.simple_form {
|
8
|
-
|
9
6
|
label {
|
10
7
|
font-weight: bold;
|
11
8
|
}
|
12
|
-
|
9
|
+
|
13
10
|
.radio {
|
14
11
|
width: auto;
|
15
12
|
}
|
16
|
-
|
17
13
|
}
|
18
14
|
|
19
15
|
.form-fluid {
|
16
|
+
label {
|
17
|
+
display: block;
|
18
|
+
}
|
20
19
|
|
21
|
-
label { display: block; }
|
22
|
-
|
23
20
|
.form-inputs {
|
24
|
-
|
25
21
|
input[type="text"],
|
26
22
|
input[type="password"],
|
27
23
|
input[type="email"],
|
@@ -37,9 +33,8 @@
|
|
37
33
|
min-width: 95%;
|
38
34
|
max-width: 95%;
|
39
35
|
}
|
40
|
-
|
41
36
|
}
|
42
|
-
|
37
|
+
|
43
38
|
.form-actions {
|
44
39
|
width: 96%;
|
45
40
|
text-align: left;
|
@@ -54,36 +49,34 @@
|
|
54
49
|
padding: 10px 2% 10px 2%;
|
55
50
|
left: 0;
|
56
51
|
}
|
57
|
-
|
58
52
|
}
|
59
53
|
|
60
|
-
|
61
54
|
/* Fixed and Responsive Form */
|
62
55
|
|
63
56
|
.form-fixed {
|
64
|
-
|
65
57
|
label {
|
66
58
|
width: 120px;
|
67
59
|
margin: 8px 15px 0 0;
|
68
60
|
text-align: right;
|
69
61
|
float: left;
|
70
62
|
}
|
71
|
-
|
63
|
+
|
72
64
|
.checkbox {
|
73
65
|
width: auto;
|
74
66
|
margin-left: 135px;
|
75
67
|
margin-bottom: 15px;
|
76
68
|
clear: both;
|
77
69
|
}
|
78
|
-
|
70
|
+
|
79
71
|
.radio_buttons {
|
80
72
|
margin-bottom: 25px;
|
81
73
|
clear: both;
|
82
|
-
.control-label {
|
74
|
+
.control-label {
|
75
|
+
margin-right: 0;
|
76
|
+
}
|
83
77
|
}
|
84
|
-
|
85
|
-
.form-inputs {
|
86
78
|
|
79
|
+
.form-inputs {
|
87
80
|
input[type="text"],
|
88
81
|
input[type="password"],
|
89
82
|
input[type="email"],
|
@@ -99,39 +92,39 @@
|
|
99
92
|
min-width: 320px;
|
100
93
|
max-width: 320px;
|
101
94
|
}
|
102
|
-
|
103
95
|
}
|
104
|
-
|
96
|
+
|
105
97
|
.form-actions {
|
106
98
|
margin-left: 135px;
|
107
99
|
clear: both;
|
108
100
|
}
|
109
|
-
|
101
|
+
|
110
102
|
.hint {
|
111
103
|
width: 320px;
|
112
104
|
padding: 10px;
|
113
105
|
left: 135px;
|
114
106
|
}
|
115
|
-
|
116
107
|
}
|
117
108
|
|
118
|
-
|
119
109
|
/* Labels */
|
120
110
|
|
121
111
|
input[type="checkbox"],
|
122
|
-
input[type="radio"] {
|
112
|
+
input[type="radio"] {
|
113
|
+
margin-right: 7px;
|
114
|
+
}
|
123
115
|
|
124
116
|
.radio_buttons {
|
125
|
-
.radio {
|
117
|
+
.radio {
|
118
|
+
margin-left: 20px;
|
119
|
+
}
|
126
120
|
}
|
127
121
|
|
128
|
-
|
129
122
|
/* Fields */
|
130
123
|
|
131
124
|
.form-inputs {
|
132
125
|
font-size: $font-medium;
|
133
126
|
margin-top: 20px;
|
134
|
-
|
127
|
+
|
135
128
|
.input {
|
136
129
|
margin-bottom: 20px;
|
137
130
|
position: relative;
|
@@ -155,7 +148,7 @@ input[type="radio"] { margin-right: 7px; }
|
|
155
148
|
color: $grey4;
|
156
149
|
outline: none;
|
157
150
|
}
|
158
|
-
|
151
|
+
|
159
152
|
input[type="text"],
|
160
153
|
input[type="password"],
|
161
154
|
input[type="email"],
|
@@ -165,7 +158,7 @@ input[type="radio"] { margin-right: 7px; }
|
|
165
158
|
textarea {
|
166
159
|
margin-top: 8px;
|
167
160
|
}
|
168
|
-
|
161
|
+
|
169
162
|
textarea {
|
170
163
|
border-radius: 4px;
|
171
164
|
border: 1px solid $grey2;
|
@@ -176,14 +169,11 @@ input[type="radio"] { margin-right: 7px; }
|
|
176
169
|
font: $font-medium $sans_serif;
|
177
170
|
outline: none;
|
178
171
|
}
|
179
|
-
|
180
172
|
}
|
181
173
|
|
182
|
-
|
183
174
|
/* Forms Actions */
|
184
|
-
|
185
|
-
.form-actions {
|
186
175
|
|
176
|
+
.form-actions {
|
187
177
|
button,
|
188
178
|
input[type="submit"],
|
189
179
|
input[type="button"],
|
@@ -197,12 +187,12 @@ input[type="radio"] { margin-right: 7px; }
|
|
197
187
|
font: $font-medium $sans_serif;
|
198
188
|
outline: none;
|
199
189
|
color: $grey4;
|
200
|
-
&:hover {
|
190
|
+
&:hover {
|
191
|
+
opacity: .7;
|
192
|
+
}
|
201
193
|
}
|
202
|
-
|
203
194
|
}
|
204
195
|
|
205
|
-
|
206
196
|
/* Hint */
|
207
197
|
|
208
198
|
.hint {
|
@@ -232,9 +222,13 @@ input[type="radio"] { margin-right: 7px; }
|
|
232
222
|
border-bottom: 10px solid $grey5;
|
233
223
|
}
|
234
224
|
|
235
|
-
.string .hint {
|
236
|
-
|
225
|
+
.string .hint {
|
226
|
+
bottom: -41px;
|
227
|
+
}
|
237
228
|
|
229
|
+
.text .hint {
|
230
|
+
bottom: -38px;
|
231
|
+
}
|
238
232
|
|
239
233
|
/* Validation */
|
240
234
|
|
@@ -251,9 +245,4 @@ input[type="radio"] { margin-right: 7px; }
|
|
251
245
|
font-size: $font-small;
|
252
246
|
color: #9e0000;
|
253
247
|
}
|
254
|
-
}
|
255
|
-
|
256
|
-
|
257
|
-
/* Othes Classes */
|
258
|
-
|
259
|
-
.disabled { display: none; }
|
248
|
+
}
|
@@ -1,23 +1,16 @@
|
|
1
1
|
@charset "utf-8";
|
2
|
-
@import "variables";
|
3
|
-
/* colors */
|
4
|
-
$main-color: #555;
|
5
|
-
$text: #333;
|
6
|
-
$darker-color: darken( $main-color, 10% ) ;
|
7
|
-
$lighter-color: lighten( $main-color, 10% );
|
8
|
-
|
9
2
|
|
10
3
|
/* General Styles */
|
11
|
-
header{
|
4
|
+
header {
|
12
5
|
height: 50px;
|
13
6
|
margin-bottom: 10px;
|
14
7
|
background: $lighter-color;
|
15
8
|
}
|
16
9
|
|
17
10
|
html, body {
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
height: 100%;
|
12
|
+
margin: 0;
|
13
|
+
padding: 0;
|
21
14
|
}
|
22
15
|
|
23
16
|
body {
|
@@ -33,18 +26,18 @@ body {
|
|
33
26
|
min-height: 100%;
|
34
27
|
position: absolute;
|
35
28
|
width: 100%;
|
36
|
-
//
|
29
|
+
// padding-bottom: 80px; // should be used if there are divs with float left on main content
|
37
30
|
}
|
38
31
|
|
39
32
|
#main-content {
|
40
|
-
|
41
|
-
|
42
|
-
|
33
|
+
margin: 0 auto;
|
34
|
+
padding-bottom: 100px;
|
35
|
+
width: 960px;
|
43
36
|
}
|
44
37
|
|
45
|
-
footer{
|
38
|
+
footer {
|
46
39
|
background: $darker-color;
|
47
|
-
color
|
40
|
+
color: $lighter-color;
|
48
41
|
bottom: 0px;
|
49
42
|
height: 40px;
|
50
43
|
left: 0;
|
@@ -52,4 +45,3 @@ footer{
|
|
52
45
|
position: absolute;
|
53
46
|
width: 100%;
|
54
47
|
}
|
55
|
-
|
@@ -1,15 +1,14 @@
|
|
1
1
|
@charset "utf-8";
|
2
2
|
|
3
|
-
|
4
3
|
/* Reset */
|
5
4
|
|
6
5
|
body,
|
7
6
|
h1, h2, h3, h4,
|
8
7
|
form, input, textarea, label, a, img {
|
9
|
-
|
10
|
-
|
8
|
+
vertical-align: baseline;
|
9
|
+
font-style: normal;
|
11
10
|
list-style-type: none;
|
12
|
-
|
11
|
+
padding: 0;
|
13
12
|
margin: 0;
|
14
13
|
border: 0;
|
15
14
|
}
|
@@ -17,9 +16,13 @@ form, input, textarea, label, a, img {
|
|
17
16
|
article, aside, details,
|
18
17
|
figcaption, figure,
|
19
18
|
footer, header, hgroup,
|
20
|
-
menu, nav, section {
|
19
|
+
menu, nav, section {
|
20
|
+
display: block;
|
21
|
+
}
|
21
22
|
|
22
|
-
p {
|
23
|
+
p {
|
24
|
+
margin: 0 0 20px 0;
|
25
|
+
}
|
23
26
|
|
24
27
|
hr {
|
25
28
|
height: 1px;
|
@@ -28,14 +31,18 @@ hr {
|
|
28
31
|
}
|
29
32
|
|
30
33
|
em,
|
31
|
-
dfn {
|
34
|
+
dfn {
|
35
|
+
font-style: italic;
|
36
|
+
}
|
32
37
|
|
33
38
|
b,
|
34
|
-
strong {
|
39
|
+
strong {
|
40
|
+
font-weight: bold;
|
41
|
+
}
|
35
42
|
|
36
43
|
table {
|
37
|
-
|
38
|
-
|
44
|
+
border-collapse: collapse;
|
45
|
+
border-spacing: 0;
|
39
46
|
}
|
40
47
|
|
41
48
|
fieldset {
|
@@ -46,7 +53,9 @@ fieldset {
|
|
46
53
|
|
47
54
|
button,
|
48
55
|
html input[type="button"],
|
49
|
-
input[type="submit"] {
|
56
|
+
input[type="submit"] {
|
57
|
+
cursor: pointer;
|
58
|
+
}
|
50
59
|
|
51
60
|
button,
|
52
61
|
input {
|
@@ -55,10 +64,12 @@ input {
|
|
55
64
|
}
|
56
65
|
|
57
66
|
abbr[title],
|
58
|
-
dfn[title]{
|
59
|
-
|
60
|
-
|
67
|
+
dfn[title] {
|
68
|
+
cursor: help;
|
69
|
+
border-bottom: 1px dotted;
|
61
70
|
}
|
62
71
|
|
63
72
|
pre,
|
64
|
-
code {
|
73
|
+
code {
|
74
|
+
font-family: monospace;
|
75
|
+
}
|
@@ -1,6 +1,4 @@
|
|
1
1
|
@charset "utf-8";
|
2
|
-
@import "variables";
|
3
|
-
|
4
2
|
|
5
3
|
/* Viewport Config */
|
6
4
|
|
@@ -20,33 +18,28 @@ body {
|
|
20
18
|
zoom: 1.0;
|
21
19
|
}
|
22
20
|
|
21
|
+
/**
|
22
|
+
* Max Width, 960px
|
23
|
+
* Media Queries for Tablets and Kindle.
|
24
|
+
*/
|
23
25
|
|
24
|
-
|
25
|
-
Max Width, 960px
|
26
|
-
Media Queries for Tablets and Kindle.
|
27
|
-
*/
|
28
|
-
|
29
|
-
@media (max-width:960px) {
|
30
|
-
|
26
|
+
@media (max-width: 960px) {
|
31
27
|
.holder {
|
32
28
|
width: 700px;
|
33
29
|
}
|
34
|
-
|
35
30
|
}
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
*/
|
32
|
+
/**
|
33
|
+
* Max Width, 686px
|
34
|
+
* Media Queries for Smartphones.
|
35
|
+
*/
|
42
36
|
|
43
37
|
@media only screen and (max-width: 686px) {
|
44
|
-
|
45
38
|
.holder {
|
46
39
|
width: 90%;
|
47
40
|
padding: 0 5% 0 5%;
|
48
41
|
}
|
49
|
-
|
42
|
+
|
50
43
|
.simple_form {
|
51
44
|
label {
|
52
45
|
width: auto;
|
@@ -56,11 +49,9 @@ Media Queries for Smartphones.
|
|
56
49
|
}
|
57
50
|
}
|
58
51
|
|
59
|
-
|
60
52
|
/* Fixed and Responsive Form */
|
61
53
|
|
62
54
|
.form-fixed {
|
63
|
-
|
64
55
|
.checkbox {
|
65
56
|
margin-left: 0;
|
66
57
|
margin-bottom: 0;
|
@@ -69,11 +60,12 @@ Media Queries for Smartphones.
|
|
69
60
|
.radio_buttons {
|
70
61
|
margin-bottom: 0;
|
71
62
|
clear: both;
|
72
|
-
.control-label {
|
63
|
+
.control-label {
|
64
|
+
margin-right: 0;
|
65
|
+
}
|
73
66
|
}
|
74
67
|
|
75
68
|
.form-inputs {
|
76
|
-
|
77
69
|
input[type="text"],
|
78
70
|
input[type="password"],
|
79
71
|
input[type="email"],
|
@@ -89,9 +81,8 @@ Media Queries for Smartphones.
|
|
89
81
|
min-width: 95%;
|
90
82
|
max-width: 95%;
|
91
83
|
}
|
92
|
-
|
93
84
|
}
|
94
|
-
|
85
|
+
|
95
86
|
.form-actions {
|
96
87
|
margin-top: 20px;
|
97
88
|
margin-left: 0;
|
@@ -102,7 +93,5 @@ Media Queries for Smartphones.
|
|
102
93
|
padding: 10px 2% 10px 2%;
|
103
94
|
left: 0;
|
104
95
|
}
|
105
|
-
|
106
96
|
}
|
107
|
-
|
108
97
|
}
|