linkedin2cv 0.0.1

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