Sha256: da0582ffbb99ef8db239375b0514de7ce106fba16c662383aff9dc06d67a2c9b

Contents?: true

Size: 998 Bytes

Versions: 3

Compression:

Stored size: 998 Bytes

Contents

module MatrixQQ
  class QQ
    SIGN = %i[
      message
      private
      group
      get_group_list
      event
      group_upload
      group_admin
      group_decrease
      group_increase
      friend_add
      friend_request
      join_request
      invite_request
      all
      unknow
    ].freeze

    class << self
      SIGN.each { |i| attr_accessor i }
    end
    SIGN.each { |i| QQ.send (i.to_s + '='), [] }

    attr_reader :dbus, :info
    attr_accessor :matrix_dbus

    def initialize(dbus)
      @dbus = DBus.new dbus
      reg
    end

    def reg
      SIGN.each do |i|
        @dbus.obj.on_signal i.to_s do |json|
          parse json
          info = @info
          QQ.send(i).each do |func|
            puts "Start #{func.name}" if $VERBOSE
            func.new(@dbus, @matrix_dbus, info.dup).run
            puts "End #{func.name}" if $VERBOSE
          end
        end
      end
    end

    private

    def parse(json)
      @info = JSON.parse json
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
matrix_qq-0.2.1 lib/matrix_qq/qq/qq.rb
matrix_qq-0.2.0 lib/matrix_qq/qq/qq.rb
matrix_qq-0.1.1 lib/matrix_qq/qq/qq.rb