Skip to content
/ x_ray Public

A gem that helps easily display code examples

License

Notifications You must be signed in to change notification settings

tiffling/x_ray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x_ray

x_ray is a gem that helps display code examples. Intended to be used as a lightweight tool for establishing a style guide. Supports plain HTML and ERB.

Installation

Include gem in Gemfile:

gem 'x_ray'

Import CSS file in application.css

@import 'x_ray/prettifier';

Include helper in application_helper.rb

include XRay::Helper

Usage

Show HTML example:

<%= x_ray do %>
  <ol>
    <li>First thing</li>
    <li>Second thing</li>
  </ol>
<% end %>

Show HTML example using ERB:

<%= x_ray do %>
  <%= submit_tag 'Set Time Zone', class: 'button button-primary' %>
<% end %>

Show ERB example:

<%= x_ray_erb(
  <<-ERB
    \<%= submit_tag 'Set Time Zone', class: 'button button-primary' %\>
  ERB
) %>

Show ERB example that inserts with a block:
Due to ERB/Rails wonkiness, the ability to use <%= with a block is actually a hack (http://stackoverflow.com/questions/17374274/why-is-this-an-error-with-erb); so a hack was necessary to make this to work with x_ray. Note: passing ERB into the <%= block will not render the block in the "code scan" properly, please use x_ray_manual for this case.

<%= x_ray_erb_insert_with_block(:render, layout: 'components/collapsable', locals: { heading: 'My virtual training plan'}) do %>
  <div class="box-small">
    <p class="outer-box-none">look at all this fun stuff in here!</p>
  </div>
<% end %>

Show ERB example manually:
Use this for nitty gritty corner cases.

<%= x_ray_manual(
  <<-ERB
    \<% provide(:body) do %\>
      \<%= render layout: 'components/collapsable', locals: { heading: 'My virtual training plan'} do %\>
        Foo Bar!
      \<% end %\>
    \<% end %\>
    \<%= yield(:body) %\>
  ERB
) do %>
  <% provide(:body) do %>
    <%= render layout: 'components/collapsable', locals: { heading: 'My virtual training plan', unique_key: '1sdasd', collapsable: nil} do %>
      Foo Bar!
    <% end %>
  <% end %>

  <%= yield(:body) %>
<% end %>

Customization

You can customize the output by overriding the default styles.

Example:

.x-ray-block {
  .example {
    background-color: blue;
    padding: 40px;
  }

  .code-scan {
    background-color: red;
    padding: 40px;
  }
}

About

A gem that helps easily display code examples

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published