telegram-bot-ruby 0.23.0 → 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/.env.sample +2 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +2 -1
  5. data/README.md +25 -13
  6. data/Rakefile +43 -0
  7. data/lib/telegram/bot/api.rb +3 -1
  8. data/lib/telegram/bot/types/animation.rb +9 -9
  9. data/lib/telegram/bot/types/audio.rb +9 -9
  10. data/lib/telegram/bot/types/base.rb +3 -2
  11. data/lib/telegram/bot/types/bot_command.rb +2 -2
  12. data/lib/telegram/bot/types/bot_command_scope_all_chat_administrators.rb +1 -1
  13. data/lib/telegram/bot/types/bot_command_scope_all_group_chats.rb +1 -1
  14. data/lib/telegram/bot/types/bot_command_scope_all_private_chats.rb +1 -1
  15. data/lib/telegram/bot/types/bot_command_scope_chat.rb +2 -2
  16. data/lib/telegram/bot/types/bot_command_scope_chat_administrators.rb +2 -2
  17. data/lib/telegram/bot/types/bot_command_scope_chat_member.rb +3 -3
  18. data/lib/telegram/bot/types/bot_command_scope_default.rb +1 -1
  19. data/lib/telegram/bot/types/callback_query.rb +6 -6
  20. data/lib/telegram/bot/types/chat.rb +29 -28
  21. data/lib/telegram/bot/types/chat_administrator_rights.rb +13 -12
  22. data/lib/telegram/bot/types/chat_invite_link.rb +8 -8
  23. data/lib/telegram/bot/types/chat_join_request.rb +3 -3
  24. data/lib/telegram/bot/types/chat_location.rb +1 -1
  25. data/lib/telegram/bot/types/chat_member.rb +0 -22
  26. data/lib/telegram/bot/types/chat_member_administrator.rb +26 -0
  27. data/lib/telegram/bot/types/chat_member_banned.rb +13 -0
  28. data/lib/telegram/bot/types/chat_member_left.rb +12 -0
  29. data/lib/telegram/bot/types/chat_member_member.rb +12 -0
  30. data/lib/telegram/bot/types/chat_member_owner.rb +14 -0
  31. data/lib/telegram/bot/types/chat_member_restricted.rb +23 -0
  32. data/lib/telegram/bot/types/chat_member_updated.rb +2 -2
  33. data/lib/telegram/bot/types/chat_permissions.rb +9 -8
  34. data/lib/telegram/bot/types/chat_photo.rb +4 -4
  35. data/lib/telegram/bot/types/chosen_inline_result.rb +4 -4
  36. data/lib/telegram/bot/types/contact.rb +5 -5
  37. data/lib/telegram/bot/types/dice.rb +2 -2
  38. data/lib/telegram/bot/types/document.rb +6 -6
  39. data/lib/telegram/bot/types/encrypted_credentials.rb +3 -3
  40. data/lib/telegram/bot/types/encrypted_passport_element.rb +10 -10
  41. data/lib/telegram/bot/types/file.rb +4 -4
  42. data/lib/telegram/bot/types/force_reply.rb +3 -3
  43. data/lib/telegram/bot/types/forum_topic.rb +14 -0
  44. data/lib/telegram/bot/types/forum_topic_closed.rb +10 -0
  45. data/lib/telegram/bot/types/forum_topic_created.rb +13 -0
  46. data/lib/telegram/bot/types/forum_topic_edited.rb +12 -0
  47. data/lib/telegram/bot/types/forum_topic_reopened.rb +10 -0
  48. data/lib/telegram/bot/types/game.rb +6 -6
  49. data/lib/telegram/bot/types/game_high_score.rb +2 -2
  50. data/lib/telegram/bot/types/general_forum_topic_hidden.rb +10 -0
  51. data/lib/telegram/bot/types/general_forum_topic_unhidden.rb +10 -0
  52. data/lib/telegram/bot/types/inline_keyboard_button.rb +9 -9
  53. data/lib/telegram/bot/types/inline_keyboard_markup.rb +1 -1
  54. data/lib/telegram/bot/types/inline_query.rb +5 -5
  55. data/lib/telegram/bot/types/inline_query_result_article.rb +10 -10
  56. data/lib/telegram/bot/types/inline_query_result_audio.rb +11 -10
  57. data/lib/telegram/bot/types/inline_query_result_cached_audio.rb +8 -7
  58. data/lib/telegram/bot/types/inline_query_result_cached_document.rb +10 -9
  59. data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +9 -8
  60. data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +9 -8
  61. data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +10 -9
  62. data/lib/telegram/bot/types/inline_query_result_cached_sticker.rb +5 -5
  63. data/lib/telegram/bot/types/inline_query_result_cached_video.rb +10 -9
  64. data/lib/telegram/bot/types/inline_query_result_cached_voice.rb +9 -8
  65. data/lib/telegram/bot/types/inline_query_result_contact.rb +11 -11
  66. data/lib/telegram/bot/types/inline_query_result_document.rb +14 -13
  67. data/lib/telegram/bot/types/inline_query_result_game.rb +4 -4
  68. data/lib/telegram/bot/types/inline_query_result_gif.rb +14 -12
  69. data/lib/telegram/bot/types/inline_query_result_location.rb +14 -14
  70. data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +14 -13
  71. data/lib/telegram/bot/types/inline_query_result_photo.rb +13 -12
  72. data/lib/telegram/bot/types/inline_query_result_venue.rb +15 -15
  73. data/lib/telegram/bot/types/inline_query_result_video.rb +15 -14
  74. data/lib/telegram/bot/types/inline_query_result_voice.rb +10 -9
  75. data/lib/telegram/bot/types/input_contact_message_content.rb +4 -4
  76. data/lib/telegram/bot/types/input_invoice_message_content.rb +20 -20
  77. data/lib/telegram/bot/types/input_location_message_content.rb +6 -6
  78. data/lib/telegram/bot/types/input_media_animation.rb +10 -8
  79. data/lib/telegram/bot/types/input_media_audio.rb +9 -8
  80. data/lib/telegram/bot/types/input_media_document.rb +7 -7
  81. data/lib/telegram/bot/types/input_media_photo.rb +6 -4
  82. data/lib/telegram/bot/types/input_media_video.rb +11 -8
  83. data/lib/telegram/bot/types/input_text_message_content.rb +4 -3
  84. data/lib/telegram/bot/types/input_venue_message_content.rb +8 -8
  85. data/lib/telegram/bot/types/invoice.rb +5 -5
  86. data/lib/telegram/bot/types/keyboard_button.rb +5 -5
  87. data/lib/telegram/bot/types/keyboard_button_poll_type.rb +1 -1
  88. data/lib/telegram/bot/types/labeled_price.rb +2 -2
  89. data/lib/telegram/bot/types/location.rb +6 -6
  90. data/lib/telegram/bot/types/login_url.rb +4 -4
  91. data/lib/telegram/bot/types/mask_position.rb +4 -4
  92. data/lib/telegram/bot/types/menu_button_commands.rb +1 -1
  93. data/lib/telegram/bot/types/menu_button_default.rb +1 -1
  94. data/lib/telegram/bot/types/menu_button_web_app.rb +2 -2
  95. data/lib/telegram/bot/types/message.rb +68 -58
  96. data/lib/telegram/bot/types/message_auto_delete_timer_changed.rb +1 -1
  97. data/lib/telegram/bot/types/message_entity.rb +7 -7
  98. data/lib/telegram/bot/types/order_info.rb +4 -4
  99. data/lib/telegram/bot/types/passport_data.rb +1 -1
  100. data/lib/telegram/bot/types/passport_element_error_data_field.rb +5 -5
  101. data/lib/telegram/bot/types/passport_element_error_file.rb +4 -4
  102. data/lib/telegram/bot/types/passport_element_error_files.rb +4 -4
  103. data/lib/telegram/bot/types/passport_element_error_front_side.rb +4 -4
  104. data/lib/telegram/bot/types/passport_element_error_reverse_side.rb +4 -4
  105. data/lib/telegram/bot/types/passport_element_error_selfie.rb +4 -4
  106. data/lib/telegram/bot/types/passport_element_error_translation_file.rb +4 -4
  107. data/lib/telegram/bot/types/passport_element_error_translation_files.rb +4 -4
  108. data/lib/telegram/bot/types/passport_element_error_unspecified.rb +4 -4
  109. data/lib/telegram/bot/types/passport_file.rb +4 -4
  110. data/lib/telegram/bot/types/photo_size.rb +5 -5
  111. data/lib/telegram/bot/types/poll.rb +13 -13
  112. data/lib/telegram/bot/types/poll_answer.rb +2 -2
  113. data/lib/telegram/bot/types/poll_option.rb +2 -2
  114. data/lib/telegram/bot/types/pre_checkout_query.rb +6 -6
  115. data/lib/telegram/bot/types/proximity_alert_triggered.rb +1 -1
  116. data/lib/telegram/bot/types/reply_keyboard_markup.rb +6 -5
  117. data/lib/telegram/bot/types/reply_keyboard_remove.rb +2 -2
  118. data/lib/telegram/bot/types/sent_web_app_message.rb +1 -1
  119. data/lib/telegram/bot/types/shipping_address.rb +6 -6
  120. data/lib/telegram/bot/types/shipping_option.rb +3 -3
  121. data/lib/telegram/bot/types/shipping_query.rb +2 -2
  122. data/lib/telegram/bot/types/sticker.rb +14 -14
  123. data/lib/telegram/bot/types/sticker_set.rb +7 -8
  124. data/lib/telegram/bot/types/successful_payment.rb +7 -7
  125. data/lib/telegram/bot/types/update.rb +15 -15
  126. data/lib/telegram/bot/types/user.rb +11 -11
  127. data/lib/telegram/bot/types/user_profile_photos.rb +2 -2
  128. data/lib/telegram/bot/types/venue.rb +6 -6
  129. data/lib/telegram/bot/types/video.rb +9 -9
  130. data/lib/telegram/bot/types/video_chat_ended.rb +1 -1
  131. data/lib/telegram/bot/types/video_chat_participants_invited.rb +1 -1
  132. data/lib/telegram/bot/types/video_chat_scheduled.rb +1 -1
  133. data/lib/telegram/bot/types/video_note.rb +6 -6
  134. data/lib/telegram/bot/types/voice.rb +5 -5
  135. data/lib/telegram/bot/types/web_app_data.rb +2 -2
  136. data/lib/telegram/bot/types/web_app_info.rb +1 -1
  137. data/lib/telegram/bot/types/webhook_info.rb +9 -9
  138. data/lib/telegram/bot/types/write_access_allowed.rb +10 -0
  139. data/lib/telegram/bot/types.rb +7 -124
  140. data/lib/telegram/bot/version.rb +1 -1
  141. data/lib/telegram/bot.rb +7 -9
  142. data/telegram-bot-ruby.gemspec +4 -2
  143. metadata +56 -14
  144. data/lib/telegram/bot/exceptions.rb +0 -4
@@ -4,9 +4,9 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class ShippingQuery < Base
7
- attribute :id, String
7
+ attribute :id, Types::String
8
8
  attribute :from, User
9
- attribute :invoice_payload, String
9
+ attribute :invoice_payload, Types::String
10
10
  attribute :shipping_address, ShippingAddress
11
11
  end
12
12
  end
@@ -4,20 +4,20 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class Sticker < Base
7
- attribute :file_id, String
8
- attribute :file_unique_id, String
9
- attribute :type, String
10
- attribute :width, Integer
11
- attribute :height, Integer
12
- attribute :is_animated, Boolean
13
- attribute :is_video, Boolean
14
- attribute :thumb, PhotoSize
15
- attribute :emoji, String
16
- attribute :set_name, String
17
- attribute :premium_animation, File
18
- attribute :mask_position, MaskPosition
19
- attribute :custom_emoji_id, String
20
- attribute :file_size, Integer
7
+ attribute :file_id, Types::String
8
+ attribute :file_unique_id, Types::String
9
+ attribute :type, Types::String
10
+ attribute :width, Types::Integer
11
+ attribute :height, Types::Integer
12
+ attribute :is_animated, Types::Bool
13
+ attribute :is_video, Types::Bool
14
+ attribute? :thumb, PhotoSize
15
+ attribute? :emoji, Types::String
16
+ attribute? :set_name, Types::String
17
+ attribute? :premium_animation, File
18
+ attribute? :mask_position, MaskPosition
19
+ attribute? :custom_emoji_id, Types::String
20
+ attribute? :file_size, Types::Integer
21
21
  end
22
22
  end
23
23
  end
@@ -4,14 +4,13 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class StickerSet < Base
7
- attribute :name, String
8
- attribute :title, String
9
- attribute :sticker_type, String
10
- attribute :is_animated, Boolean
11
- attribute :is_video, Boolean
12
- attribute :contains_masks, Boolean
13
- attribute :stickers, Array[Sticker]
14
- attribute :thumb, PhotoSize
7
+ attribute :name, Types::String
8
+ attribute :title, Types::String
9
+ attribute :sticker_type, Types::String
10
+ attribute :is_animated, Types::Bool
11
+ attribute :is_video, Types::Bool
12
+ attribute :stickers, Types::Array.of(Sticker)
13
+ attribute? :thumb, PhotoSize
15
14
  end
16
15
  end
17
16
  end
@@ -4,13 +4,13 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class SuccessfulPayment < Base
7
- attribute :currency, String
8
- attribute :total_amount, Integer
9
- attribute :invoice_payload, String
10
- attribute :shipping_option_id, String
11
- attribute :order_info, OrderInfo
12
- attribute :telegram_payment_charge_id, String
13
- attribute :provider_payment_charge_id, String
7
+ attribute :currency, Types::String
8
+ attribute :total_amount, Types::Integer
9
+ attribute :invoice_payload, Types::String
10
+ attribute? :shipping_option_id, Types::String
11
+ attribute? :order_info, OrderInfo
12
+ attribute :telegram_payment_charge_id, Types::String
13
+ attribute :provider_payment_charge_id, Types::String
14
14
  end
15
15
  end
16
16
  end
@@ -4,21 +4,21 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class Update < Base
7
- attribute :update_id, Integer
8
- attribute :message, Message
9
- attribute :edited_message, Message
10
- attribute :channel_post, Message
11
- attribute :edited_channel_post, Message
12
- attribute :inline_query, InlineQuery
13
- attribute :chosen_inline_result, ChosenInlineResult
14
- attribute :callback_query, CallbackQuery
15
- attribute :shipping_query, ShippingQuery
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
21
- attribute :chat_join_request, ChatJoinRequest
7
+ attribute :update_id, Types::Integer
8
+ attribute? :message, Message
9
+ attribute? :edited_message, Message
10
+ attribute? :channel_post, Message
11
+ attribute? :edited_channel_post, Message
12
+ attribute? :inline_query, InlineQuery
13
+ attribute? :chosen_inline_result, ChosenInlineResult
14
+ attribute? :callback_query, CallbackQuery
15
+ attribute? :shipping_query, ShippingQuery
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
21
+ attribute? :chat_join_request, ChatJoinRequest
22
22
 
23
23
  def current_message
24
24
  @current_message ||=
@@ -4,17 +4,17 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class User < Base
7
- attribute :id, Integer
8
- attribute :is_bot, Boolean
9
- attribute :first_name, String
10
- attribute :last_name, String
11
- attribute :username, String
12
- attribute :language_code, String
13
- attribute :is_premium, Boolean
14
- attribute :added_to_attachment_menu, Boolean
15
- attribute :can_join_groups, Boolean
16
- attribute :can_read_all_group_messages, Boolean
17
- attribute :supports_inline_queries, Boolean
7
+ attribute :id, Types::Integer
8
+ attribute :is_bot, Types::Bool
9
+ attribute :first_name, Types::String
10
+ attribute? :last_name, Types::String
11
+ attribute? :username, Types::String
12
+ attribute? :language_code, Types::String
13
+ attribute? :is_premium, Types::Bool
14
+ attribute? :added_to_attachment_menu, Types::Bool
15
+ attribute? :can_join_groups, Types::Bool
16
+ attribute? :can_read_all_group_messages, Types::Bool
17
+ attribute? :supports_inline_queries, Types::Bool
18
18
  end
19
19
  end
20
20
  end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class UserProfilePhotos < Base
7
- attribute :total_count, Integer
8
- attribute :photos, Array[Array[PhotoSize]]
7
+ attribute :total_count, Types::Integer
8
+ attribute :photos, Types::Array.of(Types::Array.of(PhotoSize))
9
9
  end
10
10
  end
11
11
  end
@@ -5,12 +5,12 @@ module Telegram
5
5
  module Types
6
6
  class Venue < Base
7
7
  attribute :location, Location
8
- attribute :title, String
9
- attribute :address, String
10
- attribute :foursquare_id, String
11
- attribute :foursquare_type, String
12
- attribute :google_place_id, String
13
- attribute :google_place_type, String
8
+ attribute :title, Types::String
9
+ attribute :address, Types::String
10
+ attribute? :foursquare_id, Types::String
11
+ attribute? :foursquare_type, Types::String
12
+ attribute? :google_place_id, Types::String
13
+ attribute? :google_place_type, Types::String
14
14
  end
15
15
  end
16
16
  end
@@ -4,15 +4,15 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class Video < Base
7
- attribute :file_id, String
8
- attribute :file_unique_id, String
9
- attribute :width, Integer
10
- attribute :height, Integer
11
- attribute :duration, Integer
12
- attribute :thumb, PhotoSize
13
- attribute :file_name, String
14
- attribute :mime_type, String
15
- attribute :file_size, Integer
7
+ attribute :file_id, Types::String
8
+ attribute :file_unique_id, Types::String
9
+ attribute :width, Types::Integer
10
+ attribute :height, Types::Integer
11
+ attribute :duration, Types::Integer
12
+ attribute? :thumb, PhotoSize
13
+ attribute? :file_name, Types::String
14
+ attribute? :mime_type, Types::String
15
+ attribute? :file_size, Types::Integer
16
16
  end
17
17
  end
18
18
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class VideoChatEnded < Base
7
- attribute :duration, Integer
7
+ attribute :duration, Types::Integer
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class VideoChatParticipantsInvited < Base
7
- attribute :users, Array[User]
7
+ attribute :users, Types::Array.of(User)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class VideoChatScheduled < Base
7
- attribute :start_date, Integer
7
+ attribute :start_date, Types::Integer
8
8
  end
9
9
  end
10
10
  end
@@ -4,12 +4,12 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class VideoNote < Base
7
- attribute :file_id, String
8
- attribute :file_unique_id, String
9
- attribute :length, Integer
10
- attribute :duration, Integer
11
- attribute :thumb, PhotoSize
12
- attribute :file_size, Integer
7
+ attribute :file_id, Types::String
8
+ attribute :file_unique_id, Types::String
9
+ attribute :length, Types::Integer
10
+ attribute :duration, Types::Integer
11
+ attribute? :thumb, PhotoSize
12
+ attribute? :file_size, Types::Integer
13
13
  end
14
14
  end
15
15
  end
@@ -4,11 +4,11 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class Voice < Base
7
- attribute :file_id, String
8
- attribute :file_unique_id, String
9
- attribute :duration, Integer
10
- attribute :mime_type, String
11
- attribute :file_size, Integer
7
+ attribute :file_id, Types::String
8
+ attribute :file_unique_id, Types::String
9
+ attribute :duration, Types::Integer
10
+ attribute? :mime_type, Types::String
11
+ attribute? :file_size, Types::Integer
12
12
  end
13
13
  end
14
14
  end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class WebAppData < Base
7
- attribute :data, String
8
- attribute :button_text, String
7
+ attribute :data, Types::String
8
+ attribute :button_text, Types::String
9
9
  end
10
10
  end
11
11
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class WebAppInfo < Base
7
- attribute :url, String
7
+ attribute :url, Types::String
8
8
  end
9
9
  end
10
10
  end
@@ -4,15 +4,15 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class WebhookInfo < Base
7
- attribute :url, String
8
- attribute :has_custom_certificate, Boolean
9
- attribute :pending_update_count, Integer
10
- attribute :ip_address, String
11
- attribute :last_error_date, Integer
12
- attribute :last_error_message, String
13
- attribute :last_synchronization_error_date, Integer
14
- attribute :max_connections, Integer
15
- attribute :allowed_updates, Array[String]
7
+ attribute :url, Types::String
8
+ attribute :has_custom_certificate, Types::Bool
9
+ attribute :pending_update_count, Types::Integer
10
+ attribute? :ip_address, Types::String
11
+ attribute? :last_error_date, Types::Integer
12
+ attribute? :last_error_message, Types::String
13
+ attribute? :last_synchronization_error_date, Types::Integer
14
+ attribute? :max_connections, Types::Integer
15
+ attribute? :allowed_updates, Types::Array.of(String)
16
16
  end
17
17
  end
18
18
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class WriteAccessAllowed < Base
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,126 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'telegram/bot/types/compactable'
4
- require 'telegram/bot/types/pattern_matching'
5
- require 'telegram/bot/types/base'
6
- require 'telegram/bot/types/file'
7
- require 'telegram/bot/types/user'
8
- require 'telegram/bot/types/photo_size'
9
- require 'telegram/bot/types/audio'
10
- require 'telegram/bot/types/document'
11
- require 'telegram/bot/types/mask_position'
12
- require 'telegram/bot/types/sticker'
13
- require 'telegram/bot/types/sticker_set'
14
- require 'telegram/bot/types/video'
15
- require 'telegram/bot/types/voice'
16
- require 'telegram/bot/types/video_note'
17
- require 'telegram/bot/types/contact'
18
- require 'telegram/bot/types/dice'
19
- require 'telegram/bot/types/location'
20
- require 'telegram/bot/types/chat_photo'
21
- require 'telegram/bot/types/chat_permissions'
22
- require 'telegram/bot/types/chat_location'
23
- require 'telegram/bot/types/chat'
24
- require 'telegram/bot/types/message_entity'
25
- require 'telegram/bot/types/venue'
26
- require 'telegram/bot/types/animation'
27
- require 'telegram/bot/types/game'
28
- require 'telegram/bot/types/callback_game'
29
- require 'telegram/bot/types/game_high_score'
30
- require 'telegram/bot/types/invoice'
31
- require 'telegram/bot/types/shipping_address'
32
- require 'telegram/bot/types/order_info'
33
- require 'telegram/bot/types/successful_payment'
34
- require 'telegram/bot/types/poll_option'
35
- require 'telegram/bot/types/poll_answer'
36
- require 'telegram/bot/types/poll'
37
- require 'telegram/bot/types/passport_file'
38
- require 'telegram/bot/types/encrypted_passport_element'
39
- require 'telegram/bot/types/encrypted_credentials'
40
- require 'telegram/bot/types/passport_data'
41
- require 'telegram/bot/types/passport_element_error_data_field'
42
- require 'telegram/bot/types/passport_element_error_front_side'
43
- require 'telegram/bot/types/passport_element_error_reverse_side'
44
- require 'telegram/bot/types/passport_element_error_selfie'
45
- require 'telegram/bot/types/passport_element_error_file'
46
- require 'telegram/bot/types/passport_element_error_files'
47
- require 'telegram/bot/types/passport_element_error_translation_file'
48
- require 'telegram/bot/types/passport_element_error_translation_files'
49
- require 'telegram/bot/types/passport_element_error_unspecified'
50
- require 'telegram/bot/types/labeled_price'
51
- require 'telegram/bot/types/input_message_content'
52
- require 'telegram/bot/types/input_contact_message_content'
53
- require 'telegram/bot/types/input_invoice_message_content'
54
- require 'telegram/bot/types/input_location_message_content'
55
- require 'telegram/bot/types/input_text_message_content'
56
- require 'telegram/bot/types/input_venue_message_content'
57
- require 'telegram/bot/types/login_url'
58
- require 'telegram/bot/types/web_app_info'
59
- require 'telegram/bot/types/inline_keyboard_button'
60
- require 'telegram/bot/types/inline_keyboard_markup'
61
- require 'telegram/bot/types/inline_query'
62
- require 'telegram/bot/types/inline_query_result_article'
63
- require 'telegram/bot/types/inline_query_result_audio'
64
- require 'telegram/bot/types/inline_query_result_cached_audio'
65
- require 'telegram/bot/types/inline_query_result_cached_document'
66
- require 'telegram/bot/types/inline_query_result_cached_gif'
67
- require 'telegram/bot/types/inline_query_result_cached_mpeg4_gif'
68
- require 'telegram/bot/types/inline_query_result_cached_photo'
69
- require 'telegram/bot/types/inline_query_result_cached_sticker'
70
- require 'telegram/bot/types/inline_query_result_cached_video'
71
- require 'telegram/bot/types/inline_query_result_cached_voice'
72
- require 'telegram/bot/types/inline_query_result_contact'
73
- require 'telegram/bot/types/inline_query_result_game'
74
- require 'telegram/bot/types/inline_query_result_document'
75
- require 'telegram/bot/types/inline_query_result_gif'
76
- require 'telegram/bot/types/inline_query_result_location'
77
- require 'telegram/bot/types/inline_query_result_mpeg4_gif'
78
- require 'telegram/bot/types/inline_query_result_photo'
79
- require 'telegram/bot/types/inline_query_result_venue'
80
- require 'telegram/bot/types/inline_query_result_video'
81
- require 'telegram/bot/types/inline_query_result_voice'
82
- require 'telegram/bot/types/chosen_inline_result'
83
- require 'telegram/bot/types/proximity_alert_triggered'
84
- require 'telegram/bot/types/video_chat_scheduled'
85
- require 'telegram/bot/types/video_chat_started'
86
- require 'telegram/bot/types/video_chat_ended'
87
- require 'telegram/bot/types/video_chat_participants_invited'
88
- require 'telegram/bot/types/message_auto_delete_timer_changed'
89
- require 'telegram/bot/types/web_app_data'
90
- require 'telegram/bot/types/message'
91
- require 'telegram/bot/types/callback_query'
92
- require 'telegram/bot/types/shipping_query'
93
- require 'telegram/bot/types/pre_checkout_query'
94
- require 'telegram/bot/types/keyboard_button_poll_type'
95
- require 'telegram/bot/types/keyboard_button'
96
- require 'telegram/bot/types/reply_keyboard_markup'
97
- require 'telegram/bot/types/reply_keyboard_remove'
98
- require 'telegram/bot/types/force_reply'
99
- require 'telegram/bot/types/shipping_option'
100
- require 'telegram/bot/types/chat_invite_link'
101
- require 'telegram/bot/types/chat_member'
102
- require 'telegram/bot/types/chat_member_updated'
103
- require 'telegram/bot/types/chat_join_request'
104
- require 'telegram/bot/types/update'
105
- require 'telegram/bot/types/user_profile_photos'
106
- require 'telegram/bot/types/input_media_photo'
107
- require 'telegram/bot/types/input_media_video'
108
- require 'telegram/bot/types/input_media_animation'
109
- require 'telegram/bot/types/input_media_audio'
110
- require 'telegram/bot/types/input_media_document'
111
- require 'telegram/bot/types/webhook_info'
112
- require 'telegram/bot/types/bot_command'
113
- require 'telegram/bot/types/bot_command_scope_all_chat_administrators'
114
- require 'telegram/bot/types/bot_command_scope_all_group_chats'
115
- require 'telegram/bot/types/bot_command_scope_all_private_chats'
116
- require 'telegram/bot/types/bot_command_scope_chat_administrators'
117
- require 'telegram/bot/types/bot_command_scope_chat_member'
118
- require 'telegram/bot/types/bot_command_scope_chat'
119
- require 'telegram/bot/types/bot_command_scope_default'
120
- require 'telegram/bot/types/sent_web_app_message'
121
- require 'telegram/bot/types/menu_button_commands'
122
- require 'telegram/bot/types/menu_button_web_app'
123
- require 'telegram/bot/types/menu_button_default'
124
- require 'telegram/bot/types/chat_administrator_rights'
125
-
126
- Virtus.finalize
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ include Dry.Types()
7
+ end
8
+ end
9
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Telegram
4
4
  module Bot
5
- VERSION = '0.23.0'
5
+ VERSION = '1.0.0.rc1'
6
6
  end
7
7
  end
data/lib/telegram/bot.rb CHANGED
@@ -1,18 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'virtus'
4
3
  require 'logger'
5
4
  require 'json'
6
5
  require 'faraday'
7
6
  require 'faraday/multipart'
8
-
9
- require 'telegram/bot/types'
10
- require 'telegram/bot/exceptions'
11
- require 'telegram/bot/api'
12
- require 'telegram/bot/null_logger'
13
- require 'telegram/bot/client'
14
- require 'telegram/bot/version'
15
- require 'telegram/bot/configuration'
7
+ require 'zeitwerk'
8
+ require 'dry-struct'
16
9
 
17
10
  module Telegram
18
11
  module Bot
@@ -29,3 +22,8 @@ module Telegram
29
22
  end
30
23
  end
31
24
  end
25
+
26
+ loader = Zeitwerk::Loader.new
27
+ loader.inflector = Zeitwerk::GemInflector.new(__FILE__)
28
+ loader.push_dir("#{__dir__}/bot", namespace: Telegram::Bot)
29
+ loader.setup
@@ -22,11 +22,13 @@ Gem::Specification.new do |spec|
22
22
  spec.required_ruby_version = '>= 2.7'
23
23
  spec.metadata['rubygems_mfa_required'] = 'true'
24
24
 
25
- spec.add_dependency 'dry-inflector'
25
+ spec.add_dependency 'dry-struct', '~> 1.6'
26
26
  spec.add_dependency 'faraday', '~> 2.0'
27
27
  spec.add_dependency 'faraday-multipart', '~> 1.0'
28
- spec.add_dependency 'virtus', '~> 2.0'
28
+ spec.add_dependency 'zeitwerk', '~> 2.6'
29
29
 
30
+ spec.add_development_dependency 'dotenv', '~> 2.8'
31
+ spec.add_development_dependency 'nokogiri', '~> 1.13'
30
32
  spec.add_development_dependency 'pry'
31
33
  spec.add_development_dependency 'rake', '~> 13.0'
32
34
  spec.add_development_dependency 'rspec', '~> 3.4'