Module: WeChat::Messaging::Responder::ClassMethods

Defined in:
lib/we_chat/messaging/responder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#respondersObject (readonly)

Returns the value of attribute responders.



42
43
44
# File 'lib/we_chat/messaging/responder.rb', line 42

def responders
  @responders
end

Instance Method Details

#create_response(message) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/we_chat/messaging/responder.rb', line 51

def create_response(message)
  response_data = nil
  responder_item = matched_responder(message)
  return nil if responder_item.nil?

  case message.msg_type
  when :text
    response_result = responder_item[:proc].call(message)
    return nil if response_result.nil?
    return response_result if response_result.is_a? WeChat::Messaging::Message
    return create_text_message_response(message, response_result) if response_result.is_a? String
  end
end

#responds(message_type = :text, options = {}, &block) ⇒ Object



44
45
46
47
48
49
# File 'lib/we_chat/messaging/responder.rb', line 44

def responds(message_type = :text, options={}, &block)
  return unless block_given?
  pattern = options.delete(:pattern) || /.*/
  initialize_responders(message_type)
  @responders[message_type] << { pattern: pattern, proc: block }
end