linkedin2cv 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.buildpacks +2 -0
  3. data/.bundle/config +1 -0
  4. data/.gitignore +7 -0
  5. data/.node +1 -0
  6. data/.travis.yml +21 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +119 -0
  9. data/Procfile +3 -0
  10. data/README.md +32 -0
  11. data/Rakefile +6 -0
  12. data/Vagrantfile +16 -0
  13. data/app/routes/api.rb +101 -0
  14. data/app/routes/web.rb +132 -0
  15. data/app/views/hello.erb +36 -0
  16. data/app/views/home.erb +12 -0
  17. data/app/views/index.haml +11 -0
  18. data/app.rb +26 -0
  19. data/config.ru +6 -0
  20. data/config.yml +31 -0
  21. data/lib/linkedin2cv/cli/command.rb +46 -0
  22. data/lib/linkedin2cv/converter.rb +116 -0
  23. data/lib/linkedin2cv/logging.rb +35 -0
  24. data/lib/linkedin2cv/renderer/latex_renderer.rb +64 -0
  25. data/lib/linkedin2cv/version.rb +3 -0
  26. data/linkedin2cv.gemspec +49 -0
  27. data/public/.bowerrc +3 -0
  28. data/public/.editorconfig +21 -0
  29. data/public/.gitattributes +1 -0
  30. data/public/.gitignore +5 -0
  31. data/public/.jshintrc +24 -0
  32. data/public/.travis.yml +7 -0
  33. data/public/Gruntfile.js +487 -0
  34. data/public/app/.buildignore +1 -0
  35. data/public/app/.htaccess +543 -0
  36. data/public/app/404.html +157 -0
  37. data/public/app/favicon.ico +0 -0
  38. data/public/app/images/yeoman.png +0 -0
  39. data/public/app/index.html +73 -0
  40. data/public/app/robots.txt +3 -0
  41. data/public/app/scripts/app.js +20 -0
  42. data/public/app/scripts/controllers/main.js +21 -0
  43. data/public/app/scripts/services/linkedin2cv.js +93 -0
  44. data/public/app/styles/main.scss +95 -0
  45. data/public/app/views/main.html +23 -0
  46. data/public/bower.json +19 -0
  47. data/public/karma-e2e.conf.js +54 -0
  48. data/public/karma.conf.js +56 -0
  49. data/public/package.json +41 -0
  50. data/public/test/.jshintrc +36 -0
  51. data/public/test/runner.html +10 -0
  52. data/public/test/spec/controllers/main.js +22 -0
  53. data/public/test/spec/services/happyapi.js +18 -0
  54. data/public/test/spec/services/happyservice.js +18 -0
  55. data/spec/converter_spec.rb +83 -0
  56. data/spec/mocks/config.yml +31 -0
  57. data/spec/mocks/profile.json +866 -0
  58. data/spec/spec_helper.rb +13 -0
  59. data/templates/cv.erb +327 -0
  60. data/templates/foo.asciidoc +11 -0
  61. data/templates/foo.latex +230 -0
  62. data/test.rb +109 -0
  63. data/test.sh +6 -0
  64. data/teust.rb +75 -0
  65. metadata +434 -0
@@ -0,0 +1,487 @@
1
+ // Generated on 2014-05-25 using generator-angular 0.8.0
2
+ 'use strict';
3
+
4
+ // # Globbing
5
+ // for performance reasons we're only matching one level down:
6
+ // 'test/spec/{,*/}*.js'
7
+ // use this if you want to recursively match all subfolders:
8
+ // 'test/spec/**/*.js'
9
+
10
+ module.exports = function (grunt) {
11
+
12
+ // Load grunt tasks automatically
13
+ require('load-grunt-tasks')(grunt);
14
+
15
+ // Time how long tasks take. Can help when optimizing build times
16
+ require('time-grunt')(grunt);
17
+
18
+ grunt.loadNpmTasks('grunt-text-replace');;
19
+
20
+ // Define the configuration for all the tasks
21
+ grunt.initConfig({
22
+
23
+ // Project settings
24
+ yeoman: {
25
+ // configurable paths
26
+ app: require('./bower.json').appPath || 'app',
27
+ dist: 'dist'
28
+ },
29
+
30
+ replace: {
31
+ socket_url_test: {
32
+ src: ['app/scripts/*.js', 'app/scripts/services/*.js', 'app/scripts/controllers/*.js'],
33
+ overwrite: true, // overwrite matched source files
34
+ replacements: [{
35
+ from: 'websocketurl',
36
+ to: 'ws://localhost:8080/socket'
37
+ },{
38
+ from: "ws://' + window.location.host + '/socket",
39
+ to: 'ws://localhost:8080/socket'
40
+ }]
41
+ },
42
+ socket_url_prod: {
43
+ src: ['app/scripts/*.js', 'app/scripts/services/*.js', 'app/scripts/controllers/*.js'],
44
+ overwrite: true, // overwrite matched source files
45
+ replacements: [{
46
+ from: 'ws://localhost:8080/socket',
47
+ to: "ws://' + window.location.host + '/socket"
48
+ },{
49
+ from: 'websocketurl',
50
+ to: "ws://' + window.location.host + '/socket"
51
+ }]
52
+ }
53
+ },
54
+
55
+ // Watches files for changes and runs tasks based on the changed files
56
+ watch: {
57
+ bower: {
58
+ files: ['bower.json'],
59
+ tasks: ['bowerInstall']
60
+ },
61
+ js: {
62
+ files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
63
+ tasks: ['newer:jshint:all'],
64
+ options: {
65
+ livereload: true
66
+ }
67
+ },
68
+ jsTest: {
69
+ files: ['test/spec/{,*/}*.js'],
70
+ tasks: ['newer:jshint:test', 'karma']
71
+ },
72
+ compass: {
73
+ files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
74
+ tasks: ['compass:server', 'autoprefixer']
75
+ },
76
+ gruntfile: {
77
+ files: ['Gruntfile.js']
78
+ },
79
+ livereload: {
80
+ options: {
81
+ livereload: '<%= connect.options.livereload %>'
82
+ },
83
+ files: [
84
+ '<%= yeoman.app %>/{,*/}*.html',
85
+ '.tmp/styles/{,*/}*.css',
86
+ '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
87
+ ]
88
+ }
89
+ },
90
+
91
+ // The actual grunt server settings
92
+ connect: {
93
+ options: {
94
+ port: 9000,
95
+ // Change this to '0.0.0.0' to access the server from outside.
96
+ hostname: 'localhost',
97
+ livereload: 35729
98
+ },
99
+ livereload: {
100
+ options: {
101
+ open: true,
102
+ base: [
103
+ '.tmp',
104
+ '<%= yeoman.app %>'
105
+ ]
106
+ }
107
+ },
108
+ test: {
109
+ options: {
110
+ port: 9001,
111
+ base: [
112
+ '.tmp',
113
+ 'test',
114
+ '<%= yeoman.app %>'
115
+ ]
116
+ }
117
+ },
118
+ dist: {
119
+ options: {
120
+ base: '<%= yeoman.dist %>'
121
+ }
122
+ }
123
+ },
124
+
125
+ // Make sure code styles are up to par and there are no obvious mistakes
126
+ jshint: {
127
+ options: {
128
+ jshintrc: '.jshintrc',
129
+ reporter: require('jshint-stylish')
130
+ },
131
+ all: [
132
+ 'Gruntfile.js',
133
+ '<%= yeoman.app %>/scripts/{,*/}*.js'
134
+ ],
135
+ test: {
136
+ options: {
137
+ jshintrc: 'test/.jshintrc'
138
+ },
139
+ src: ['test/spec/{,*/}*.js']
140
+ }
141
+ },
142
+
143
+ // Empties folders to start fresh
144
+ clean: {
145
+ dist: {
146
+ files: [
147
+ {
148
+ dot: true,
149
+ src: [
150
+ '.tmp',
151
+ '<%= yeoman.dist %>/*',
152
+ '!<%= yeoman.dist %>/.git*'
153
+ ]
154
+ }
155
+ ]
156
+ },
157
+ server: '.tmp'
158
+ },
159
+
160
+ // Add vendor prefixed styles
161
+ autoprefixer: {
162
+ options: {
163
+ browsers: ['last 1 version']
164
+ },
165
+ dist: {
166
+ files: [
167
+ {
168
+ expand: true,
169
+ cwd: '.tmp/styles/',
170
+ src: '{,*/}*.css',
171
+ dest: '.tmp/styles/'
172
+ }
173
+ ]
174
+ }
175
+ },
176
+
177
+ // Automatically inject Bower components into the app
178
+ bowerInstall: {
179
+ app: {
180
+ src: ['<%= yeoman.app %>/index.html'],
181
+ ignorePath: '<%= yeoman.app %>/'
182
+ },
183
+ sass: {
184
+ src: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
185
+ ignorePath: '<%= yeoman.app %>/bower_components/'
186
+ }
187
+ },
188
+
189
+ // Compiles Sass to CSS and generates necessary files if requested
190
+ compass: {
191
+ options: {
192
+ sassDir: '<%= yeoman.app %>/styles',
193
+ cssDir: '.tmp/styles',
194
+ generatedImagesDir: '.tmp/images/generated',
195
+ imagesDir: '<%= yeoman.app %>/images',
196
+ javascriptsDir: '<%= yeoman.app %>/scripts',
197
+ fontsDir: '<%= yeoman.app %>/styles/fonts',
198
+ importPath: '<%= yeoman.app %>/bower_components',
199
+ httpImagesPath: '/images',
200
+ httpGeneratedImagesPath: '/images/generated',
201
+ httpFontsPath: '/styles/fonts',
202
+ relativeAssets: false,
203
+ assetCacheBuster: false,
204
+ raw: 'Sass::Script::Number.precision = 10\n'
205
+ },
206
+ dist: {
207
+ options: {
208
+ generatedImagesDir: '<%= yeoman.dist %>/images/generated'
209
+ }
210
+ },
211
+ server: {
212
+ options: {
213
+ debugInfo: true
214
+ }
215
+ }
216
+ },
217
+
218
+ // Renames files for browser caching purposes
219
+ rev: {
220
+ dist: {
221
+ files: {
222
+ src: [
223
+ '<%= yeoman.dist %>/scripts/{,*/}*.js',
224
+ '<%= yeoman.dist %>/styles/{,*/}*.css',
225
+ '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
226
+ '<%= yeoman.dist %>/styles/fonts/*'
227
+ ]
228
+ }
229
+ }
230
+ },
231
+
232
+ // Reads HTML for usemin blocks to enable smart builds that automatically
233
+ // concat, minify and revision files. Creates configurations in memory so
234
+ // additional tasks can operate on them
235
+ useminPrepare: {
236
+ html: '<%= yeoman.app %>/index.html',
237
+ options: {
238
+ dest: '<%= yeoman.dist %>',
239
+ flow: {
240
+ html: {
241
+ steps: {
242
+ js: ['concat', 'uglifyjs'],
243
+ css: ['cssmin']
244
+ },
245
+ post: {}
246
+ }
247
+ }
248
+ }
249
+ },
250
+
251
+ // Performs rewrites based on rev and the useminPrepare configuration
252
+ usemin: {
253
+ html: ['<%= yeoman.dist %>/{,*/}*.html'],
254
+ css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
255
+ options: {
256
+ assetsDirs: ['<%= yeoman.dist %>']
257
+ }
258
+ },
259
+
260
+ // The following *-min tasks produce minified files in the dist folder
261
+ cssmin: {
262
+ options: {
263
+ root: '<%= yeoman.app %>'
264
+ }
265
+ },
266
+
267
+ imagemin: {
268
+ dist: {
269
+ files: [
270
+ {
271
+ expand: true,
272
+ cwd: '<%= yeoman.app %>/images',
273
+ src: '{,*/}*.{png,jpg,jpeg,gif}',
274
+ dest: '<%= yeoman.dist %>/images'
275
+ }
276
+ ]
277
+ }
278
+ },
279
+
280
+ svgmin: {
281
+ dist: {
282
+ files: [
283
+ {
284
+ expand: true,
285
+ cwd: '<%= yeoman.app %>/images',
286
+ src: '{,*/}*.svg',
287
+ dest: '<%= yeoman.dist %>/images'
288
+ }
289
+ ]
290
+ }
291
+ },
292
+
293
+ htmlmin: {
294
+ dist: {
295
+ options: {
296
+ collapseWhitespace: true,
297
+ collapseBooleanAttributes: true,
298
+ removeCommentsFromCDATA: true,
299
+ removeOptionalTags: true
300
+ },
301
+ files: [
302
+ {
303
+ expand: true,
304
+ cwd: '<%= yeoman.dist %>',
305
+ src: ['*.html', 'views/{,*/}*.html'],
306
+ dest: '<%= yeoman.dist %>'
307
+ }
308
+ ]
309
+ }
310
+ },
311
+
312
+ // ngmin tries to make the code safe for minification automatically by
313
+ // using the Angular long form for dependency injection. It doesn't work on
314
+ // things like resolve or inject so those have to be done manually.
315
+ ngmin: {
316
+ dist: {
317
+ files: [
318
+ {
319
+ expand: true,
320
+ cwd: '.tmp/concat/scripts',
321
+ src: '*.js',
322
+ dest: '.tmp/concat/scripts'
323
+ }
324
+ ]
325
+ }
326
+ },
327
+
328
+ // Replace Google CDN references
329
+ cdnify: {
330
+ dist: {
331
+ html: ['<%= yeoman.dist %>/*.html']
332
+ }
333
+ },
334
+
335
+ // Copies remaining files to places other tasks can use
336
+ copy: {
337
+ dist: {
338
+ files: [
339
+ {
340
+ expand: true,
341
+ dot: true,
342
+ cwd: '<%= yeoman.app %>',
343
+ dest: '<%= yeoman.dist %>',
344
+ src: [
345
+ '*.{ico,png,txt}',
346
+ '.htaccess',
347
+ '*.html',
348
+ 'views/{,*/}*.html',
349
+ 'images/{,*/}*.{webp}',
350
+ 'fonts/*'
351
+ ]
352
+ },
353
+ {
354
+ expand: true,
355
+ cwd: '.tmp/images',
356
+ dest: '<%= yeoman.dist %>/images',
357
+ src: ['generated/*']
358
+ }
359
+ ]
360
+ },
361
+ styles: {
362
+ expand: true,
363
+ cwd: '<%= yeoman.app %>/styles',
364
+ dest: '.tmp/styles/',
365
+ src: '{,*/}*.css'
366
+ },
367
+ ruby: {
368
+ files: [
369
+ {
370
+ src: '<%= yeoman.dist %>/index.html',
371
+ dest: '<%= yeoman.app %>/../../app/views/home.erb'
372
+ },
373
+ {
374
+ expand: true,
375
+ cwd: '<%= yeoman.app %>/bower_components',
376
+ src: ['**'],
377
+ dest: '<%= yeoman.dist %>/bower_components'
378
+ }
379
+ ]
380
+ }
381
+ },
382
+
383
+ // Run some tasks in parallel to speed up the build process
384
+ concurrent: {
385
+ server: [
386
+ 'compass:server'
387
+ ],
388
+ test: [
389
+ 'compass'
390
+ ],
391
+ dist: [
392
+ 'compass:dist',
393
+ 'imagemin',
394
+ 'svgmin'
395
+ ]
396
+ },
397
+
398
+ // By default, your `index.html`'s <!-- Usemin block --> will take care of
399
+ // minification. These next options are pre-configured if you do not wish
400
+ // to use the Usemin blocks.
401
+ // cssmin: {
402
+ // dist: {
403
+ // files: {
404
+ // '<%= yeoman.dist %>/styles/main.css': [
405
+ // '.tmp/styles/{,*/}*.css',
406
+ // '<%= yeoman.app %>/styles/{,*/}*.css'
407
+ // ]
408
+ // }
409
+ // }
410
+ // },
411
+ // uglify: {
412
+ // dist: {
413
+ // files: {
414
+ // '<%= yeoman.dist %>/scripts/scripts.js': [
415
+ // '<%= yeoman.dist %>/scripts/scripts.js'
416
+ // ]
417
+ // }
418
+ // }
419
+ // },
420
+ // concat: {
421
+ // dist: {}
422
+ // },
423
+
424
+ // Test settings
425
+ karma: {
426
+ unit: {
427
+ configFile: 'karma.conf.js',
428
+ singleRun: true
429
+ }
430
+ }
431
+ });
432
+
433
+
434
+ grunt.registerTask('serve', function (target) {
435
+ if (target === 'dist') {
436
+ return grunt.task.run(['heroku', 'connect:dist:keepalive']);
437
+ }
438
+
439
+ grunt.task.run([
440
+ 'clean:server',
441
+ 'bowerInstall',
442
+ 'concurrent:server',
443
+ 'autoprefixer',
444
+ 'connect:livereload',
445
+ 'replace:socket_url_test',
446
+ 'watch'
447
+ ]);
448
+ });
449
+
450
+ grunt.registerTask('server', function (target) {
451
+ grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
452
+ grunt.task.run(['serve:' + target]);
453
+ });
454
+
455
+ grunt.registerTask('test', [
456
+ 'clean:server',
457
+ 'concurrent:test',
458
+ 'autoprefixer',
459
+ 'connect:test',
460
+ 'karma'
461
+ ]);
462
+
463
+ grunt.registerTask('heroku', [
464
+ 'clean:dist',
465
+ 'bowerInstall',
466
+ 'replace:socket_url_prod',
467
+ 'useminPrepare',
468
+ 'concurrent:dist',
469
+ 'autoprefixer',
470
+ 'concat',
471
+ 'ngmin',
472
+ 'copy:dist',
473
+ 'cdnify',
474
+ 'cssmin',
475
+ 'uglify',
476
+ 'rev',
477
+ 'usemin',
478
+ 'htmlmin',
479
+ 'copy:ruby'
480
+ ]);
481
+
482
+ grunt.registerTask('default', [
483
+ 'newer:jshint',
484
+ 'test',
485
+ 'heroku'
486
+ ]);
487
+ };
@@ -0,0 +1 @@
1
+ *.coffee