class FFIGen::Define

Public Class Methods

new(generator, name, parameters, value) click to toggle source
# File lib/ffi_gen.rb, line 127
def initialize(generator, name, parameters, value)
  @generator = generator
  @name = name
  @parameters = parameters
  @value = value
end

Public Instance Methods

write_java(writer) click to toggle source
# File lib/ffi_gen/java_output.rb, line 258
def write_java(writer)
  parts = @value.map { |v|
    if v.is_a? Array
      case v[0]
      when :method then v[1].to_java_downcase
      when :constant then v[1].to_java_constant
      else raise ArgumentError
      end
    else
      v
    end
  }
  if @parameters
    # not implemented
  else
    writer.puts "public static int #{@name.to_java_constant} = #{parts.join};", ""
  end
end
write_ruby(writer) click to toggle source
# File lib/ffi_gen/ruby_output.rb, line 189
def write_ruby(writer)
  parts = @value.map { |v|
    if v.is_a? Array
      case v[0]
      when :method then v[1].to_ruby_downcase
      when :constant then v[1].to_ruby_constant
      else raise ArgumentError
      end
    else
      v
    end
  }
  if @parameters
    writer.puts "def #{@name.to_ruby_downcase}(#{@parameters.join(", ")})"
    writer.indent do
      writer.puts parts.join
    end
    writer.puts "end", ""
  else
    writer.puts "#{@name.to_ruby_constant} = #{parts.join}", ""
  end
end