Sha256: 7b226c1cc29a28befef213c288222ae062571e7cc5d1faf8e1fa189e9563a97a

Contents?: true

Size: 1.39 KB

Versions: 1

Compression:

Stored size: 1.39 KB

Contents

desc: An example format.

code: |
  # Returns a random, yet pronounceable, name.
  def generate_name
    letters = ('a'..'z').to_a - %w[ c q w x ] # redundant sounds
    vowels = %w[a e i o u]
    consonants = letters - vowels
    sets = [consonants, vowels]

    length = 3 + rand(5)

    name = (0...length).map do |i|
      # alternate between consonants and vowels
      set = sets[i % sets.length]

      # choose a random letter from the set
      set[rand(set.length)]
    end.join

    name
  end

  class Node
    def name
      # dynamically compute (and store)
      # the name of this node on demand
      @name ||= generate_name
    end
  end

nodes:
  hello:
    index: true
    number: true
    silent: false
    output: |
      <h3><%= @node.type %> #<%= @node.index %>: <%= @node.name.inspect %></h3>

      My name is <%= @node.name.inspect %> and these are my properties:

      <dl style="<%= $style %>">
        <dt>args</dt>
        <dd><code><%= @node.args.inspect %></code></dd>

        <dt>index</dt>
        <dd><code><%= @node.index.inspect %></code></dd>

        <dt>number</dt>
        <dd><code><%= @node.number.inspect %></code></dd>

        <dt>trace</td>
        <dd><pre><%= @node.trace.join("\n") %></pre></dd>

        <dt>content</dt>
        <dd><%= @node.content %></dd>
      </dl>

output: |
  Welcome to the "<%= @spec[:name] %>" format.
  <%= @content %>
  That's all folks!

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gerbil-3.1.0 doc/HelloWorld.spec