Skip to content

Instantly share code, notes, and snippets.

@mrstebo
Created April 19, 2017 22:19
Show Gist options
  • Select an option

  • Save mrstebo/1bf9c6e1cfb72aa9043f5573d7f3f6db to your computer and use it in GitHub Desktop.

Select an option

Save mrstebo/1bf9c6e1cfb72aa9043f5573d7f3f6db to your computer and use it in GitHub Desktop.
I am lazy. Made a script to build express routes for the Fakergem library.
TEMPLATE = <<-EOF
const Faker = require('fakergem');
const { Router } = require('express');
const router = new Router();
router.get('/{route_name}', (req, res) => {
res.json({
{properties}
});
});
module.exports = router;
EOF
Dir.glob('./node_modules/fakergem/doc/*.md').each do |doc|
route_name = File.basename(doc, '.md')
properties = File.open(doc, 'r', &:read).scan(/^Faker\.(\w+)\.(\w+)/).map {|match|
"#{match[1]}: Faker.#{match[0]}.#{match[1]}()"
}.uniq
File.open("./routes/#{route_name}.js", 'w') do |f|
f.puts TEMPLATE
.gsub(/\{route_name\}/, route_name)
.gsub(/\{properties\}/, properties.join(",\n "));
end
puts "app.use(require('./routes/#{route_name}'));"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment