| group Sample |
| |
| class_definition ::= |
| <<< |
| class <%= @name %><% if @superclass %> < <%= @superclass %><% end %> |
| % if @attributes |
| |
| % for attr in @attributes |
| <%= attribute( *attr ).to_s.chomp %> |
| % end |
| % end |
| % if @methods |
| % for method in ( @methods || [] ) |
| <%= method( method ) %> |
| % end |
| % end |
| end |
| >>> |
| |
| attribute( name, access = 'rw' ) ::= |
| <<< |
| % case @access.to_s.downcase |
| % when 'r' |
| attr_reader :<%= @name %> |
| % when 'w' |
| attr_writer :<%= @name %> |
| % else |
| attr_accessor :<%= @name %> |
| % end |
| >>> |
| |
| method ::= |
| <<< |
| |
| def <%= @name %><% if @arguments and not @arguments.empty? %>( <%= @arguments.join( ', ' ) %> )<% end %> |
| <%= @body.gsub( /^/, ' ' ) %> |
| end |
| >>> |