cv 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +3 -0
  3. data/Rakefile +2 -0
  4. data/cv.gemspec +29 -0
  5. data/lib/cv.rb +15 -0
  6. data/lib/cv/config/assets.yml +19 -0
  7. data/lib/cv/contact.rb +19 -0
  8. data/lib/cv/content.rb +19 -0
  9. data/lib/cv/ext/blank.rb +5 -0
  10. data/lib/cv/ext/hash.rb +5 -0
  11. data/lib/cv/public/images/bg.jpg +0 -0
  12. data/lib/cv/public/images/colors/celestial_sky.png +0 -0
  13. data/lib/cv/public/images/colors/charcoal_black.png +0 -0
  14. data/lib/cv/public/images/colors/dark_indigo.png +0 -0
  15. data/lib/cv/public/images/colors/dark_indigo_arrow_center.png +0 -0
  16. data/lib/cv/public/images/colors/dark_indigo_arrow_left.png +0 -0
  17. data/lib/cv/public/images/colors/dark_indigo_arrow_right.png +0 -0
  18. data/lib/cv/public/images/colors/dark_violet.png +0 -0
  19. data/lib/cv/public/images/colors/electric_blue.png +0 -0
  20. data/lib/cv/public/images/colors/light_indigo.png +0 -0
  21. data/lib/cv/public/images/colors/lime_green.png +0 -0
  22. data/lib/cv/public/images/colors/lobster_red.png +0 -0
  23. data/lib/cv/public/images/colors/olive_green.png +0 -0
  24. data/lib/cv/public/images/colors/orange_peel.png +0 -0
  25. data/lib/cv/public/images/colors/royal_magenta.png +0 -0
  26. data/lib/cv/public/images/colors/scarlet_red.png +0 -0
  27. data/lib/cv/public/images/colors/silver_grey.png +0 -0
  28. data/lib/cv/public/images/curriculum_bg.png +0 -0
  29. data/lib/cv/public/images/fancybox/blank.gif +0 -0
  30. data/lib/cv/public/images/fancybox/fancy_close.png +0 -0
  31. data/lib/cv/public/images/fancybox/fancy_loading.png +0 -0
  32. data/lib/cv/public/images/fancybox/fancy_nav_left.png +0 -0
  33. data/lib/cv/public/images/fancybox/fancy_nav_right.png +0 -0
  34. data/lib/cv/public/images/fancybox/fancy_shadow_e.png +0 -0
  35. data/lib/cv/public/images/fancybox/fancy_shadow_n.png +0 -0
  36. data/lib/cv/public/images/fancybox/fancy_shadow_ne.png +0 -0
  37. data/lib/cv/public/images/fancybox/fancy_shadow_nw.png +0 -0
  38. data/lib/cv/public/images/fancybox/fancy_shadow_s.png +0 -0
  39. data/lib/cv/public/images/fancybox/fancy_shadow_se.png +0 -0
  40. data/lib/cv/public/images/fancybox/fancy_shadow_sw.png +0 -0
  41. data/lib/cv/public/images/fancybox/fancy_shadow_w.png +0 -0
  42. data/lib/cv/public/images/fancybox/fancy_title_left.png +0 -0
  43. data/lib/cv/public/images/fancybox/fancy_title_main.png +0 -0
  44. data/lib/cv/public/images/fancybox/fancy_title_over.png +0 -0
  45. data/lib/cv/public/images/fancybox/fancy_title_right.png +0 -0
  46. data/lib/cv/public/images/fancybox/fancybox-x.png +0 -0
  47. data/lib/cv/public/images/fancybox/fancybox-y.png +0 -0
  48. data/lib/cv/public/images/fancybox/fancybox.png +0 -0
  49. data/lib/cv/public/images/shadow.png +0 -0
  50. data/lib/cv/public/images/social/download.png +0 -0
  51. data/lib/cv/public/images/social/email.png +0 -0
  52. data/lib/cv/public/images/social/facebook.png +0 -0
  53. data/lib/cv/public/images/social/flickr.png +0 -0
  54. data/lib/cv/public/images/social/friendfeed.png +0 -0
  55. data/lib/cv/public/images/social/google.png +0 -0
  56. data/lib/cv/public/images/social/linkedin.png +0 -0
  57. data/lib/cv/public/images/social/msn.png +0 -0
  58. data/lib/cv/public/images/social/myspace.png +0 -0
  59. data/lib/cv/public/images/social/skype.png +0 -0
  60. data/lib/cv/public/images/social/twitter.png +0 -0
  61. data/lib/cv/public/images/social/yahoo.png +0 -0
  62. data/lib/cv/public/images/social/youtube.png +0 -0
  63. data/lib/cv/public/javascripts/Delicious_500-Delicious_700-Delicious_italic_500-Delicious_italic_700.font.js +28 -0
  64. data/lib/cv/public/javascripts/application.js +151 -0
  65. data/lib/cv/public/javascripts/cufon_yui.js +7 -0
  66. data/lib/cv/public/javascripts/jquery-1.5.1.js +8316 -0
  67. data/lib/cv/public/javascripts/jquery.easing-1.3.pack.js +72 -0
  68. data/lib/cv/public/javascripts/jquery.fancybox-1.3.4.js +1156 -0
  69. data/lib/cv/public/javascripts/jquery_mail.js +63 -0
  70. data/lib/cv/public/javascripts/json2.js +480 -0
  71. data/lib/cv/public/javascripts/packaged/e1819cfc_all.js +554 -0
  72. data/lib/cv/public/javascripts/scroll-follow.js +251 -0
  73. data/lib/cv/public/javascripts/scroll.js +69 -0
  74. data/lib/cv/public/javascripts/ui.core.js +291 -0
  75. data/lib/cv/public/stylesheets/960.css +338 -0
  76. data/lib/cv/public/stylesheets/colors/dark_indigo.css +11 -0
  77. data/lib/cv/public/stylesheets/jquery.fancybox-1.3.4.css +359 -0
  78. data/lib/cv/public/stylesheets/packaged/b32e3f66_all.css +1 -0
  79. data/lib/cv/public/stylesheets/print.css +425 -0
  80. data/lib/cv/public/stylesheets/reset.css +38 -0
  81. data/lib/cv/public/stylesheets/style.css +446 -0
  82. data/lib/cv/site.rb +31 -0
  83. data/lib/cv/version.rb +3 -0
  84. data/lib/cv/views/default.haml +14 -0
  85. data/lib/cv/views/index.haml +123 -0
  86. data/lib/cv/views/sitemap.haml +7 -0
  87. metadata +250 -0
@@ -0,0 +1,446 @@
1
+ a {
2
+ text-decoration: none;
3
+ }
4
+
5
+ #content {
6
+ background: url(/images/shadow.png) repeat-y 43px 0;
7
+ position: relative;
8
+ }
9
+
10
+ body {
11
+ background: #dbdbdb url(/images/bg.jpg) repeat center 0 fixed;
12
+ }
13
+
14
+ .section {
15
+ background: #f3f3f3 url(/images/curriculum_bg.png) repeat-x 0 bottom;
16
+ border-top: 1px solid #fffeff;
17
+ padding-top: 20px;
18
+ padding-bottom: 30px;
19
+ }
20
+
21
+ .section_title h2 {
22
+ padding-left: 50px;
23
+ padding-top: 10px;
24
+ }
25
+
26
+ .section_list {
27
+ margin-top: 10px;
28
+ margin-bottom: 10px;
29
+ }
30
+
31
+ #projects.section_list li {
32
+ margin: 10px 7px;
33
+ }
34
+
35
+ #projects.section_list li img {
36
+ display: block;
37
+ width: 140px;
38
+ height: 140px;
39
+ background-color: #fff;
40
+ }
41
+
42
+ .section_content {
43
+ position: relative;
44
+ }
45
+
46
+ .section_subtitle {
47
+ background-repeat: no-repeat;
48
+ background-position: 539px -265px;
49
+ }
50
+
51
+ .section_subtitle span {
52
+ float: right;
53
+ display: block;
54
+ margin: -30px -88px 0 0;
55
+ color: #fff;
56
+ background: url(/images/colors/dark_indigo_arrow_right.png) no-repeat right top;
57
+ height: 44px
58
+ }
59
+
60
+ .section_subtitle span span {
61
+ float: none;
62
+ margin: 0;
63
+ background: none;
64
+ height: auto;
65
+ }
66
+
67
+ .section_subtitle span span.date_content {
68
+ background: url(/images/colors/dark_indigo_arrow_center.png) repeat-x top center;
69
+ margin-right: 4px;
70
+ float: left;
71
+ padding: 6px;
72
+ height: 26px;
73
+ font-size: 20px;
74
+ }
75
+
76
+ .section_subtitle span span.date_left {
77
+ background: url(/images/colors/dark_indigo_arrow_left.png) no-repeat top left;
78
+ float: left;
79
+ width: 11px;
80
+ height: 36px;
81
+ }
82
+
83
+ h1,h2,h3,h4,h5,h6,p, span {
84
+ letter-spacing: -1px;
85
+ }
86
+
87
+ h1 {
88
+ color: #fff;
89
+ line-height: 70px;
90
+ font-size: 75px;
91
+ letter-spacing: -5px;
92
+ font-style: italic;
93
+ text-shadow: #000000 0 0 0;
94
+ }
95
+
96
+ h2 {
97
+ line-height: 35px;
98
+ font-size: 30px;
99
+ }
100
+
101
+ h3 {
102
+ line-height: 31px;
103
+ font-size: 28px;
104
+ letter-spacing: -2px;
105
+ font-style: italic;
106
+ }
107
+
108
+ h4 {
109
+ line-height: 26px;
110
+ font-size: 26px;
111
+ }
112
+
113
+ h5, .contact_sx li label {
114
+ color: #a4a6a6;
115
+ line-height: 22px;
116
+ font-size: 18px;
117
+ font-style: italic;
118
+ }
119
+
120
+ h6 {
121
+ color: #fff;
122
+ line-height: 31px;
123
+ font-size: 31px;
124
+ letter-spacing: -2px;
125
+ }
126
+
127
+ p, li {
128
+ color: #a4a6a6;
129
+ letter-spacing: 0px;
130
+ line-height: 22px;
131
+ font: normal normal lighter 18px/22px Helvetica Neue, sans-serif;
132
+ letter-spacing: 0px;
133
+ word-spacing: 3px;
134
+ }
135
+
136
+ .section_content div.date span {
137
+ font: 20px Helvetica, arial, serif;
138
+ color: #fff;
139
+ display: block;
140
+ float: left;
141
+ width: 103px;
142
+ height: 30px;
143
+ text-align: right;
144
+ padding-top: 3px;
145
+ padding-right: 10px;
146
+ line-height: 25px;
147
+ }
148
+
149
+ .section_content p, .section_content ul li {
150
+ margin: 0 0 10px 0;
151
+ }
152
+
153
+ .section_content ul {
154
+ list-style: square;
155
+ margin: 0 20px;
156
+ }
157
+
158
+ .section_content ul li {
159
+ padding: 0 0 0 10px;
160
+ }
161
+
162
+ #title_center ul li h4, #title_dx ul li p {
163
+ font: 200 24px/28px Helvetica, Geneva, sans-serif;
164
+ margin-top: 2px;
165
+ letter-spacing: -1px;
166
+ word-spacing: 0px;
167
+ }
168
+
169
+ input, textarea {
170
+ font: 200 20px/38px Helvetica, Geneva, sans-serif;
171
+ font-size: 20px;
172
+ line-height: 20px;
173
+ color: #9b9b9b;
174
+ font-weight: lighter;
175
+ }
176
+
177
+ #header {
178
+ text-align: right;
179
+ height: 170px;
180
+ background-repeat: repeat-x;
181
+ background-position: 0 0px;
182
+ }
183
+
184
+ #header ul {
185
+ margin-right: 50px;
186
+ margin-bottom: 30px;
187
+ margin-top: 38px;
188
+ }
189
+
190
+ #header ul li{
191
+ display: block;
192
+ float: right;
193
+ width: 100%;
194
+ margin: 0px;
195
+ }
196
+
197
+ #header ul li#bigtitle {
198
+ height: 80px;
199
+ }
200
+
201
+ #header ul li#subtitle {
202
+ text-align: right;
203
+ margin-bottom: 20px;
204
+ }
205
+
206
+ #photo {
207
+ width: 180px;
208
+ height: 180px;
209
+ display: block;
210
+ float: left;
211
+ background: #fcfeff;
212
+ margin-top: 30px;
213
+ margin-left: 80px;
214
+ margin-bottom: 10px;
215
+ border: 1px solid #fff;
216
+
217
+ -webkit-box-shadow: 0px 1px 3px #ababab;
218
+ -moz-box-shadow: 0px 1px 3px #ababab;
219
+ box-shadow: 0px 1px 3px #ababab;
220
+ behavior: url(/stylesheets/PIE.php);
221
+ }
222
+
223
+ #photo img {
224
+ margin: 10px;
225
+ }
226
+
227
+ #title ul {
228
+ margin-top: 26px;
229
+ }
230
+
231
+
232
+ #title_center ul li, #title_dx ul li {
233
+ display: block;
234
+ float: left;
235
+ width: 100%;
236
+ height: 30px;
237
+ margin-top: 7px;
238
+ }
239
+
240
+ #title_dx ul li {
241
+ height: 27px;
242
+ padding-top: 2px;
243
+ }
244
+
245
+ #hcard h4, #hcard .p_big, #hcard li {
246
+ float: left;
247
+ display: block;
248
+ }
249
+
250
+ #hcard li {
251
+ margin: 0 0 5px 0;
252
+ }
253
+
254
+ #hcard h4 {
255
+ width: 80px;
256
+ text-align: right;
257
+ margin-right: 10px;
258
+ }
259
+
260
+ #hcard .p_big {
261
+ color: #a4a6a6;
262
+ }
263
+
264
+ #hcard h4, #hcard .p_big {
265
+ font-size: 21px;
266
+ font: 200 21px Helvetica, Geneva, sans-serif;
267
+ letter-spacing: -2;
268
+ line-height: 30px;
269
+ }
270
+
271
+ .contact_sx {
272
+ margin-top: 20px;
273
+ }
274
+
275
+ .contact_sx li {
276
+ width: 294px;
277
+ margin-left: 80px;
278
+ display: block;
279
+ float: left;
280
+ height: 50px;
281
+ padding: 1px;
282
+ }
283
+
284
+ .contact_sx li h4 {
285
+ display: inline;
286
+ float: left;
287
+ height: 40px;
288
+ width: 50px;
289
+ text-align: left;
290
+ margin-right: 30px;
291
+ line-height: 45px;
292
+ }
293
+
294
+ #contact li div.border {
295
+ background-color: #fff;
296
+ display: block;
297
+ float: left;
298
+ padding: 2px;
299
+ }
300
+
301
+ .contact_sx li label {
302
+ float: left;
303
+ font-size: 20px;
304
+ line-height: 38px;
305
+ display: block;
306
+ width: 82px;
307
+ }
308
+
309
+ .contact_sx li.submit {
310
+ padding-left: 84px;
311
+ }
312
+
313
+ .contact_sx li input, .contact_dx li textarea {
314
+ display: inline;
315
+ float: left;
316
+ height: 20px;
317
+ width: 194px;
318
+ background-color: #ececec;
319
+ padding: 6px;
320
+ border: 1px solid #d9dbdd;
321
+ }
322
+
323
+ .contact_sx li input.error, .contact_dx li textarea.error {
324
+ border: 1px solid #f00;
325
+ }
326
+
327
+ .contact_dx li textarea {
328
+ height: 112px;
329
+ width: 274px;
330
+ padding: 10px;
331
+ }
332
+
333
+ .contact_sx li input:focus, .contact_dx li textarea:focus {
334
+ background-color: #e5e5e5;
335
+ }
336
+
337
+ #success-message {
338
+ display: none;
339
+ }
340
+
341
+ .contact_sx #invia {
342
+ height: 35px;
343
+ width: 211px;
344
+ border-style: none;
345
+ background-repeat: no-repeat;
346
+ background-position: -14px -180px;
347
+ }
348
+
349
+ .contact_sx #invia:active {
350
+ background-position: -14px -220px;
351
+ }
352
+
353
+ .section_content {
354
+ padding-top: 10px;
355
+ position: relative;
356
+ }
357
+
358
+ .contact_dx li {
359
+ padding-top: 20px;
360
+ }
361
+
362
+ #social {
363
+ display: block;
364
+ float: left;
365
+ width: 50px;
366
+ position: absolute;
367
+ top: 0px;
368
+ left: 65px;
369
+ padding-top: 220px;
370
+ }
371
+
372
+ #social ul {
373
+ padding: 0;
374
+ display: block;
375
+ float: left;
376
+ }
377
+
378
+ #social ul li {
379
+ display: block;
380
+ float: left;
381
+ width: 50px;
382
+ height: 31px;
383
+ background-position: -241px -240px;
384
+ }
385
+
386
+ #social ul li#social_top {
387
+ height: 9px;
388
+ background-position: -241px 189px;
389
+ }
390
+
391
+ #social ul li#social_bottom {
392
+ height: 20px;
393
+ background-position: -241px 61px;
394
+ }
395
+
396
+ #social ul li img {
397
+ margin-left: 12px;
398
+ }
399
+
400
+ #social_button {
401
+ display: block;
402
+ float: left;
403
+ position: absolute;
404
+ top: -60px;
405
+ right: -12px;
406
+ width: 152px;
407
+ height: 60px;
408
+ padding-left: 50px;
409
+ padding-top: 8px;
410
+ background-position: 1px 75px;
411
+ }
412
+
413
+ #footer {
414
+ height: 10px;
415
+ background-repeat: repeat-x;
416
+ background-position: 0 -150px;
417
+ }
418
+
419
+ #risposta {
420
+ width: 580px;
421
+ -webkit-border-radius: 20px;
422
+ -moz-border-radius: 20px;
423
+ border-radius: 20px;
424
+ behavior: url(/stylesheets/PIE.php);
425
+ margin-left: 80px;
426
+ background-color: #faad21;
427
+ text-align: left;
428
+ margin-top: 10px;
429
+ height: 0px;
430
+ }
431
+
432
+ #risposta p {
433
+ color: #754f09;
434
+ font-size: 19px;
435
+ background-color: #faad21;
436
+ margin-left: 30px;
437
+ font-style: italic;
438
+ line-height: 24px;
439
+ }
440
+
441
+ #risposta p b {
442
+ margin-left: -20px;
443
+ font-size: 30px;
444
+ line-height: 40px;
445
+ font-style: italic;
446
+ }
@@ -0,0 +1,31 @@
1
+ module Cv
2
+ class Site < Sinatra::Base
3
+ include SmartAsset::Adapters::Sinatra
4
+
5
+ helpers Cv::Content
6
+
7
+ set :static, true
8
+ set :public, File.dirname(__FILE__) + '/public'
9
+ set :views, File.dirname(__FILE__) + '/views'
10
+ set :haml, { :format => :html5 }
11
+
12
+ get '/' do
13
+ haml :index, :layout => :default
14
+ end
15
+
16
+ post '/contact' do
17
+ contact = Contact.new(params[:contact])
18
+ if contact.valid?
19
+ contact.deliver
20
+ else
21
+ content_type :json
22
+ status 500
23
+ contact.errors.to_json
24
+ end
25
+ end
26
+
27
+ get '/sitemap.xml' do
28
+ haml :sitemap, :format => :xhtml
29
+ end
30
+ end
31
+ end