telegram-bot-types 0.6.1 → 0.6.2

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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -1
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +2 -0
  6. data/Rakefile +2 -0
  7. data/bin/console +1 -0
  8. data/bin/install_git_hooks +2 -1
  9. data/lib/telegram/bot/types.rb +10 -72
  10. data/lib/telegram/bot/types/animation.rb +6 -0
  11. data/lib/telegram/bot/types/audio.rb +4 -0
  12. data/lib/telegram/bot/types/base.rb +2 -0
  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_member.rb +8 -3
  17. data/lib/telegram/bot/types/chat_permissions.rb +18 -0
  18. data/lib/telegram/bot/types/chat_photo.rb +4 -0
  19. data/lib/telegram/bot/types/chosen_inline_result.rb +2 -0
  20. data/lib/telegram/bot/types/contact.rb +3 -0
  21. data/lib/telegram/bot/types/document.rb +3 -0
  22. data/lib/telegram/bot/types/encrypted_credentials.rb +13 -0
  23. data/lib/telegram/bot/types/encrypted_passport_element.rb +20 -0
  24. data/lib/telegram/bot/types/file.rb +3 -0
  25. data/lib/telegram/bot/types/force_reply.rb +2 -0
  26. data/lib/telegram/bot/types/game.rb +2 -0
  27. data/lib/telegram/bot/types/game_high_score.rb +2 -0
  28. data/lib/telegram/bot/types/inline_keyboard_button.rb +3 -0
  29. data/lib/telegram/bot/types/inline_keyboard_markup.rb +2 -0
  30. data/lib/telegram/bot/types/inline_query.rb +2 -0
  31. data/lib/telegram/bot/types/inline_query_result_article.rb +2 -0
  32. data/lib/telegram/bot/types/inline_query_result_audio.rb +2 -0
  33. data/lib/telegram/bot/types/inline_query_result_cached_audio.rb +2 -0
  34. data/lib/telegram/bot/types/inline_query_result_cached_document.rb +2 -0
  35. data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +2 -0
  36. data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +2 -0
  37. data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +2 -0
  38. data/lib/telegram/bot/types/inline_query_result_cached_sticker.rb +2 -0
  39. data/lib/telegram/bot/types/inline_query_result_cached_video.rb +2 -0
  40. data/lib/telegram/bot/types/inline_query_result_cached_voice.rb +2 -0
  41. data/lib/telegram/bot/types/inline_query_result_contact.rb +3 -0
  42. data/lib/telegram/bot/types/inline_query_result_document.rb +2 -0
  43. data/lib/telegram/bot/types/inline_query_result_game.rb +2 -0
  44. data/lib/telegram/bot/types/inline_query_result_gif.rb +2 -0
  45. data/lib/telegram/bot/types/inline_query_result_location.rb +2 -0
  46. data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +2 -0
  47. data/lib/telegram/bot/types/inline_query_result_photo.rb +2 -0
  48. data/lib/telegram/bot/types/inline_query_result_venue.rb +3 -0
  49. data/lib/telegram/bot/types/inline_query_result_video.rb +2 -0
  50. data/lib/telegram/bot/types/inline_query_result_voice.rb +2 -0
  51. data/lib/telegram/bot/types/input_contact_message_content.rb +3 -0
  52. data/lib/telegram/bot/types/input_location_message_content.rb +2 -0
  53. data/lib/telegram/bot/types/input_media_animation.rb +18 -0
  54. data/lib/telegram/bot/types/input_media_audio.rb +18 -0
  55. data/lib/telegram/bot/types/input_media_document.rb +15 -0
  56. data/lib/telegram/bot/types/input_media_photo.rb +13 -0
  57. data/lib/telegram/bot/types/input_media_video.rb +17 -0
  58. data/lib/telegram/bot/types/input_message_content.rb +2 -0
  59. data/lib/telegram/bot/types/input_text_message_content.rb +2 -0
  60. data/lib/telegram/bot/types/input_venue_message_content.rb +3 -0
  61. data/lib/telegram/bot/types/invoice.rb +2 -0
  62. data/lib/telegram/bot/types/keyboard_button.rb +3 -0
  63. data/lib/telegram/bot/types/keyboard_button_poll_type.rb +11 -0
  64. data/lib/telegram/bot/types/labeled_price.rb +2 -0
  65. data/lib/telegram/bot/types/location.rb +2 -0
  66. data/lib/telegram/bot/types/login_url.rb +14 -0
  67. data/lib/telegram/bot/types/mask_position.rb +2 -0
  68. data/lib/telegram/bot/types/message.rb +10 -0
  69. data/lib/telegram/bot/types/message_entity.rb +3 -0
  70. data/lib/telegram/bot/types/order_info.rb +2 -0
  71. data/lib/telegram/bot/types/passport_data.rb +12 -0
  72. data/lib/telegram/bot/types/passport_element_error_data_field.rb +15 -0
  73. data/lib/telegram/bot/types/passport_element_error_file.rb +14 -0
  74. data/lib/telegram/bot/types/passport_element_error_files.rb +14 -0
  75. data/lib/telegram/bot/types/passport_element_error_front_side.rb +14 -0
  76. data/lib/telegram/bot/types/passport_element_error_reverse_side.rb +14 -0
  77. data/lib/telegram/bot/types/passport_element_error_selfie.rb +14 -0
  78. data/lib/telegram/bot/types/passport_element_error_translation_file.rb +14 -0
  79. data/lib/telegram/bot/types/passport_element_error_translation_files.rb +14 -0
  80. data/lib/telegram/bot/types/passport_element_error_unspecified.rb +14 -0
  81. data/lib/telegram/bot/types/passport_file.rb +14 -0
  82. data/lib/telegram/bot/types/photo_size.rb +3 -0
  83. data/lib/telegram/bot/types/poll.rb +19 -0
  84. data/lib/telegram/bot/types/poll_answer.rb +13 -0
  85. data/lib/telegram/bot/types/poll_option.rb +12 -0
  86. data/lib/telegram/bot/types/pre_checkout_query.rb +2 -0
  87. data/lib/telegram/bot/types/reply_keyboard_markup.rb +2 -0
  88. data/lib/telegram/bot/types/reply_keyboard_remove.rb +2 -0
  89. data/lib/telegram/bot/types/response.rb +2 -0
  90. data/lib/telegram/bot/types/shipping_address.rb +2 -0
  91. data/lib/telegram/bot/types/shipping_option.rb +2 -0
  92. data/lib/telegram/bot/types/shipping_query.rb +2 -0
  93. data/lib/telegram/bot/types/sticker.rb +4 -0
  94. data/lib/telegram/bot/types/sticker_set.rb +3 -0
  95. data/lib/telegram/bot/types/successful_payment.rb +2 -0
  96. data/lib/telegram/bot/types/update.rb +4 -0
  97. data/lib/telegram/bot/types/user.rb +5 -0
  98. data/lib/telegram/bot/types/user_profile_photos.rb +2 -0
  99. data/lib/telegram/bot/types/venue.rb +3 -0
  100. data/lib/telegram/bot/types/version.rb +3 -1
  101. data/lib/telegram/bot/types/video.rb +3 -0
  102. data/lib/telegram/bot/types/video_note.rb +3 -0
  103. data/lib/telegram/bot/types/voice.rb +3 -0
  104. data/lib/telegram/bot/types/webhook_info.rb +4 -2
  105. data/telegram-bot-types.gemspec +5 -3
  106. metadata +31 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aab05294b56f06de9bef9d3db9e0df79676647e70317c7b0c06aae5f2239ce20
4
- data.tar.gz: 9cfcffd92a427841811599ed25754507b95312b37b27defd502553bcd12e3090
3
+ metadata.gz: 1771ee234053a034be028b35b8e5fe86d3af10aacb907b38072434ee32023406
4
+ data.tar.gz: a56fed6b23ad7fccd5902b7eb73d76c5c642ac41f6208636ba0d3d0803a8f58d
5
5
  SHA512:
6
- metadata.gz: c14eaea7b52b4316e0afb339d4518e9c49aef2c308e9aa256627fa4c88983b6d0fad2c2da4c0b6a06c00dea019a6e07d7ca98de3fd55472907944a72e0d296e0
7
- data.tar.gz: 919d81aae912d75412d515e5618d9aaf2541c7b34f120496e7c2f54c3fdf67adc2a2d6c39e4ec7985c308dad2e377c65a159b8e4d3ff978fb309c37ffd499a0b
6
+ metadata.gz: b38f2f3c699701ddea60d34e764a8aa797e71feb129212c55bb90a3b23897feb50ab133a9704e00fdacc88e24536114118b140c8230b0789dfc191f67983f219
7
+ data.tar.gz: a3a5d8aa19b949082bd0d7e33f2d3b298fe316491c0127f968999d45d59d8d8df696ddd7a99fbb4d6459801b31ec529bf86dd09bfa71b6234ff67a563a172fca
@@ -1,4 +1,14 @@
1
+ Layout/EmptyLineAfterGuardClause: {Enabled: false}
2
+ Layout/SpaceInsideHashLiteralBraces: {EnforcedStyle: no_space}
1
3
  Metrics/LineLength: {Max: 100}
2
4
  Style/Alias: {EnforcedStyle: prefer_alias_method}
3
5
  Style/Documentation: {Enabled: false}
4
- Style/TrailingCommaInLiteral: {EnforcedStyleForMultiline: comma}
6
+ Style/TrailingCommaInArrayLiteral: {EnforcedStyleForMultiline: comma}
7
+ Style/TrailingCommaInHashLiteral: {EnforcedStyleForMultiline: comma}
8
+
9
+ # New cops. Need to be explicitly enabled to prevent warning.
10
+ Lint/RaiseException: {Enabled: true}
11
+ Lint/StructNewOverride: {Enabled: true}
12
+ Style/HashEachMethods: {Enabled: true}
13
+ Style/HashTransformKeys: {Enabled: true}
14
+ Style/HashTransformValues: {Enabled: true}
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.2.3
4
+ - 2.6
5
5
  notifications:
6
6
  email: false
@@ -1,5 +1,9 @@
1
1
  # Unreleased
2
2
 
3
+ # 0.6.2
4
+
5
+ - Bunch of new types.
6
+
3
7
  # 0.6.1
4
8
 
5
9
  - Strip empty values from `#to_hash`.
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'telegram/bot/types'
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- root = File.expand_path('../../', __FILE__)
4
+ root = File.expand_path('..', __dir__)
4
5
  hooks_dir = "#{root}/bin/git-hooks"
5
6
 
6
7
  `ls -1 #{hooks_dir}`.each_line.map(&:strip).each do |file|
@@ -1,85 +1,23 @@
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
@@ -1,8 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class Animation < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
9
+ attribute :width, Integer
10
+ attribute :height, Integer
11
+ attribute :duration, Integer
6
12
  attribute :thumb, PhotoSize
7
13
  attribute :file_name, String
8
14
  attribute :mime_type, String
@@ -1,13 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class Audio < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :duration, Integer
7
10
  attribute :performer, String
8
11
  attribute :title, String
9
12
  attribute :mime_type, String
10
13
  attribute :file_size, Integer
14
+ attribute :thumb, PhotoSize
11
15
  end
12
16
  end
13
17
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'virtus'
2
4
 
3
5
  module Telegram
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -13,6 +15,10 @@ module Telegram
13
15
  attribute :description, String
14
16
  attribute :invite_link, String
15
17
  attribute :pinned_message, Message
18
+ attribute :permissions, ChatPermissions
19
+ attribute :slow_mode_delay, Integer
20
+ attribute :sticker_set_name, String
21
+ attribute :can_set_sticker_set, Boolean
16
22
  end
17
23
  end
18
24
  end
@@ -1,21 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class ChatMember < Base
5
7
  attribute :user, User
6
8
  attribute :status, String
9
+ attribute :custom_title, String
7
10
  attribute :until_date, Integer
8
11
  attribute :can_be_edited, Boolean
9
- attribute :can_change_info, Boolean
10
12
  attribute :can_post_messages, Boolean
11
13
  attribute :can_edit_messages, Boolean
12
14
  attribute :can_delete_messages, Boolean
13
- attribute :can_invite_users, Boolean
14
15
  attribute :can_restrict_members, Boolean
15
- attribute :can_pin_messages, Boolean
16
16
  attribute :can_promote_members, Boolean
17
+ attribute :can_change_info, Boolean
18
+ attribute :can_invite_users, Boolean
19
+ attribute :can_pin_messages, Boolean
20
+ attribute :is_member, Boolean
17
21
  attribute :can_send_messages, Boolean
18
22
  attribute :can_send_media_messages, Boolean
23
+ attribute :can_send_polls, Boolean
19
24
  attribute :can_send_other_messages, Boolean
20
25
  attribute :can_add_web_page_previews, Boolean
21
26
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatPermissions < Base
7
+ attribute :can_send_messages, Boolean
8
+ attribute :can_send_media_messages, Boolean
9
+ attribute :can_send_polls, Boolean
10
+ attribute :can_send_other_messages, Boolean
11
+ attribute :can_add_web_page_previews, Boolean
12
+ attribute :can_change_info, Boolean
13
+ attribute :can_invite_users, Boolean
14
+ attribute :can_pin_messages, Boolean
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,9 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class ChatPhoto < Base
5
7
  attribute :small_file_id, String
8
+ attribute :small_file_unique_id, String
6
9
  attribute :big_file_id, String
10
+ attribute :big_file_unique_id, String
7
11
  end
8
12
  end
9
13
  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
@@ -6,6 +8,7 @@ module Telegram
6
8
  attribute :first_name, String
7
9
  attribute :last_name, String
8
10
  attribute :user_id, Integer
11
+ attribute :vcard, String
9
12
  end
10
13
  end
11
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 Document < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :thumb, PhotoSize
7
10
  attribute :file_name, String
8
11
  attribute :mime_type, String
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class EncryptedCredentials < Base
7
+ attribute :data, String
8
+ attribute :hash, String
9
+ attribute :secret, String
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class EncryptedPassportElement < Base
7
+ attribute :type, String
8
+ attribute :data, String
9
+ attribute :phone_number, String
10
+ attribute :email, String
11
+ attribute :files, [PassportFile]
12
+ attribute :front_side, PassportFile
13
+ attribute :reverse_side, PassportFile
14
+ attribute :selfie, PassportFile
15
+ attribute :translation, [PassportFile]
16
+ attribute :hash, String
17
+ end
18
+ end
19
+ end
20
+ 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 File < Base
5
7
  attribute :file_id, String
8
+ attribute :file_unique_id, String
6
9
  attribute :file_size, Integer
7
10
  attribute :file_path, String
8
11
  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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types
4
6
  class InlineKeyboardButton < Base
5
7
  attribute :text, String
6
8
  attribute :url, String
9
+ attribute :login_url, LoginUrl
7
10
  attribute :callback_data, String
8
11
  attribute :switch_inline_query, String
9
12
  attribute :switch_inline_query_current_chat, String
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Telegram
2
4
  module Bot
3
5
  module Types