def generate_names(name, options={})
      name = name.to_s
      effective_names = [name]
      effective_names += ["#{name}A", "#{name}W"] unless name =~ /[WA]$/
      aliases = ([options[:alias]] + [options[:aliases]]).flatten.compact
      snake_name = options[:snake_name] || name.snake_case
      camel_name = options[:camel_name] || name.camel_case
      case snake_name
        when /^is_/
          aliases << snake_name.sub(/^is_/, '') + '?'
        when /^set_/
          aliases << snake_name.sub(/^set_/, '')+ '='
        when /^get_/
          aliases << snake_name.sub(/^get_/, '')
      end
      [snake_name, camel_name, effective_names, aliases]
    end
def generate_names(name, options={})
      name = name.to_s
      effective_names = [name]
      effective_names += ["#{name}A", "#{name}W"] unless name =~ /[WA]$/
      aliases = ([options[:alias]] + [options[:aliases]]).flatten.compact
      snake_name = options[:snake_name] || name.snake_case
      camel_name = options[:camel_name] || name.camel_case
      case snake_name
        when /^is_/
          aliases << snake_name.sub(/^is_/, '') + '?'
        when /^set_/
          aliases << snake_name.sub(/^set_/, '')+ '='
        when /^get_/
          aliases << snake_name.sub(/^get_/, '')
      end
      [snake_name, camel_name, effective_names, aliases]
    end
Generates possible effective names for function in Win32 dll (name+A/W),
 camel_case, snake_case and aliases method names