telegrammer 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acbfc6f91eae3b311a5ba063b288d0d1589ee977
4
- data.tar.gz: 9168eaa97c2bd3be0ac90b8842bb42ba44305088
3
+ metadata.gz: d5bd45c16547dca85e93537a1b095c9d8d7f3d6f
4
+ data.tar.gz: 897030c54eb66cf9cb0d319aa00a3e48ea074130
5
5
  SHA512:
6
- metadata.gz: f4465ab9634eb5ac0056eb5fc18eb5c051457d4a6a54397dc2c7f1b70537721d3edc7f415f92086f9d1f59c321208164b57ffbbc149305858933c6ede0db578b
7
- data.tar.gz: 746a7fc98352c9ca819a0208277e4c854484d474657bf95a1cf45c3a1e633bd0eb1502de1603fae6305b2be07945f6fab48c5ef26ef58da00323aa60b24a4be1
6
+ metadata.gz: 9748b37b0edd3420cfc0af683665d38768378136612a260c9569fb4fe4094211cc14b8cfdf0f66ee03b04fa359b88be1ba46cc18e65597a4ee6ecdfcc131336c
7
+ data.tar.gz: 0237500a40e25bd1d02dd93d18f5d2292f843cbdf2b7bbdec04b104dbe01163d8fc7ddc64e0a0298dafcee88ef318ddeeaa05aa8d36c000cdc08066fc7c72292
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ v0.4.0
2
+ ======
3
+
4
+ * Added some methods and data types to be up to date with API version 2015-09-07 (https://core.telegram.org/bots/api-changelog#september-7-2015).
5
+
1
6
  v0.3.1
2
7
  ======
3
8
 
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/telegrammer.svg)](http://badge.fury.io/rb/telegrammer)
2
2
  [![Code Climate](https://codeclimate.com/github/mayoral/telegrammer/badges/gpa.svg)](https://codeclimate.com/github/mayoral/telegrammer)
3
3
  [![Inline docs](http://inch-ci.org/github/mayoral/telegrammer.svg?branch=master)](http://inch-ci.org/github/mayoral/telegrammer)
4
+ [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/mayoral/telegrammer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
5
 
5
6
  # Telegrammer
6
7
 
data/lib/telegrammer.rb CHANGED
@@ -2,29 +2,29 @@ require 'httpclient'
2
2
  require 'virtus'
3
3
  require 'multi_json'
4
4
 
5
- require "telegrammer/version"
6
-
7
- require "telegrammer/data_types/base"
8
- require "telegrammer/data_types/audio"
9
- require "telegrammer/data_types/channel"
10
- require "telegrammer/data_types/contact"
11
- require "telegrammer/data_types/photo_size"
12
- require "telegrammer/data_types/user"
13
- require "telegrammer/data_types/sticker"
14
- require "telegrammer/data_types/video"
15
-
16
- require "telegrammer/data_types/document"
17
- require "telegrammer/data_types/force_reply"
18
- require "telegrammer/data_types/group_chat"
19
- require "telegrammer/data_types/location"
20
- require "telegrammer/data_types/message"
21
- require "telegrammer/data_types/reply_keyboard_hide"
22
- require "telegrammer/data_types/reply_keyboard_markup"
23
- require "telegrammer/data_types/update"
24
- require "telegrammer/data_types/user_profile_photos"
25
-
26
- require "telegrammer/bot"
27
- require "telegrammer/api_response"
5
+ require 'telegrammer/version'
6
+
7
+ require 'telegrammer/data_types/base'
8
+ require 'telegrammer/data_types/audio'
9
+ require 'telegrammer/data_types/channel'
10
+ require 'telegrammer/data_types/contact'
11
+ require 'telegrammer/data_types/photo_size'
12
+ require 'telegrammer/data_types/user'
13
+ require 'telegrammer/data_types/sticker'
14
+ require 'telegrammer/data_types/video'
15
+
16
+ require 'telegrammer/data_types/document'
17
+ require 'telegrammer/data_types/force_reply'
18
+ require 'telegrammer/data_types/group_chat'
19
+ require 'telegrammer/data_types/location'
20
+ require 'telegrammer/data_types/message'
21
+ require 'telegrammer/data_types/reply_keyboard_hide'
22
+ require 'telegrammer/data_types/reply_keyboard_markup'
23
+ require 'telegrammer/data_types/update'
24
+ require 'telegrammer/data_types/user_profile_photos'
25
+
26
+ require 'telegrammer/bot'
27
+ require 'telegrammer/api_response'
28
28
 
29
29
  module Telegrammer
30
30
  module Errors
@@ -38,7 +38,7 @@ module Telegrammer
38
38
  # Error returned when a param type is invalid
39
39
  class InvalidParamTypeError < StandardError
40
40
  def initialize(parameter, current_type, allowed_types)
41
- super("Invalid parameter type: #{parameter}: #{current_type}. Allowed types: #{allowed_types.each {|type| type.class.to_s }.join(",")}.")
41
+ super("Invalid parameter type: #{parameter}: #{current_type}. Allowed types: #{allowed_types.each { |type| type.class.to_s }.join(',')}.")
42
42
  end
43
43
  end
44
44
 
@@ -9,15 +9,15 @@ module Telegrammer
9
9
  @body = response.body
10
10
 
11
11
  data = MultiJson.load(@body)
12
- @success = data["ok"]
12
+ @success = data['ok']
13
13
 
14
14
  if @success
15
- @result = data["result"]
15
+ @result = data['result']
16
16
  else
17
- raise Telegrammer::Errors::BadRequestError.new(data["error_code"], data["description"])
17
+ fail Telegrammer::Errors::BadRequestError, data['error_code'], data['description']
18
18
  end
19
19
  else
20
- raise Telegrammer::Errors::ServiceUnavailableError.new(response.status)
20
+ fail Telegrammer::Errors::ServiceUnavailableError, response.status
21
21
  end
22
22
  end
23
23
 
@@ -38,9 +38,9 @@ module Telegrammer
38
38
  #
39
39
  # @raise [Telegrammer::Errors::BadRequestError] if something goes wrong in the Telegram API servers with the params received by the operation
40
40
  # @raise [Telegrammer::Errors::ServiceUnavailableError] if Telegram servers are down
41
- def get_updates(&block)
41
+ def get_updates(&_block)
42
42
  loop do
43
- response = api_request("getUpdates", {offset: @offset, timeout: @timeout}, nil)
43
+ response = api_request('getUpdates', { offset: @offset, timeout: @timeout }, nil)
44
44
 
45
45
  response.result.each do |raw_update|
46
46
  update = Telegrammer::DataTypes::Update.new(raw_update)
@@ -69,7 +69,7 @@ module Telegrammer
69
69
  # @see https://github.com/mayoral/telegrammer/wiki/Using-webhooks
70
70
  # @return [Telegrammer::ApiResponse] Response from the API.
71
71
  def set_webhook(url)
72
- api_request("setWebhook", {url: url}, nil)
72
+ api_request('setWebhook', { url: url }, nil)
73
73
  end
74
74
 
75
75
  # Returns basic information about the bot in form of a User object. Used for testing your bot's auth token.
@@ -83,7 +83,7 @@ module Telegrammer
83
83
  #
84
84
  # @return [Telegrammer::DataTypes::User] User object with info about the bot
85
85
  def get_me
86
- response = api_request("getMe", nil, nil)
86
+ response = api_request('getMe', nil, nil)
87
87
 
88
88
  Telegrammer::DataTypes::User.new(response.result)
89
89
  end
@@ -93,6 +93,7 @@ module Telegrammer
93
93
  # @param [Hash] params hash of paramers to send to the sendMessage API operation.
94
94
  # @option params [Integer] :chat_id Required. Unique identifier for the message recipient — User or GroupChat id.
95
95
  # @option params [String] :text Required. Text of the message to be sent
96
+ # @option params [String] :parse_mode Optional. Send Markdown, if you want Telegram apps to show bold, italic and inline URLs in your bot's message.
96
97
  # @option params [Boolean] :disable_web_page_preview Optional. Disables link previews for links in this message
97
98
  # @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
98
99
  # @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.
@@ -112,6 +113,7 @@ module Telegrammer
112
113
  def send_message(params)
113
114
  extra_params_validation = {
114
115
  text: { required: true, class: [String] },
116
+ parse_mode: { required: false, class: [String] },
115
117
  disable_web_page_preview: { required: false, class: [TrueClass, FalseClass] }
116
118
  }
117
119
 
@@ -145,7 +147,7 @@ module Telegrammer
145
147
  message_id: { required: true, class: [Fixnum] }
146
148
  }
147
149
 
148
- response = api_request("forwardMessage", params, params_validation)
150
+ response = api_request('forwardMessage', params, params_validation)
149
151
 
150
152
  Telegrammer::DataTypes::Message.new(response.result)
151
153
  end
@@ -154,8 +156,8 @@ module Telegrammer
154
156
  #
155
157
  # @param [Hash] params hash of paramers to send to the sendPhoto API operation.
156
158
  # @option params [Integer] :chat_id Required. Unique identifier for the message recipient — User or GroupChat id.
157
- # @option params [File,String] :photo Required.
158
- # @option params [String] :caption Optional.
159
+ # @option params [File,String] :photo Required. Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data.
160
+ # @option params [String] :caption Optional. Photo caption (may also be used when resending photos by file_id).
159
161
  # @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
160
162
  # @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.
161
163
  #
@@ -171,7 +173,7 @@ module Telegrammer
171
173
  # @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat
172
174
  def send_photo(params)
173
175
  extra_params_validation = {
174
- photo: { required: false, class: [File, String] },
176
+ photo: { required: true, class: [File, String] },
175
177
  caption: { required: false, class: [String] }
176
178
  }
177
179
 
@@ -185,6 +187,9 @@ module Telegrammer
185
187
  # @param [Hash] params hash of paramers to send to the sendAudio API operation.
186
188
  # @option params [Integer] :chat_id Required. Unique identifier for the message recipient — User or GroupChat id.
187
189
  # @option params [File,String] audio Required. Audio file to send. You can either pass a file_id as String to resend an audio that is already on the Telegram servers, or upload a new audio file using multipart/form-data
190
+ # @option params [Integer] duration Optional. Duration of the audio in seconds.
191
+ # @option params [String] performer Optional. Performer.
192
+ # @option params [String] title Optional. Track name.
188
193
  # @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
189
194
  # @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.
190
195
  #
@@ -200,12 +205,46 @@ module Telegrammer
200
205
  # @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat
201
206
  def send_audio(params)
202
207
  extra_params_validation = {
203
- audio: { required: false, class: [File, String] }
208
+ audio: { required: true, class: [File, String] },
209
+ duration: { required: false, class: [Integer] },
210
+ performer: { required: false, class: [String] },
211
+ title: { required: false, class: [String] }
204
212
  }
205
213
 
206
214
  send_something(:audio, params, extra_params_validation)
207
215
  end
208
216
 
217
+ # Sends audio files file to a user or group chat that the users will see as a playable voice message.
218
+ #
219
+ # At this moment, Telegram only allows Ogg files encoded with the OPUS codec. If you need to send another file format, you must use #send_document.
220
+ #
221
+ # @param [Hash] params hash of paramers to send to the sendAudio API operation.
222
+ # @option params [Integer] :chat_id Required. Unique identifier for the message recipient — User or GroupChat id.
223
+ # @option params [File,String] voice Required. Audio file to send. You can either pass a file_id as String to resend an audio that is already on the Telegram servers, or upload a new audio file using multipart/form-data
224
+ # @option params [Integer] duration Optional. Duration of sent audio in seconds.
225
+ # @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
226
+ # @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.
227
+ #
228
+ # @example
229
+ # bot = Telegrammer::Bot.new('[YOUR TELEGRAM TOKEN]')
230
+ # voice_file = File.open("foo.ogg")
231
+ # bot.send_voice(chat_id: 123456789, voice: audio_file)
232
+ #
233
+ # @raise [Telegrammer::Errors::BadRequestError] if something goes wrong in the Telegram API servers with the params received by the operation
234
+ # @raise [Telegrammer::Errors::ServiceUnavailableError] if Telegram servers are down
235
+ #
236
+ # @see #send_document
237
+ # @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat
238
+ def send_voice(params)
239
+ extra_params_validation = {
240
+ voice: { required: true, class: [File, String] },
241
+ duration: { required: false, class: [Integer] }
242
+ }
243
+
244
+ send_something(:audio, params, extra_params_validation)
245
+ end
246
+
247
+
209
248
  # Sends a document to a user or group chat.
210
249
  #
211
250
  # @param [Hash] params hash of paramers to send to the sendDocument API operation.
@@ -225,7 +264,7 @@ module Telegrammer
225
264
  # @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat
226
265
  def send_document(params)
227
266
  extra_params_validation = {
228
- document: { required: false, class: [File, String] }
267
+ document: { required: true, class: [File, String] }
229
268
  }
230
269
 
231
270
  send_something(:document, params, extra_params_validation)
@@ -263,7 +302,9 @@ module Telegrammer
263
302
  #
264
303
  # @param [Hash] params hash of paramers to send to the sendVideo API operation.
265
304
  # @option params [Integer] :chat_id Required. Unique identifier for the message recipient — User or GroupChat id.
266
- # @option params [File,String] :video Video to send. You can either pass a file_id as String to resend a video that is already on the Telegram servers, or upload a new video file.
305
+ # @option params [File,String] :video Required. Video to send. You can either pass a file_id as String to resend a video that is already on the Telegram servers, or upload a new video file.
306
+ # @option params [Integer] :duration Optional. Duration of sent video in seconds.
307
+ # @option params [String] :caption Optional. Video caption (may also be used when resending videos by file_id).
267
308
  # @option params [Integer] :reply_to_message_id Optional. If the message is a reply, ID of the original message
268
309
  # @option params [Telegrammer::DataTypes::ReplyKeyboardMarkup,Telegrammer::DataTypes::ReplyKeyboardHide,Telegrammer::DataTypes::ForceReply] :reply_markup Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user.
269
310
  #
@@ -279,7 +320,9 @@ module Telegrammer
279
320
  # @return [Telegrammer::DataTypes::Message] Message object sent to the user or group chat
280
321
  def send_video(params)
281
322
  extra_params_validation = {
282
- video: { required: true, class: [File, String] }
323
+ video: { required: true, class: [File, String] },
324
+ duration: { required: false, class: [Integer] },
325
+ caption: { required: false, class: [String] }
283
326
  }
284
327
 
285
328
  send_something(:video, params, extra_params_validation)
@@ -333,7 +376,7 @@ module Telegrammer
333
376
  action: { required: true, class: [String] }
334
377
  }
335
378
 
336
- api_request("sendChatAction", params, params_validation)
379
+ api_request('sendChatAction', params, params_validation)
337
380
  end
338
381
 
339
382
  # Get a list of profile pictures for a user.
@@ -358,7 +401,7 @@ module Telegrammer
358
401
  limit: { required: false, class: [Fixnum] }
359
402
  }
360
403
 
361
- response = api_request("getUserProfilePhotos", params, params_validation)
404
+ response = api_request('getUserProfilePhotos', params, params_validation)
362
405
 
363
406
  Telegrammer::DataTypes::UserProfilePhotos.new(response.result)
364
407
  end
@@ -372,19 +415,19 @@ module Telegrammer
372
415
  validated_params = params
373
416
  else
374
417
  # Delete params not accepted by the API
375
- validated_params = params.delete_if {|k, v| !params_validation.has_key?(k) }
418
+ validated_params = params.delete_if { |k, _v| !params_validation.key?(k) }
376
419
 
377
420
  # Check all required params by the action are present
378
- params_validation.each do |key, value|
379
- if params_validation[key][:required] && !params.has_key?(key)
380
- raise Telegrammer::Errors::MissingParamsError.new(key, action)
421
+ params_validation.each do |key, _value|
422
+ if params_validation[key][:required] && !params.key?(key)
423
+ fail Telegrammer::Errors::MissingParamsError.new(key, action)
381
424
  end
382
425
  end
383
426
 
384
427
  params.each do |key, value|
385
428
  # Check param types
386
- if !params_validation[key][:class].include?(value.class)
387
- raise Telegrammer::Errors::InvalidParamTypeError.new(key, value.class, params_validation[key][:class])
429
+ unless params_validation[key][:class].include?(value.class)
430
+ fail Telegrammer::Errors::InvalidParamTypeError.new(key, value.class, params_validation[key][:class])
388
431
  end
389
432
 
390
433
  # Prepare params for sending in Typhoeus post body request
@@ -400,10 +443,8 @@ module Telegrammer
400
443
  response = @connection.post(
401
444
  "#{API_ENDPOINT}/#{api_uri}",
402
445
  validated_params,
403
- {
404
- "User-Agent" => "Telegrammer/#{Telegrammer::VERSION}",
405
- "Accept" => "application/json"
406
- }
446
+ 'User-Agent' => "Telegrammer/#{Telegrammer::VERSION}",
447
+ 'Accept' => 'application/json'
407
448
  )
408
449
 
409
450
  ApiResponse.new(response)
@@ -416,8 +457,8 @@ module Telegrammer
416
457
  reply_markup: { required: false, class: [
417
458
  Telegrammer::DataTypes::ReplyKeyboardMarkup,
418
459
  Telegrammer::DataTypes::ReplyKeyboardHide,
419
- Telegrammer::DataTypes::ForceReply,
420
- ]}
460
+ Telegrammer::DataTypes::ForceReply
461
+ ] }
421
462
  }
422
463
 
423
464
  response = api_request("send#{object_kind.to_s.capitalize}", params, extra_params_validation.merge(params_validation))
@@ -4,14 +4,18 @@ module Telegrammer
4
4
  #
5
5
  # @attr [String] file_id Unique identifier for this file
6
6
  # @attr [Integer] duration Duration of the audio in seconds as defined by sender
7
- # @attr [String] mime_type MIME type of the file as defined by sender
8
- # @attr [Integer] file_size File size
7
+ # @attr [String] performer Optional. Performer of the audio as defined by sender or by audio tags
8
+ # @attr [String] title Optional. Title of the audio as defined by sender or by audio tags
9
+ # @attr [String] mime_type Optional. MIME type of the file as defined by sender
10
+ # @attr [Integer] file_size Optional. File size
9
11
  #
10
12
  # See more at https://core.telegram.org/bots/api#audio
11
13
  class Audio < Telegrammer::DataTypes::Base
12
14
  # Unique identifier
13
15
  attribute :file_id, String
14
16
  attribute :duration, Integer
17
+ attribute :performer, String
18
+ attribute :title, String
15
19
  attribute :mime_type, String
16
20
  attribute :file_size, Integer
17
21
  end
@@ -5,14 +5,14 @@ module Telegrammer
5
5
  # @attr [String] phone_number Contact's phone number
6
6
  # @attr [String] first_name Contact's first name
7
7
  # @attr [String] last_name Optional. Contact's last name
8
- # @attr [String] user_id Optional. Contact's user identifier in Telegram
8
+ # @attr [Integer] user_id Optional. Contact's user identifier in Telegram
9
9
  #
10
10
  # See more at https://core.telegram.org/bots/api#contact
11
11
  class Contact < Telegrammer::DataTypes::Base
12
12
  attribute :phone_number, String
13
13
  attribute :first_name, String
14
14
  attribute :last_name, String
15
- attribute :user_id, String
15
+ attribute :user_id, Integer
16
16
  end
17
17
  end
18
18
  end
@@ -15,6 +15,8 @@ module Telegrammer
15
15
  # @attr [Telegrammer::DataTypes::PhotoSize] photo Optional. Message is a photo, available sizes of the photo
16
16
  # @attr [Telegrammer::DataTypes::Sticker] sticker Optional. Message is a sticker, information about the sticker
17
17
  # @attr [Telegrammer::DataTypes::Video] video Optional. Message is a video, information about the video
18
+ # @attr [Telegrammer::DataTypes::Voice] voice Optional. Message is a voice message, information about the file
19
+ # @attr [String] caption Optional. Caption for the photo or video
18
20
  # @attr [Telegrammer::DataTypes::Contact] contact Optional. Message is a shared contact, information about the contact
19
21
  # @attr [Telegrammer::DataTypes::Location] location Optional. Message is a shared location, information about the location
20
22
  # @attr [Telegrammer::DataTypes::User] new_chat_participant Optional. A new member was added to the group, information about them (this member may be bot itself)
@@ -39,6 +41,7 @@ module Telegrammer
39
41
  attribute :photo, Array[PhotoSize]
40
42
  attribute :sticker, Sticker
41
43
  attribute :video, Video
44
+ attribute :voice, Voice
42
45
  attribute :contact, Contact
43
46
  attribute :location, Location
44
47
  attribute :new_chat_participant, User
@@ -9,7 +9,6 @@ module Telegrammer
9
9
  # @attr [Telegrammer::DataTypes::PhotoSize] thumb Video thumbnail
10
10
  # @attr [String] mime_type Optional. Mime type of a file as defined by sender
11
11
  # @attr [String] file_size Optional. File size
12
- # @attr [String] caption Optional. Text description of the video (usually empty)
13
12
  #
14
13
  # See more at https://core.telegram.org/bots/api#video
15
14
  class Video < Telegrammer::DataTypes::Base
@@ -20,7 +19,6 @@ module Telegrammer
20
19
  attribute :thumb, PhotoSize
21
20
  attribute :mime_type, String
22
21
  attribute :file_size, Integer
23
- attribute :caption, String
24
22
  end
25
23
  end
26
24
  end
@@ -0,0 +1,18 @@
1
+ module Telegrammer
2
+ module DataTypes
3
+ # Telegram Voice data type
4
+ #
5
+ # @attr [String] file_id Unique file identifier
6
+ # @attr [Integer] duration Duration of the audio in seconds as defined by sender
7
+ # @attr [String] mime_type Optional. Mime type of a file as defined by sender
8
+ # @attr [String] file_size Optional. File size
9
+ #
10
+ # See more at https://core.telegram.org/bots/api#video
11
+ class Voice < Telegrammer::DataTypes::Base
12
+ attribute :file_id, String
13
+ attribute :duration, Integer
14
+ attribute :mime_type, String
15
+ attribute :file_size, Integer
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module Telegrammer
2
- VERSION = "0.3.1"
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegrammer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Mayoral
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2015-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -112,6 +112,7 @@ files:
112
112
  - lib/telegrammer/data_types/user.rb
113
113
  - lib/telegrammer/data_types/user_profile_photos.rb
114
114
  - lib/telegrammer/data_types/video.rb
115
+ - lib/telegrammer/data_types/voice.rb
115
116
  - lib/telegrammer/version.rb
116
117
  - telegrammer.gemspec
117
118
  homepage: https://github.com/mayoral/telegrammer