telegram-bot-types 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +14 -1
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +12 -0
  5. data/Gemfile +2 -0
  6. data/README.md +1 -1
  7. data/Rakefile +2 -0
  8. data/bin/console +1 -0
  9. data/bin/install_git_hooks +2 -1
  10. data/lib/telegram/bot/types/animation.rb +6 -0
  11. data/lib/telegram/bot/types/audio.rb +5 -0
  12. data/lib/telegram/bot/types/base.rb +31 -5
  13. data/lib/telegram/bot/types/callback_game.rb +2 -0
  14. data/lib/telegram/bot/types/callback_query.rb +2 -0
  15. data/lib/telegram/bot/types/chat.rb +6 -0
  16. data/lib/telegram/bot/types/chat_invite_link.rb +16 -0
  17. data/lib/telegram/bot/types/chat_location.rb +12 -0
  18. data/lib/telegram/bot/types/chat_member.rb +12 -4
  19. data/lib/telegram/bot/types/chat_member_updated.rb +16 -0
  20. data/lib/telegram/bot/types/chat_permissions.rb +18 -0
  21. data/lib/telegram/bot/types/chat_photo.rb +4 -0
  22. data/lib/telegram/bot/types/chosen_inline_result.rb +2 -0
  23. data/lib/telegram/bot/types/contact.rb +3 -0
  24. data/lib/telegram/bot/types/dice.rb +12 -0
  25. data/lib/telegram/bot/types/document.rb +3 -0
  26. data/lib/telegram/bot/types/encrypted_credentials.rb +13 -0
  27. data/lib/telegram/bot/types/encrypted_passport_element.rb +20 -0
  28. data/lib/telegram/bot/types/file.rb +3 -0
  29. data/lib/telegram/bot/types/force_reply.rb +3 -1
  30. data/lib/telegram/bot/types/game.rb +4 -2
  31. data/lib/telegram/bot/types/game_high_score.rb +2 -0
  32. data/lib/telegram/bot/types/inline_keyboard_button.rb +3 -0
  33. data/lib/telegram/bot/types/inline_keyboard_markup.rb +3 -1
  34. data/lib/telegram/bot/types/inline_query.rb +2 -0
  35. data/lib/telegram/bot/types/inline_query_result_article.rb +3 -1
  36. data/lib/telegram/bot/types/inline_query_result_audio.rb +4 -1
  37. data/lib/telegram/bot/types/inline_query_result_cached_audio.rb +4 -1
  38. data/lib/telegram/bot/types/inline_query_result_cached_document.rb +4 -1
  39. data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +4 -1
  40. data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +4 -1
  41. data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +4 -1
  42. data/lib/telegram/bot/types/inline_query_result_cached_sticker.rb +3 -1
  43. data/lib/telegram/bot/types/inline_query_result_cached_video.rb +4 -1
  44. data/lib/telegram/bot/types/inline_query_result_cached_voice.rb +4 -1
  45. data/lib/telegram/bot/types/inline_query_result_contact.rb +4 -1
  46. data/lib/telegram/bot/types/inline_query_result_document.rb +4 -1
  47. data/lib/telegram/bot/types/inline_query_result_game.rb +3 -1
  48. data/lib/telegram/bot/types/inline_query_result_gif.rb +4 -1
  49. data/lib/telegram/bot/types/inline_query_result_location.rb +7 -1
  50. data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +5 -1
  51. data/lib/telegram/bot/types/inline_query_result_photo.rb +4 -1
  52. data/lib/telegram/bot/types/inline_query_result_venue.rb +6 -1
  53. data/lib/telegram/bot/types/inline_query_result_video.rb +4 -1
  54. data/lib/telegram/bot/types/inline_query_result_voice.rb +4 -1
  55. data/lib/telegram/bot/types/input_contact_message_content.rb +3 -0
  56. data/lib/telegram/bot/types/input_location_message_content.rb +6 -0
  57. data/lib/telegram/bot/types/input_media_animation.rb +18 -0
  58. data/lib/telegram/bot/types/input_media_audio.rb +18 -0
  59. data/lib/telegram/bot/types/input_media_document.rb +17 -0
  60. data/lib/telegram/bot/types/input_media_photo.rb +14 -0
  61. data/lib/telegram/bot/types/input_media_video.rb +18 -0
  62. data/lib/telegram/bot/types/input_message_content.rb +2 -0
  63. data/lib/telegram/bot/types/input_text_message_content.rb +2 -0
  64. data/lib/telegram/bot/types/input_venue_message_content.rb +5 -0
  65. data/lib/telegram/bot/types/invoice.rb +2 -0
  66. data/lib/telegram/bot/types/keyboard_button.rb +3 -0
  67. data/lib/telegram/bot/types/keyboard_button_poll_type.rb +11 -0
  68. data/lib/telegram/bot/types/labeled_price.rb +2 -0
  69. data/lib/telegram/bot/types/location.rb +6 -0
  70. data/lib/telegram/bot/types/login_url.rb +14 -0
  71. data/lib/telegram/bot/types/mask_position.rb +2 -0
  72. data/lib/telegram/bot/types/message.rb +22 -4
  73. data/lib/telegram/bot/types/message_auto_delete_timer_changed.rb +11 -0
  74. data/lib/telegram/bot/types/message_entity.rb +3 -0
  75. data/lib/telegram/bot/types/order_info.rb +2 -0
  76. data/lib/telegram/bot/types/passport_data.rb +12 -0
  77. data/lib/telegram/bot/types/passport_element_error_data_field.rb +15 -0
  78. data/lib/telegram/bot/types/passport_element_error_file.rb +14 -0
  79. data/lib/telegram/bot/types/passport_element_error_files.rb +14 -0
  80. data/lib/telegram/bot/types/passport_element_error_front_side.rb +14 -0
  81. data/lib/telegram/bot/types/passport_element_error_reverse_side.rb +14 -0
  82. data/lib/telegram/bot/types/passport_element_error_selfie.rb +14 -0
  83. data/lib/telegram/bot/types/passport_element_error_translation_file.rb +14 -0
  84. data/lib/telegram/bot/types/passport_element_error_translation_files.rb +14 -0
  85. data/lib/telegram/bot/types/passport_element_error_unspecified.rb +14 -0
  86. data/lib/telegram/bot/types/passport_file.rb +14 -0
  87. data/lib/telegram/bot/types/photo_size.rb +3 -0
  88. data/lib/telegram/bot/types/poll.rb +23 -0
  89. data/lib/telegram/bot/types/poll_answer.rb +13 -0
  90. data/lib/telegram/bot/types/poll_option.rb +12 -0
  91. data/lib/telegram/bot/types/pre_checkout_query.rb +2 -0
  92. data/lib/telegram/bot/types/proximity_alert_triggered.rb +13 -0
  93. data/lib/telegram/bot/types/reply_keyboard_markup.rb +6 -4
  94. data/lib/telegram/bot/types/reply_keyboard_remove.rb +3 -1
  95. data/lib/telegram/bot/types/response.rb +3 -1
  96. data/lib/telegram/bot/types/shipping_address.rb +2 -0
  97. data/lib/telegram/bot/types/shipping_option.rb +3 -1
  98. data/lib/telegram/bot/types/shipping_query.rb +2 -0
  99. data/lib/telegram/bot/types/sticker.rb +4 -0
  100. data/lib/telegram/bot/types/sticker_set.rb +5 -1
  101. data/lib/telegram/bot/types/successful_payment.rb +2 -0
  102. data/lib/telegram/bot/types/update.rb +6 -0
  103. data/lib/telegram/bot/types/user.rb +5 -0
  104. data/lib/telegram/bot/types/user_profile_photos.rb +3 -1
  105. data/lib/telegram/bot/types/venue.rb +5 -0
  106. data/lib/telegram/bot/types/version.rb +3 -1
  107. data/lib/telegram/bot/types/video.rb +4 -0
  108. data/lib/telegram/bot/types/video_note.rb +3 -0
  109. data/lib/telegram/bot/types/voice.rb +3 -0
  110. data/lib/telegram/bot/types/voice_chat_ended.rb +11 -0
  111. data/lib/telegram/bot/types/voice_chat_participants_invited.rb +11 -0
  112. data/lib/telegram/bot/types/voice_chat_started.rb +10 -0
  113. data/lib/telegram/bot/types/webhook_info.rb +6 -3
  114. data/lib/telegram/bot/types.rb +12 -72
  115. data/telegram-bot-types.gemspec +7 -5
  116. metadata +49 -17
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PassportElementErrorTranslationFile < Base
7
+ attribute :source, String.default('translation_file')
8
+ attribute :type, String
9
+ attribute :file_hash, String
10
+ attribute :message, String
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PassportElementErrorTranslationFiles < Base
7
+ attribute :source, String.default('translation_files')
8
+ attribute :type, String
9
+ attribute :file_hashes, Array.of(String)
10
+ attribute :message, String
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PassportElementErrorUnspecified < Base
7
+ attribute :source, String.default('unspecified')
8
+ attribute :type, String
9
+ attribute :element_hash, String
10
+ attribute :message, String
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PassportFile < Base
7
+ attribute :file_id, String
8
+ attribute :file_unique_id, String
9
+ attribute :file_size, Integer
10
+ attribute :file_date, Integer
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class PhotoSize < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :width, Integer
7
10
  attribute :height, Integer
8
11
  attribute :file_size, Integer
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class Poll < Base
7
+ attribute :id, String
8
+ attribute :question, String
9
+ attribute :options, Array.of(PollOption)
10
+ attribute :total_voter_count, Integer
11
+ attribute :is_closed, Boolean
12
+ attribute :is_anonymous, Boolean
13
+ attribute :type, String
14
+ attribute :allows_multiple_answers, Boolean
15
+ attribute :correct_option_id, Integer
16
+ attribute :explanation, String
17
+ attribute :explanation_entities, Array.of(MessageEntity)
18
+ attribute :open_period, Integer
19
+ attribute :close_date, Integer
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PollAnswer < Base
7
+ attribute :poll_id, String
8
+ attribute :user, User
9
+ attribute :option_ids, Array.of(Integer)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class PollOption < Base
7
+ attribute :text, String
8
+ attribute :voter_count, Integer
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ProximityAlertTriggered < Base
7
+ attribute :traveler, User
8
+ attribute :watcher, User
9
+ attribute :distance, Integer
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class ReplyKeyboardMarkup < Base
5
- attribute :keyboard, [[KeyboardButton]]
6
- attribute :resize_keyboard, Boolean, default: false
7
- attribute :one_time_keyboard, Boolean, default: false
8
- attribute :selective, Boolean, default: false
7
+ attribute :keyboard, Array.of(Array.of(KeyboardButton))
8
+ attribute :resize_keyboard, Boolean.default(false)
9
+ attribute :one_time_keyboard, Boolean.default(false)
10
+ attribute :selective, Boolean.default(false)
9
11
  end
10
12
  end
11
13
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class ReplyKeyboardRemove < Base
5
7
  attribute :remove_keyboard, Boolean
6
- attribute :selective, Boolean, default: false
8
+ attribute :selective, Boolean.default(false)
7
9
  end
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -79,7 +81,7 @@ module Telegram
79
81
  # return either object ot true, so it bypasses true value as is.
80
82
  def wrap(object, type)
81
83
  return object if object == true
82
- if type.is_a?(Array)
84
+ if type.is_a?(::Array)
83
85
  type = type.first
84
86
  object.map { |x| type.new(x) }
85
87
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class ShippingOption < Base
5
7
  attribute :id, String
6
8
  attribute :title, String
7
- attribute :prices, [LabeledPrice]
9
+ attribute :prices, Array.of(LabeledPrice)
8
10
  end
9
11
  end
10
12
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -1,10 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class Sticker < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :width, Integer
7
10
  attribute :height, Integer
11
+ attribute :is_animated, Boolean
8
12
  attribute :thumb, PhotoSize
9
13
  attribute :emoji, String
10
14
  attribute :set_name, String
@@ -1,11 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class StickerSet < Base
5
7
  attribute :name, String
6
8
  attribute :title, String
9
+ attribute :is_animated, Boolean
7
10
  attribute :contains_masks, Boolean
8
- attribute :stickers, [Sticker]
11
+ attribute :stickers, Array.of(Sticker)
12
+ attribute :thumb, PhotoSize
9
13
  end
10
14
  end
11
15
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -12,6 +14,10 @@ module Telegram
12
14
  attribute :callback_query, CallbackQuery
13
15
  attribute :shipping_query, ShippingQuery
14
16
  attribute :pre_checkout_query, PreCheckoutQuery
17
+ attribute :poll, Poll
18
+ attribute :poll_answer, PollAnswer
19
+ attribute :my_chat_member, ChatMemberUpdated
20
+ attribute :chat_member, ChatMemberUpdated
15
21
  end
16
22
  end
17
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -8,6 +10,9 @@ module Telegram
8
10
  attribute :last_name, String
9
11
  attribute :username, String
10
12
  attribute :language_code, String
13
+ attribute :can_join_groups, Boolean
14
+ attribute :can_read_all_group_messages, Boolean
15
+ attribute :supports_inline_queries, Boolean
11
16
  end
12
17
  end
13
18
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class UserProfilePhotos < Base
5
7
  attribute :total_count, Integer
6
- attribute :photos, [[PhotoSize]]
8
+ attribute :photos, Array.of(Array.of(PhotoSize))
7
9
  end
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -6,6 +8,9 @@ module Telegram
6
8
  attribute :title, String
7
9
  attribute :address, String
8
10
  attribute :foursquare_id, String
11
+ attribute :foursquare_type, String
12
+ attribute :google_place_id, String
13
+ attribute :google_place_type, String
9
14
  end
10
15
  end
11
16
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
- VERSION = '0.6.1'.freeze
6
+ VERSION = '0.7.0'
5
7
 
6
8
  def self.gem_version
7
9
  Gem::Version.new VERSION
@@ -1,12 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class Video < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :width, Integer
7
10
  attribute :height, Integer
8
11
  attribute :duration, Integer
9
12
  attribute :thumb, PhotoSize
13
+ attribute :file_name, String
10
14
  attribute :mime_type, String
11
15
  attribute :file_size, Integer
12
16
  end
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class VideoNote < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :length, Integer
7
10
  attribute :duration, Integer
8
11
  attribute :thumb, PhotoSize
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class Voice < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :duration, Integer
7
10
  attribute :mime_type, String
8
11
  attribute :file_size, Integer
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class VoiceChatEnded < Base
7
+ attribute :duration, Integer
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class VoiceChatParticipantsInvited < Base
7
+ attribute :users, Array.of(User)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class VoiceChatStarted < Base
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,14 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class WebhookInfo < Base
5
7
  attribute :url, String
6
8
  attribute :has_custom_certificate, Boolean
7
- attribute :pending_update_count, Integer
9
+ attribute :pending_update_count, Integer
10
+ attribute :ip_address, String
8
11
  attribute :last_error_date, Integer
9
- attribute :last_error_message, String
12
+ attribute :last_error_message, String
10
13
  attribute :max_connections, Integer
11
- attribute :allowed_updates, [String]
14
+ attribute :allowed_updates, Array.of(String)
12
15
  end
13
16
  end
14
17
  end
@@ -1,87 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+
1
5
  module Telegram
2
6
  module Bot
3
7
  module Types
4
8
  module_function
5
9
 
6
10
  # Simple implementation for internal use only.
11
+ # rubocop:disable all
7
12
  def camelize(str)
8
13
  str.gsub(/(?:_|(\/)|^)([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" }
9
14
  end
15
+ # rubocop:enable all
10
16
 
11
- %w[
12
- animation
13
- audio
14
- base
15
- callback_game
16
- callback_query
17
- chat
18
- chat_member
19
- chat_photo
20
- chosen_inline_result
21
- contact
22
- document
23
- file
24
- force_reply
25
- game
26
- game_high_score
27
- inline_keyboard_button
28
- inline_keyboard_markup
29
- inline_query
30
- inline_query_result_article
31
- inline_query_result_audio
32
- inline_query_result_cached_audio
33
- inline_query_result_cached_document
34
- inline_query_result_cached_gif
35
- inline_query_result_cached_mpeg4_gif
36
- inline_query_result_cached_photo
37
- inline_query_result_cached_sticker
38
- inline_query_result_cached_video
39
- inline_query_result_cached_voice
40
- inline_query_result_contact
41
- inline_query_result_document
42
- inline_query_result_game
43
- inline_query_result_gif
44
- inline_query_result_location
45
- inline_query_result_mpeg4_gif
46
- inline_query_result_photo
47
- inline_query_result_venue
48
- inline_query_result_video
49
- inline_query_result_voice
50
- input_contact_message_content
51
- input_location_message_content
52
- input_message_content
53
- input_text_message_content
54
- input_venue_message_content
55
- invoice
56
- keyboard_button
57
- labeled_price
58
- location
59
- mask_position
60
- message
61
- message_entity
62
- order_info
63
- photo_size
64
- pre_checkout_query
65
- reply_keyboard_markup
66
- reply_keyboard_remove
67
- response
68
- shipping_address
69
- shipping_option
70
- shipping_query
71
- sticker
72
- sticker_set
73
- successful_payment
74
- update
75
- user
76
- user_profile_photos
77
- venue
78
- video
79
- video_note
80
- voice
81
- webhook_info
82
- ].each do |type|
17
+ files = Pathname(__FILE__).dirname.join('types').children.map { |x| x.basename.to_s }
18
+ types = files.select { |x| x.end_with?('.rb') }.map { |x| x.gsub(/\.rb$/, '') }
19
+ types -= ['version']
20
+ types.each do |type|
83
21
  autoload camelize(type), "telegram/bot/types/#{type}"
84
22
  end
85
23
  end
86
24
  end
87
25
  end
26
+
27
+ require 'telegram/bot/types/version'
@@ -1,4 +1,6 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
 
4
6
  require 'telegram/bot/types/version'
@@ -18,13 +20,13 @@ Gem::Specification.new do |spec|
18
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
21
  spec.require_paths = ['lib']
20
22
 
21
- spec.add_dependency 'virtus', '~> 1.0'
23
+ spec.add_dependency 'dry-struct', '~> 1.0'
22
24
 
23
- spec.add_development_dependency 'bundler', '~> 1.9'
24
- spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'bundler', '> 1.16'
26
+ spec.add_development_dependency 'rake', '~> 13.0'
25
27
  spec.add_development_dependency 'rspec', '~> 3.3'
26
28
  spec.add_development_dependency 'rspec-its', '~> 1.1'
27
29
 
28
30
  spec.add_development_dependency 'pry', '~> 0.10'
29
- spec.add_development_dependency 'rubocop', '~> 0.52.0'
31
+ spec.add_development_dependency 'rubocop', '~> 0.81.0'
30
32
  end