json_resume 1.0.2 → 1.0.3

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