Module: Kotoshu::Keyboard

Defined in:
lib/kotoshu/keyboard.rb,
lib/kotoshu/keyboard/layout.rb,
lib/kotoshu/keyboard/registry.rb,
lib/kotoshu/keyboard/layouts/azerty.rb,
lib/kotoshu/keyboard/layouts/dvorak.rb,
lib/kotoshu/keyboard/layouts/jcuken.rb,
lib/kotoshu/keyboard/layouts/qwerty.rb,
lib/kotoshu/keyboard/layouts/qwertz.rb

Overview

Keyboard layout system for Kotoshu

This module provides access to keyboard layouts for typo detection and suggestion ranking in multi-language spell checking.

Examples:

Getting a keyboard layout for a language

layout = Kotoshu::Keyboard.layout_for('de')
layout.distance('z', 'y')  # => 1 (adjacent on QWERTZ)

Getting a layout by name

dvorak = Kotoshu::Keyboard.layout_by_name('Dvorak')
dvorak.distance('a', 'e')  # => 2 (home row on Dvorak)

Defined Under Namespace

Modules: Layouts Classes: Layout, Registry

Class Method Summary collapse

Class Method Details

.available_layoutsArray<Layout>

Get all available layouts

Returns:

  • (Array<Layout>)

    list of all registered layouts



40
41
42
# File 'lib/kotoshu/keyboard.rb', line 40

def available_layouts
  Registry.available_layouts
end

.layout_by_name(name) ⇒ Layout?

Get keyboard layout by name

Parameters:

  • name (String, Symbol)

    the layout name (e.g., ‘QWERTY’, ‘Dvorak’)

Returns:

  • (Layout, nil)

    the layout, or nil if not found



33
34
35
# File 'lib/kotoshu/keyboard.rb', line 33

def layout_by_name(name)
  Registry.layout_by_name(name)
end

.layout_for(language_code) ⇒ Layout

Get keyboard layout for a language code

Parameters:

  • language_code (String)

    the language code (e.g., ‘en’, ‘de’, ‘fr’, ‘ru’)

Returns:

  • (Layout)

    the keyboard layout for the language



25
26
27
# File 'lib/kotoshu/keyboard.rb', line 25

def layout_for(language_code)
  Registry.layout_for(language_code)
end

.supported_languagesArray<String>

Get all supported language codes

Returns:

  • (Array<String>)

    list of all language codes across all layouts



47
48
49
# File 'lib/kotoshu/keyboard.rb', line 47

def supported_languages
  Registry.supported_languages
end

.supports_language?(language_code) ⇒ Boolean

Check if a language is supported

Parameters:

  • language_code (String)

    the language code to check

Returns:

  • (Boolean)

    true if the language is supported by any layout



55
56
57
# File 'lib/kotoshu/keyboard.rb', line 55

def supports_language?(language_code)
  Registry.supports_language?(language_code)
end