Sha256: 77f9d6c382e8cfbb568a176c45fa71d5a7262975ad6e17dcecd3504b8a025d95

Contents?: true

Size: 835 Bytes

Versions: 5

Compression:

Stored size: 835 Bytes

Contents

# -*- coding: utf-8 -*-


module Spacy


  class Key

    include Comparable

    attr_reader :key, :shift, :ctrl, :alt

    def initialize (key, shift = false, ctrl = false, alt = false)
      @key, @shift, @ctrl, @alt = key.to_sym, shift, ctrl, alt
    end

    def to_s ()
      s = ''
      s << '/' if @alt
      s << '^' if @ctrl
      s << @key
      s
    end

    def << (key)
      raise ArgumentError unless key.kind_of? Key
      KeyStroke.new << self << key
    end

    def hash ()
      to_s.hash
    end

    def eql? (obj)
      to_s == obj.to_s
    end

    def <=> (obj)
      to_s <=> obj.to_s
    end

    def inspect ()
      mods = ''
      mods << ', shift' if @shift
      mods << ', ctrl'  if @ctrl
      mods << ', alt'   if @alt
      "#<Spacy::Key '#{@key.to_s}#{mods}'>"
    end

  end# Key


end # Spacy

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spacy-0.1.9 lib/spacy/key.rb
spacy-0.1.8 lib/spacy/key.rb
spacy-0.1.6 lib/spacy/key.rb
spacy-0.1.5 lib/spacy/key.rb
spacy-0.1.4 lib/spacy/key.rb