json_resume 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e1185f3931aeb30b8264d695f17eeb7980471e7
4
- data.tar.gz: bd600627bfa8e875e27d24a3c9ebb617b7cc03f4
3
+ metadata.gz: 611619ad281dcba8a17ffa917d97277a9417061a
4
+ data.tar.gz: b7ca67570ed43f1f6d2b1d2d346e44e47894b294
5
5
  SHA512:
6
- metadata.gz: d90db8dd0d28eb3bdd7e8280aae970d15638ee7752899016b43316c90a882b9ac391ca74cf981540cdfe1f76adbd9c9be3124e046ca4ec25437456aaed545a76
7
- data.tar.gz: d7b6567f3887c66707c2130bc02edbc80d4a55a28ff727ffd6d389d8c37ff2a6f5f04e715e0d0fef2f1e3694815d0f23b618b23401150bfce1b1a0f9d267aae4
6
+ metadata.gz: fab1a474d7a83b60006a117c9c9ff06b5dc8323ae5f53c8581bc484baccddfc90055218b184437d313d7ed158893c218d3b55e9b69f9b00e7e4dd27b0254b81c
7
+ data.tar.gz: fe42ee34a78d87edf5c6b5b32c6a706acddf4bd6ae5b138cc73dbf81951d84ad12dbac17818618eed5726baa780d171027fd8eb8010fa41cd8123acb6693140f
data/README.md CHANGED
@@ -11,17 +11,17 @@ JsonResume creates pretty versions of resume from a single JSON input file. Outp
11
11
  ### Create a sample JSON input file to start
12
12
 
13
13
  $ json_resume sample
14
-
14
+
15
15
  A [sample](https://github.com/prat0318/json_resume/blob/master/examples/prateek_cv.json) `prateek_cv.json` is generated in the current working directory(cwd).
16
-
16
+
17
17
  Modify it as per the needs, and remove or keep rest of the fields empty.
18
-
18
+
19
19
  ### Conversion
20
20
 
21
21
  * Syntax
22
22
 
23
23
  ```
24
- json_resume convert [--template=/path/to/custom/template]
24
+ json_resume convert [--template=/path/to/custom/template]
25
25
  [--out=html|html_pdf|tex|tex_pdf|md]
26
26
  [--locale=es|en|pt]
27
27
  [--theme=default|classic] <json_input>
@@ -35,12 +35,12 @@ Modify it as per the needs, and remove or keep rest of the fields empty.
35
35
  $ json_resume convert prateek_cv.json
36
36
  ```
37
37
 
38
- A directory `resume/` will be generated in cwd, which can be put hosted on /var/www or on github pages. ([Sample](http://prat0318.github.io/index1.html))
38
+ A directory `resume/` will be generated in cwd, which can be put hosted on /var/www or on github pages. ([Sample](http://prat0318.github.io/json_resume/html_version/resume_with_icons/))
39
39
 
40
40
 
41
41
  * HTML\* version
42
42
 
43
- `html` version without icons can be generated by giving `icons` as `false` : ([Sample](http://prat0318.github.io/index2.html))
43
+ `html` version without icons can be generated by giving `icons` as `false` : ([Sample](http://prat0318.github.io/json_resume/html_version/resume_without_icons/))
44
44
 
45
45
  ```
46
46
  "settings": {
@@ -48,20 +48,21 @@ A directory `resume/` will be generated in cwd, which can be put hosted on /var/
48
48
  },
49
49
  ```
50
50
 
51
- * PDF version from HTML ([Sample](http://prat0318.github.io/public/resume.pdf))
51
+ * PDF version from HTML ([Sample](http://prat0318.github.io/json_resume/html_version/resume_with_icons/resume.pdf))
52
52
 
53
53
  ```
54
54
  $ json_resume convert --out=html_pdf prateek_cv.json
55
55
  ```
56
56
 
57
- * LaTeX version ([Sample](https://www.writelatex.com/read/zkkbznbkfkgq))
57
+ * LaTeX version ([Sample](https://www.writelatex.com/read/ynhgbrnmtrbw))
58
58
 
59
59
  ```
60
60
  $ json_resume convert --out=tex prateek_cv.json
61
61
  ```
62
- - LaTex also includes a ``classic`` theme. Usage: ``--theme=classic``.
63
62
 
64
- * PDF version from LaTeX ([Sample](https://www.writelatex.com/read/zkkbznbkfkgq))
63
+ LaTex also includes a ``classic`` theme. Usage: ``--theme=classic`` ([Sample](https://www.writelatex.com/read/xscbhfpxwkqh)).
64
+
65
+ * PDF version from LaTeX ([Sample](https://www.writelatex.com/read/ynhgbrnmtrbw))
65
66
 
66
67
  ```
67
68
  $ json_resume convert --out=tex_pdf prateek_cv.json
@@ -84,30 +85,25 @@ Support for ``en``, ``es`` and ``pt`` right now. Pull requests for others are we
84
85
  ## Markup Language
85
86
 
86
87
  JSON is parsed as per the `markdown` standards. This implies all this works-
87
- - \*\* **bold** \*\*,
88
- - \_ _italics_ \_,
88
+ - \*\* **bold** \*\*,
89
+ - \_ _italics_ \_,
89
90
  - script&lt;sup&gt;<sup>sup</sup>&lt;sup/&gt;,
90
- - script&lt;sub&gt;<sub>sub</sub>&lt;sub/&gt;,
91
- - \[[href](#)\]\(#\),
91
+ - script&lt;sub&gt;<sub>sub</sub>&lt;sub/&gt;,
92
+ - \[[href](#)\]\(#\),
92
93
  - <<[http://github.com](http://github.com)>>
93
94
 
94
- ## FAQs
95
-
96
- * I get the following error during `convert` :
97
-
98
- ```
99
- Error:
100
- Generating the html type...
101
- /Users/myMac/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError)
102
- from /Users/abhiramk/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `initialize'
103
- from /Users/abhiramk/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `new'
104
- ```
105
-
106
- Looks like locale problem. Add the following to the environment : `export LC_CTYPE=en_US.UTF-8` ( Thanks to [@viswamitra](https://github.com/viswamitra) )
107
-
108
95
  ## Customization
109
96
 
110
- Output is creating using mustache templates. They are located in `templates/`. These can be modified and given as `--template=/path/to/template` to `convert`. For example, the tex template was customized to produced [this new format](https://www.writelatex.com/read/tktqrbmhnyqp).
97
+ #### Mustache Templates
98
+ * Output is created using mustache templates. They are located in `templates/`. These can be modified and given as `--template=/path/to/template` to `convert`.
99
+
100
+ #### Adding your own icons to json_resume
101
+ 1. Download the svg(s) you would like to use from a site like [IcoMoon](https://icomoon.io/app/) or [IconFinder](https://www.iconfinder.com) and chose size as 16X16.
102
+ 2. Download the official ``json_resume`` svgs from [the json_resume_icon repo zip](https://github.com/NoahHines/json_resume_icons/archive/master.zip). Unzip it, svgs are present in `/SVG`.
103
+ 3. Drag all svgs (including yours) onto the [grumpicon](http://www.grumpicon.com/) and then "downlode it".
104
+ 4. Drag all the files (``.css`` and ``.png``) from the ``grunticon`` folder into your local ``json_resume`` gem's folder ``json_resume-1.X.X/extras/resume_html/public/css/``, replacing existing files ([Read this](http://stackoverflow.com/questions/2827496/where-are-my-ruby-gems) to find your gem's location in your machine).
105
+ 5. Modify your HTML [mustache template](#mustache-templates) to include your icons. Specifically, edit the ``div`` class in the template to include your new grunticon (```<div class="icon-user icon-square">```, where "user" is the SVG name). You can also check grunticon's generated ``preview.html`` file to verify the icon class name.
106
+ 6. Run ``json_resume convert --template=/path/to/template <json>``, and you should be able to see the changes in the generated HTML. Also, steps 1-5 are to be done just once and the icons will be stored within your local gem.
111
107
 
112
108
  ## Changelog
113
109
 
@@ -20,13 +20,15 @@ class JsonResumeCLI < Thor
20
20
  desc "convert /path/to/json/file", "converts the json to pretty resume format"
21
21
  option :out, :default=>"html", :banner=>"output_type", :desc=>"html|html_pdf|tex|tex_pdf|md"
22
22
  option :template, :banner=>"template_path", :desc=>"path to customized template (optional)"
23
- option :locale, :default=>"en", :banner=>"locale", :desc=>"en|es|pt"
24
- option :theme, :default=>"default", :banner=>"theme", :desc=>"default|classic"
23
+ option :locale, :default=>"en", :banner=>"locale", :desc=>"en|es|pt"
24
+ option :theme, :default=>"default", :banner=>"theme", :desc=>"default|classic"
25
+ option :dest_dir, :default=>"current", :banner=>"dest_dir", :desc=>"location of dest. dir (optional)"
25
26
  def convert(json_input)
26
27
  set_i18n(options[:locale])
27
28
  puts "Generating the #{options[:out]} type..."
29
+ dest = options[:dest_dir] == 'current'? Dir.pwd : options[:dest_dir]
28
30
  begin
29
- puts send('convert_to_'+options[:out], json_input, get_template(options))
31
+ puts send('convert_to_'+options[:out], json_input, get_template(options), dest)
30
32
  rescue Encoding::InvalidByteSequenceError
31
33
  puts "ERROR: You need to 'export LC_CTYPE=en_US.UTF-8' ...".green
32
34
  end
@@ -47,24 +49,24 @@ class JsonResumeCLI < Thor
47
49
  @@orig_locn = File.expand_path(File.dirname(__FILE__))
48
50
 
49
51
  def get_template(options)
50
- return options[:template] if options[:template]
51
- out_type = options[:out].split('_').first #html for both html, html_pdf
52
- out_type = 'html' if out_type == 'pdf'
53
- theme = options[:theme]
54
- template_path = "#{@@orig_locn}/../templates/#{theme}_#{out_type}.mustache"
55
- if !(File.exists? template_path) and theme != 'default'
56
- puts "Theme #{theme} doesn't exist for #{options[:out]} type yet! Using default...".red
57
- template_path = "#{@@orig_locn}/../templates/default_#{out_type}.mustache"
58
- end
59
- return template_path
52
+ return options[:template] if options[:template]
53
+ out_type = options[:out].split('_').first #html for both html, html_pdf
54
+ out_type = 'html' if out_type == 'pdf'
55
+ theme = options[:theme]
56
+ template_path = "#{@@orig_locn}/../templates/#{theme}_#{out_type}.mustache"
57
+ if !(File.exists? template_path) and theme != 'default'
58
+ puts "Theme #{theme} doesn't exist for #{options[:out]} type yet! Using default...".red
59
+ template_path = "#{@@orig_locn}/../templates/default_#{out_type}.mustache"
60
+ end
61
+ return template_path
60
62
  end
61
63
 
62
64
  def convert_to_html(json_input, template, dest=Dir.pwd, dir_name='resume')
63
- dest_dir = "#{dest}/#{dir_name}"
64
- FileUtils.mkdir_p dest_dir
65
- FileUtils.cp_r(Dir["#{@@orig_locn}/../extras/resume_html/*"], dest_dir)
66
- msg = generate_file(json_input, template, "html", "#{dest_dir}/page.html")
67
- msg += "\nPlace #{dest_dir}/ in /var/www/ to host."
65
+ dest_dir = "#{dest}/#{dir_name}"
66
+ FileUtils.mkdir_p dest_dir
67
+ FileUtils.cp_r(Dir["#{@@orig_locn}/../extras/resume_html/*"], dest_dir)
68
+ msg = generate_file(json_input, template, "html", "#{dest_dir}/page.html")
69
+ msg += "\nPlace #{dest_dir}/ in /var/www/ to host."
68
70
  end
69
71
 
70
72
  def convert_to_pdf(json_input, template, dest=Dir.pwd)
@@ -152,15 +154,15 @@ class JsonResumeCLI < Thor
152
154
  generate_file(json_input, template, "markdown", "#{dest}/resume.md")
153
155
  end
154
156
 
155
- def set_i18n(locale)
156
- I18n.load_path = Dir["#{@@orig_locn}/../locale/*.yml"]
157
- I18n.enforce_available_locales = true
158
- I18n.locale = options[:locale].to_sym
159
- end
157
+ def set_i18n(locale)
158
+ I18n.load_path = Dir["#{@@orig_locn}/../locale/*.yml"]
159
+ I18n.enforce_available_locales = true
160
+ I18n.locale = options[:locale].to_sym
161
+ end
160
162
 
161
- def i18n(text)
162
- text.gsub(/##(\w*?)##/) { I18n.t! Regexp.last_match[1], :scope => 'headings' }
163
- end
163
+ def i18n(text)
164
+ text.gsub(/##(\w*?)##/) { I18n.t! Regexp.last_match[1], :scope => 'headings' }
165
+ end
164
166
 
165
167
  def generate_file(json_input, template, output_type, dest)
166
168
  resume_obj = JsonResume.new(json_input, "output_type" => output_type)
@@ -1,5 +1,5 @@
1
1
  /*added for #PAGE */
2
- @media screen and (max-width: 800px){
2
+ @media screen and (max-width: 600px){
3
3
  #page {
4
4
  padding: 0.5em 1em 0.5em 1em;
5
5
  }
@@ -24,4 +24,4 @@
24
24
  width: 50em;
25
25
  font-size: 80%;
26
26
  }
27
- }
27
+ }
@@ -1,2 +1,2 @@
1
1
  window.grunticon=function(e){if(e&&3===e.length){var t=window,n=!!t.document.createElementNS&&!!t.document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect&&!!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),A=function(A){var o=t.document.createElement("link"),r=t.document.getElementsByTagName("script")[0];o.rel="stylesheet",o.href=e[A&&n?0:A?1:2],r.parentNode.insertBefore(o,r)},o=new t.Image;o.onerror=function(){A(!1)},o.onload=function(){A(1===o.width&&1===o.height)},o.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="}};
2
- grunticon( [ "public/css/icons.data.svg.css", "public/css/icons.data.png.css", "public/css/icons.fallback.css" ] );
2
+ grunticon( [ "public/css/icons.data.svg.css", "public/css/icons.data.png.css", "public/css/icons.fallback.css" ] );
@@ -14,7 +14,7 @@ module JsonResume
14
14
  @hash = hash
15
15
 
16
16
  #recursively defined proc
17
- @hash_proc = Proc.new do |k,v|
17
+ @hash_proc = Proc.new do |k,v|
18
18
  v = k if v.nil? #hack to make it common for hash and array
19
19
  v.delete_if(&@hash_proc) if [Hash,Array].any? { |x| v.instance_of? x }
20
20
  v.empty?
@@ -39,7 +39,7 @@ module JsonResume
39
39
  return if @hash['bio_data']['skills'].nil?
40
40
  @hash['bio_data']['skills']['details'].each do |item|
41
41
  item['items'].map!{|x| {'name'=>x} }
42
- item['items'][-1]['last'] = true
42
+ item['items'][-1]['last'] = true
43
43
  end
44
44
  end
45
45
 
@@ -67,7 +67,7 @@ module JsonResume
67
67
  end
68
68
 
69
69
  def format_to_output_type
70
- format_proc = Proc.new do |k,v|
70
+ format_proc = Proc.new do |k,v|
71
71
  v = k if v.nil?
72
72
  v.each{|x| format_proc.call(x)} if [Hash,Array].any? {|x| v.instance_of? x}
73
73
  format_string v if v.instance_of? String
@@ -86,13 +86,13 @@ module JsonResume
86
86
 
87
87
  def purge_gpa
88
88
  return if @hash['bio_data']['education'].nil?
89
- @hash["bio_data"]["education"].delete("show_gpa") if is_false?(@hash["bio_data"]["education"]["show_gpa"]) || @hash["bio_data"]["education"]["schools"].all? {|sch| sch["gpa"].nil? || sch["gpa"].empty?}
89
+ @hash["bio_data"]["education"].delete("show_gpa") if is_false?(@hash["bio_data"]["education"]["show_gpa"]) || @hash["bio_data"]["education"]["schools"].all? {|sch| sch["gpa"].nil? || sch["gpa"].empty?}
90
90
  end
91
91
 
92
92
  def add_padding(course)
93
93
  unless @hash["bio_data"].nil? || @hash["bio_data"][course].nil?
94
94
  course_hash = @hash["bio_data"][course]
95
- course_hash << {} if course_hash.size % 2 == 1
95
+ course_hash << {} if course_hash.size % 2 == 1
96
96
  @hash["bio_data"][course] = {
97
97
  "rows" => course_hash.each_slice(2).to_a.map{ |i| { "columns" => i } }
98
98
  }
@@ -104,7 +104,7 @@ module JsonResume
104
104
 
105
105
  cleanse
106
106
 
107
- format_to_output_type
107
+ format_to_output_type
108
108
 
109
109
  add_last_marker_on_stars
110
110
 
@@ -118,7 +118,7 @@ module JsonResume
118
118
  add_linkedin_github_url
119
119
 
120
120
  #make odd listed courses to even
121
- ["grad_courses", "undergrad_courses"].each do |course|
121
+ ["grad_courses", "undergrad_courses"].each do |course|
122
122
  add_padding(course)
123
123
  end
124
124
 
@@ -127,5 +127,4 @@ module JsonResume
127
127
 
128
128
 
129
129
  end
130
- end
131
-
130
+ end
@@ -3,16 +3,16 @@ require_relative 'formatter'
3
3
  module JsonResume
4
4
  class FormatterHtml < Formatter
5
5
  def format_link str
6
- str.gsub! /\[(.*?)\]\((.*?)\)/, '<a href="\2">\1</a>'
6
+ str.gsub!(/\[(.*?)\]\((.*?)\)/, '<a href="\2">\1</a>')
7
7
  end
8
8
 
9
9
  def format_autolink str
10
- str.gsub! /<<(\S*?)>>/, '<a href="\1">\1</a>'
10
+ str.gsub!(/<<(\S*?)>>/, '<a href="\1">\1</a>')
11
11
  end
12
-
12
+
13
13
  def format_emphasis str
14
- str.gsub! /\b_(.+?)_\b/, '<i>\1</i>'
15
- str.gsub! /\*\*(.+?)\*\*/, '<b>\1</b>'
14
+ str.gsub!(/\b_(.+?)_\b/, '<i>\1</i>')
15
+ str.gsub!(/\*\*(.+?)\*\*/, '<b>\1</b>')
16
16
  end
17
17
 
18
18
  def format_string str
@@ -23,10 +23,9 @@ module JsonResume
23
23
 
24
24
  def format
25
25
  super
26
-
26
+
27
27
  return self
28
28
  end
29
29
 
30
30
  end
31
31
  end
32
-
@@ -3,41 +3,41 @@ require_relative 'formatter'
3
3
  module JsonResume
4
4
  class FormatterLatex < Formatter
5
5
 
6
- def format_slashes str
7
- str.gsub!(/\\/, '\textbackslash')
8
- str.gsub!(/\{/, '\{')
9
- str.gsub!(/\}/, '\}')
10
- end
6
+ def format_slashes str
7
+ str.gsub!(/\\/, '\textbackslash')
8
+ str.gsub!(/\{/, '\{')
9
+ str.gsub!(/\}/, '\}')
10
+ end
11
11
 
12
12
  def format_link str
13
- str.gsub! /\[(.*?)\]\((.*?)\)/, '{\color{see} \href{\2}{\1}}'
13
+ str.gsub!(/\[(.*?)\]\((.*?)\)/, '{\color{see} \href{\2}{\1}}')
14
14
  end
15
15
 
16
16
  def format_autolink str
17
- str.gsub! /<<(\S*?)>>/, '{\color{see} \url{\1}}'
17
+ str.gsub!(/<<(\S*?)>>/, '{\color{see} \url{\1}}')
18
18
  end
19
19
 
20
20
  def format_emphasis str
21
- str.gsub! /\b_(.+?)_\b/, '\textit{\1}'
22
- str.gsub! /\*\*(.+?)\*\*/, '\textbf{\1}'
21
+ str.gsub!(/\b_(.+?)_\b/, '\textit{\1}')
22
+ str.gsub!(/\*\*(.+?)\*\*/, '\textbf{\1}')
23
23
  end
24
24
 
25
25
  def format_superscripts str
26
- str.gsub! /<sup>(.*?)<\/sup>/, '$^{\1}$'
27
- str.gsub! /<sub>(.*?)<\/sub>/, '$_{\1}$'
26
+ str.gsub!(/<sup>(.*?)<\/sup>/, '$^{\1}$')
27
+ str.gsub!(/<sub>(.*?)<\/sub>/, '$_{\1}$')
28
28
  end
29
29
 
30
30
  def format_symbols str
31
- str.gsub! /#/, '\#'
32
- str.gsub! /\$/, '\$'
33
- str.gsub! /&/, '\\\\&'
34
- str.gsub! /\|/, '\textbar'
35
- str.gsub! /%/, '\%'
36
- str.gsub! /_/, '\_'
31
+ str.gsub!(/#/, '\#')
32
+ str.gsub!(/\$/, '\$')
33
+ str.gsub!(/&/, '\\\\&')
34
+ str.gsub!(/\|/, '\textbar')
35
+ str.gsub!(/%/, '\%')
36
+ str.gsub!(/_/, '\_')
37
37
  end
38
38
 
39
39
  def format_string str
40
- format_slashes str
40
+ format_slashes str
41
41
  format_link str
42
42
  format_autolink str
43
43
  format_emphasis str
@@ -52,5 +52,3 @@ module JsonResume
52
52
  end
53
53
  end
54
54
  end
55
-
56
-
@@ -3,19 +3,18 @@ require_relative 'formatter'
3
3
  module JsonResume
4
4
  class FormatterMd < Formatter
5
5
  def format_autolink str
6
- str.gsub! /<<(\S*?)>>/, '[\1](\1)'
6
+ str.gsub!(/<<(\S*?)>>/, '[\1](\1)')
7
7
  end
8
-
8
+
9
9
  def format_string str
10
10
  format_autolink str
11
11
  end
12
12
 
13
13
  def format
14
14
  super
15
-
15
+
16
16
  return self
17
17
  end
18
18
 
19
19
  end
20
20
  end
21
-
@@ -11,8 +11,8 @@ module JsonResume
11
11
  def initialize(json_input, options)
12
12
  output_type = options[:output_type] || "html" #default html, others latex, md
13
13
  @json_string = case json_input
14
- when /\.json$/i then File.read(json_input)
15
14
  when /^(http|https|www)/ then RestClient.get(json_input)
15
+ when /\.json$/i then File.read(json_input)
16
16
  else json_input
17
17
  end
18
18
  @output_type = output_type
@@ -33,5 +33,4 @@ module JsonResume
33
33
  @hash = formatters[type].new(@hash).format.hash
34
34
  end
35
35
  end
36
- end
37
-
36
+ end
@@ -1,3 +1,3 @@
1
1
  module JsonResume
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -6,8 +6,8 @@ describe "#padder" do
6
6
  it 'pads a row if items are odd' do
7
7
  hash = {'bio_data' => {'test' => [
8
8
  {'name'=>'sub1', 'url' => 'url1'},
9
- {'name'=>'sub2', 'url' => 'url2'},
10
- {'name'=>'sub3', 'url' => 'url3'}
9
+ {'name'=>'sub2', 'url' => 'url2'},
10
+ {'name'=>'sub3', 'url' => 'url3'}
11
11
  ]}
12
12
  }
13
13
  formatter = JsonResume::FormatterHtml.new hash
@@ -34,28 +34,28 @@ describe "#padder" do
34
34
  formatter.add_padding('test')
35
35
  expect(formatter.hash['bio_data']).to eq({})
36
36
  end
37
- end
37
+ end
38
38
 
39
39
  describe '#urlformatter' do
40
40
  context 'when given a link for html output' do
41
41
  it 'converts link to href' do
42
42
  formatter = JsonResume::FormatterHtml.new({})
43
43
  str = "test [Hello](http://google.com)"
44
- formatter.format_link str
44
+ formatter.format_link str
45
45
  expect(str).to eq('test <a href="http://google.com">Hello</a>')
46
46
  end
47
47
 
48
48
  it 'converts autolink to url' do
49
49
  formatter = JsonResume::FormatterHtml.new({})
50
50
  str = "test <<http://google.com>>"
51
- formatter.format_autolink str
51
+ formatter.format_autolink str
52
52
  expect(str).to eq('test <a href="http://google.com">http://google.com</a>')
53
53
  end
54
-
54
+
55
55
  it 'converts links and autolinks to url' do
56
56
  formatter = JsonResume::FormatterHtml.new({})
57
57
  str = "test <<http://google.com>> [Hello](http://google.com) <<http://google.com>>"
58
- formatter.format_string str
58
+ formatter.format_string str
59
59
  expect(str).to eq('test <a href="http://google.com">http://google.com</a> <a href="http://google.com">Hello</a> <a href="http://google.com">http://google.com</a>')
60
60
  end
61
61
  end
@@ -91,5 +91,3 @@ describe "#format" do
91
91
  formatter.format
92
92
  end
93
93
  end
94
-
95
-
@@ -6,21 +6,21 @@ describe '#urlformatter' do
6
6
  it 'converts link to href' do
7
7
  formatter = JsonResume::FormatterLatex.new({})
8
8
  str = "test [Hello](http://google.com)"
9
- formatter.format_link str
9
+ formatter.format_link str
10
10
  expect(str).to eq('test {\color{see} \href{http://google.com}{Hello}}')
11
11
  end
12
12
 
13
13
  it 'converts autolink to url' do
14
14
  formatter = JsonResume::FormatterLatex.new({})
15
15
  str = "test <<http://google.com>>"
16
- formatter.format_autolink str
16
+ formatter.format_autolink str
17
17
  expect(str).to eq('test {\color{see} \url{http://google.com}}')
18
18
  end
19
-
19
+
20
20
  it 'converts links and autolinks to url' do
21
21
  formatter = JsonResume::FormatterLatex.new({})
22
22
  str = "test <<http://google.com>> [Hello](http://google.com) <<http://google.com>>"
23
- formatter.format_string str
23
+ formatter.format_string str
24
24
  expect(str).to eq('test {\color{see} \url{http://google.com}} {\color{see} \href{http://google.com}{Hello}} {\color{see} \url{http://google.com}}')
25
25
  end
26
26
  end
@@ -48,4 +48,3 @@ describe "#emphasis_formatting" do
48
48
  expect(str).to eq('Last word should \textit{be \textbf{bold and italicized}}')
49
49
  end
50
50
  end
51
-
@@ -20,7 +20,7 @@ end
20
20
  describe "#format_to_output_type" do
21
21
  it 'should make format calls to all valid strings' do
22
22
  hash = {"key1"=> "non-empty", "key2" => {"key3" => ["test [Hello]{http://google.com}"]}}
23
- formatter = JsonResume::Formatter.new hash
23
+ formatter = JsonResume::Formatter.new hash
24
24
  expect(formatter).to receive(:format_string).with("non-empty")
25
25
  expect(formatter).to receive(:format_string).with("test [Hello]{http://google.com}")
26
26
  formatter.format_to_output_type
@@ -30,18 +30,18 @@ end
30
30
  describe "#add_linkedin_github_url" do
31
31
  it 'creates linkedin url if id present' do
32
32
  hash = {"linkedin_id"=>"xyz"}
33
- formatter = JsonResume::Formatter.new hash
33
+ formatter = JsonResume::Formatter.new hash
34
34
  formatter.add_linkedin_github_url
35
35
  expect(formatter.hash["linkedin_url"]).to eq("http://linkedin.com/in/xyz")
36
36
  end
37
37
 
38
38
  it 'creates github url if github id present' do
39
39
  hash = {"github_id"=>"xyz"}
40
- formatter = JsonResume::Formatter.new hash
40
+ formatter = JsonResume::Formatter.new hash
41
41
  formatter.add_linkedin_github_url
42
42
  expect(formatter.hash["github_url"]).to eq("http://github.com/xyz")
43
43
  end
44
-
44
+
45
45
  it 'doesnt create url if id isnt present' do
46
46
  hash = {}
47
47
  formatter = JsonResume::Formatter.new hash
@@ -30,4 +30,3 @@ describe "#reader" do
30
30
  end
31
31
  end
32
32
  end
33
-
@@ -3,4 +3,3 @@ RSpec.configure do |config|
3
3
  c.syntax = :expect
4
4
  end
5
5
  end
6
-
@@ -17,15 +17,15 @@
17
17
  </div>
18
18
  </div>
19
19
 
20
- <h1 class="emphnext">{{firstname}} {{familyname}}</h1><br/>
20
+ <h1 class="emphnext">{{firstname}} {{familyname}}</h1>
21
21
  {{#stars}}
22
- <span class="stars">
22
+ <span class="stars" style="clear:left">
23
23
  {{#items}}
24
24
  {{name}} {{^last}}<div class="icon-star-o icon-star"></div>{{/last}}
25
25
  {{/items}}
26
26
  </span>
27
27
  {{/stars}}
28
- <br/>
28
+ <br/><br/>
29
29
 
30
30
  {{#summary}}
31
31
  <h2><div class="icon-user icon-square"></div> ##summary##</h2>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_resume
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Prateek Agarwal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-12 00:00:00.000000000 Z
11
+ date: 2014-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler