FFI::Generator::Enum

Public Class Methods

new(params = { }) click to toggle source
   # File lib/generator/enum.rb, line 4
4:       def initialize(params = { })
5:         super
6:         eval_items
7:       end

Public Instance Methods

to_s() click to toggle source
    # File lib/generator/enum.rb, line 8
 8:       def to_s
 9:         @items.sort { |i1, i2| i1[1] <=> i2[1] }.inject("") do |result, item|
10:           result << assignment_str(item[0], item[1]) << "\n"
11:         end
12:       end

Private Instance Methods

assignment_str(name, value) click to toggle source
    # File lib/generator/enum.rb, line 14
14:       def assignment_str(name, value)
15:         @indent_str + "#{name} = #{value}"
16:       end
eval_expr(expr) click to toggle source
    # File lib/generator/enum.rb, line 17
17:       def eval_expr(expr)
18:         if expr.include?('+')
19:           (@items[expr[/\w+/]].to_i + 1).to_s
20:         else
21:           0.to_s
22:         end
23:       end
eval_items() click to toggle source
    # File lib/generator/enum.rb, line 24
24:       def eval_items
25:         @items = {}
26:         get_items.each do |i|
27:           node = Node.new(:node => i)
28:           @items[node.get_attr('name')] = node.get_attr('enumvalueex') ? eval_expr(node.get_attr('enumvalueex')) : node.get_attr('enumvalue')
29:         end
30:         @items
31:       end
get_items() click to toggle source
    # File lib/generator/enum.rb, line 32
32:       def get_items
33:         @node / './enumitem'
34:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.