Code Monkey home page Code Monkey logo

jekyll-faker's Introduction

Code Climate Code Climate Travis CI Gem Version Gem DL

Jekyll Faker

Jekyll Faker is a Jekyll/Liquid wrapper around the Faker gem, it allows you to do anything that Faker allows you to do, as long as it's an acceptable format. It is disaware of it's surroundings, and is extensible by automatic upgrade, meaning... if faker adds new methods, or even new classes, you can continue to use it without needing to upgrade Jekyll Faker.

Installing

gem "jekyll-faker"
gem "jekyll-faker", {
  git: "https://github.com/anomaly/jekyll-faker.git"
}

Usage

Given faker has a class called Lorem, and that class Lorem accepts messages to the method sentences, you can then do the following to extract the data from Faker:

{% faker lorem sentences=8 %}
  <p>{{ faker.val }}</p>
{% endfaker %}

w/ the result

<p>Sentence 1</p>
<p>Sentence 2</p>
<p>Sentence 3</p>
<p>Sentence 4</p>
<p>Sentence 5</p>
<p>Sentence 6</p>
<p>Sentence 7</p>
<p>Sentence 8</p>

Multiple Arguments

If a class and method you wish to use takes multiple arguments, you can replicate the name of the method multiple times to create an array that will be expanded, and messaged to the method. For example:

{% faker number between=1 between=10 %}
  <small>
    {{ faker.val }}
  </small>
{% endfaker %}

CamelCase classes

If a Faker is a CamelCased class, for example "DrWho" (even though technically it's supposed to be DoctorWho, it's Doctor, not Dr, who even does that?) You can do the following:

{% faker dr-who catch_phrase %}
  <p>{{ faker.val }}</p>
{% endfaker %}

or

{% faker id-number valid %}
  <p>{{ faker.val }}</p>
{% endfaker %}

We will attempt to determine the class name automatically, first, efficiently by assuming the dash is a literal for uppercase, and then by doing a simple regexp search, this should often result in the class being found.*

jekyll-faker's People

Contributors

devraj avatar envygeeks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

hemphill

jekyll-faker's Issues

Liquid Exception 'faker' tag was never closed

{% faker lorem sentences=8 %}

{{ faker.val }}

{% endfaker %}

error - " Liquid Exception: Liquid syntax error (line 3): 'faker' tag was never closed in /Users/jamesnobles/Documents/dev projects/NewsSite/_posts/2018-12-30-what-the-hemp.markdown"

MacOS Mojave
Jekyll 3.8.5
ruby 2.3.5

Trace-
bundler: failed to load command: jekyll (/Users/jamesnobles/.rbenv/versions/2.3.5/bin/jekyll)
Liquid::SyntaxError: Liquid syntax error (line 3): 'faker' tag was never closed
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/block.rb:63:in block in parse_body' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/block_body.rb:52:in parse'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/block.rb:58:in parse_body' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/block.rb:12:in parse'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/tag.rb:10:in parse' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/block_body.rb:34:in parse'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/document.rb:10:in parse' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/document.rb:5:in parse'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/template.rb:132:in parse' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/liquid-4.0.1/lib/liquid/template.rb:116:in parse'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/liquid_renderer/file.rb:13:in block in parse' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/liquid_renderer/file.rb:49:in measure_time'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/liquid_renderer/file.rb:12:in parse' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/renderer.rb:121:in render_liquid'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/renderer.rb:79:in render_document' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/renderer.rb:62:in run'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:479:in render_regenerated' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:464:in block (2 levels) in render_docs'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:463:in each' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:463:in block in render_docs'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:462:in each_value' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:462:in render_docs'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:191:in render' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/site.rb:71:in process'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/command.rb:28:in process_site' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/commands/build.rb:65:in build'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/commands/build.rb:36:in process' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/lib/jekyll/commands/build.rb:18:in block (2 levels) in init_with_program'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in block in execute' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in each'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in execute' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in go'
/Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in program' /Users/jamesnobles/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/jekyll-3.8.5/exe/jekyll:15:in <top (required)>'
/Users/jamesnobles/.rbenv/versions/2.3.5/bin/jekyll:22:in load' /Users/jamesnobles/.rbenv/versions/2.3.5/bin/jekyll:22:in <top (required)>'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.