Skip to content

Commit

Permalink
Fix JSON Resume theme breakage.
Browse files Browse the repository at this point in the history
Fixes #128.
  • Loading branch information
hacksalot committed Jan 30, 2016
1 parent d69e463 commit 1c416f3
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 78 deletions.
30 changes: 16 additions & 14 deletions dist/core/jrs-theme.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Definition of the JRSTheme class.
*/

(function() {
var JRSTheme, PATH, _, getFormat, parsePath, pathExists;
var JRSTheme, PATH, _, parsePath, pathExists;

_ = require('underscore');

Expand All @@ -25,17 +25,13 @@ Definition of the JRSTheme class.
JRSTheme = (function() {
function JRSTheme() {}

return JRSTheme;

})();

({

/**
Open and parse the specified theme.
@method open
*/
open: function(thFolder) {

JRSTheme.prototype.open = function(thFolder) {
var pathInfo, pkgJsonPath, thApi, thPkg;
this.folder = thFolder;
pathInfo = parsePath(thFolder);
Expand Down Expand Up @@ -78,25 +74,31 @@ Definition of the JRSTheme class.
};
}
return this;
},
};


/**
Determine if the theme supports the output format.
@method hasFormat
*/
hasFormat: function(fmt) {

JRSTheme.prototype.hasFormat = function(fmt) {
return _.has(this.formats, fmt);
}
};


/**
Return the requested output format.
@method getFormat
*/
});

getFormat = function(fmt) {
return this.formats[fmt];
};
JRSTheme.prototype.getFormat = function(fmt) {
return this.formats[fmt];
};

return JRSTheme;

})();

module.exports = JRSTheme;

Expand Down
5 changes: 3 additions & 2 deletions dist/renderers/jrs-generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,11 @@ Definition of the JRSGenerator class.
generate: function(json, jst, format, cssInfo, opts, theme) {
var org, rezHtml, turnoff;
turnoff = ['log', 'error', 'dir'];
org = turnoff.map(c)(function() {
org = turnoff.map(function(c) {
var ret;
ret = console[c];
return console[c] = function() {};
console[c] = function() {};
return ret;
});
rezHtml = theme.render(json.harden());
turnoff.forEach(function(c, idx) {
Expand Down
123 changes: 62 additions & 61 deletions src/core/jrs-theme.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -20,68 +20,69 @@ The JRSTheme class is a representation of a JSON Resume theme asset.
class JRSTheme


###*
Open and parse the specified theme.
@method open
###
open: ( thFolder ) ->

@folder = thFolder

# Open the [theme-name].json file; should have the same
# name as folder
pathInfo = parsePath thFolder

# Open and parse the theme's package.json file.
pkgJsonPath = PATH.join thFolder, 'package.json'
if pathExists pkgJsonPath
thApi = require thFolder
thPkg = require pkgJsonPath
this.name = thPkg.name
this.render = (thApi && thApi.render) || undefined
this.engine = 'jrs'

# Create theme formats (HTML and PDF). Just add the bare minimum mix of
# properties necessary to allow JSON Resume themes to share a rendering
# path with FRESH themes.
this.formats =
html:
outFormat: 'html'
files: [{
action: 'transform',
render: this.render,
major: true,
ext: 'html',
css: null
}]
pdf:
outFormat: 'pdf'
files: [{
action: 'transform',
render: this.render,
major: true,
ext: 'pdf',
css: null
}]
else
throw { fluenterror: HACKMYSTATUS.missingPackageJSON };
@



###*
Determine if the theme supports the output format.
@method hasFormat
###
hasFormat: ( fmt ) -> _.has this.formats, fmt



###*
Return the requested output format.
@method getFormat
###
getFormat = ( fmt ) -> @formats[ fmt ]
###*
Open and parse the specified theme.
@method open
###
open: ( thFolder ) ->

@folder = thFolder

# Open the [theme-name].json file; should have the same
# name as folder
pathInfo = parsePath thFolder

# Open and parse the theme's package.json file.
pkgJsonPath = PATH.join thFolder, 'package.json'
if pathExists pkgJsonPath
thApi = require thFolder
thPkg = require pkgJsonPath
this.name = thPkg.name
this.render = (thApi && thApi.render) || undefined
this.engine = 'jrs'

# Create theme formats (HTML and PDF). Just add the bare minimum mix of
# properties necessary to allow JSON Resume themes to share a rendering
# path with FRESH themes.
this.formats =
html:
outFormat: 'html'
files: [{
action: 'transform',
render: this.render,
major: true,
ext: 'html',
css: null
}]
pdf:
outFormat: 'pdf'
files: [{
action: 'transform',
render: this.render,
major: true,
ext: 'pdf',
css: null
}]
else
throw { fluenterror: HACKMYSTATUS.missingPackageJSON };
@



###*
Determine if the theme supports the output format.
@method hasFormat
###
hasFormat: ( fmt ) -> _.has this.formats, fmt



###*
Return the requested output format.
@method getFormat
###
getFormat: ( fmt ) -> @formats[ fmt ]


module.exports = JRSTheme;
3 changes: 2 additions & 1 deletion src/renderers/jrs-generator.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ JRSGenerator = module.exports =

# Disable JRS theme chatter (console.log, console.error, etc.)
turnoff = ['log', 'error', 'dir'];
org = turnoff.map(c) ->
org = turnoff.map (c) ->
ret = console[c]
console[c] = () ->
ret

# Freeze and render
rezHtml = theme.render json.harden()
Expand Down

0 comments on commit 1c416f3

Please sign in to comment.