Home | History | Annotate | Download | only in sample-input
      1 group Sample
      2 
      3 class_definition ::=
      4 <<<
      5 class <%= @name %><% if @superclass %> < <%= @superclass %><% end %>
      6 % if @attributes
      7 
      8 % for attr in @attributes 
      9 <%= attribute( *attr ).to_s.chomp %>
     10 % end
     11 % end
     12 % if @methods
     13 % for method in ( @methods || [] )
     14 <%= method( method ) %>
     15 % end
     16 % end
     17 end
     18 >>>
     19 
     20 attribute( name, access = 'rw' ) ::=
     21 <<<
     22 % case @access.to_s.downcase
     23 % when 'r'
     24   attr_reader :<%= @name %>
     25 % when 'w'
     26   attr_writer :<%= @name %>
     27 % else
     28   attr_accessor :<%= @name %>
     29 % end
     30 >>>
     31 
     32 method ::=
     33 <<<
     34   
     35   def <%= @name %><% if @arguments and not @arguments.empty? %>( <%= @arguments.join( ', ' ) %> )<% end %>
     36 <%= @body.gsub( /^/, '    ' ) %>
     37   end
     38 >>>
     39