Module: FantasticRobot

Defined in:
lib/fantastic_robot.rb,
lib/fantastic_robot/version.rb,
lib/fantastic_robot/connection.rb,
lib/fantastic_robot/model/base.rb,
lib/fantastic_robot/model/chat.rb,
lib/fantastic_robot/model/file.rb,
lib/fantastic_robot/model/user.rb,
lib/fantastic_robot/model/update.rb,
lib/fantastic_robot/request/base.rb,
lib/fantastic_robot/configuration.rb,
lib/fantastic_robot/model/message.rb,
lib/fantastic_robot/request/get_me.rb,
lib/fantastic_robot/request/send_audio.rb,
lib/fantastic_robot/request/send_photo.rb,
lib/fantastic_robot/request/send_video.rb,
lib/fantastic_robot/request/send_voice.rb,
lib/fantastic_robot/request/set_webhook.rb,
lib/fantastic_robot/request/send_message.rb,
lib/fantastic_robot/request/send_sticker.rb,
lib/fantastic_robot/model/attachment/base.rb,
lib/fantastic_robot/request/send_document.rb,
lib/fantastic_robot/request/send_location.rb,
lib/fantastic_robot/model/attachment/audio.rb,
lib/fantastic_robot/model/attachment/video.rb,
lib/fantastic_robot/model/attachment/voice.rb,
lib/fantastic_robot/request/forward_message.rb,
lib/fantastic_robot/model/attachment/contact.rb,
lib/fantastic_robot/model/attachment/sticker.rb,
lib/fantastic_robot/request/send_chat_action.rb,
lib/fantastic_robot/model/attachment/document.rb,
lib/fantastic_robot/model/attachment/location.rb,
lib/fantastic_robot/model/attachment/photo_size.rb,
lib/generators/fantastic_robot/install_generator.rb

Defined Under Namespace

Modules: Generators, Model, Request Classes: Configuration, Connection

Constant Summary collapse

VERSION =
"0.1.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



11
12
13
# File 'lib/fantastic_robot.rb', line 11

def configuration
  @configuration
end

.connectionObject (readonly)

Returns the value of attribute connection.



12
13
14
# File 'lib/fantastic_robot.rb', line 12

def connection
  @connection
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



28
29
30
31
# File 'lib/fantastic_robot.rb', line 28

def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end

.initialize!Object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fantastic_robot.rb', line 15

def self.initialize!
  raise ArgumentError, "API Key is needed." if (self.configuration.api_key.blank?)

  if (self.configuration.delivery_method == :webhook)
    unless (self.configuration.callback_url.blank?)
      # Register the webhook against Telegram
      register_webhook
    else
      raise ArgumentError, 'Webhook method requires a callback URL'
    end
  end
end

.register_webhookObject

Function to register the configured webhook against the Telegram API.



44
45
46
# File 'lib/fantastic_robot.rb', line 44

def self.register_webhook
  FantasticRobot::Request::SetWebhook.new(url: self.configuration.callback_url).send_request
end

.response_json(request) ⇒ Object

Method to respond to an update with a request. It can manage a Request object or a hash.



52
53
54
55
# File 'lib/fantastic_robot.rb', line 52

def self.response_json(request)
  return nil unless request.is_a?(Hash) || request.is_a?(FantasticRobot::Request::Base)
  request.to_h
end