Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9269575
Add Telegram Bot API HTML parser for type_attributes.json
claude Nov 26, 2025
1ba4b64
Fix required_value parsing for discriminator fields
claude Nov 27, 2025
3f79909
Add debugging tools for discriminator field validation
claude Nov 27, 2025
e3bdd5e
Fix parser to match existing type_attributes.json format exactly
claude Nov 27, 2025
d6d2dea
Fix incorrect default value parsing for field references
claude Nov 27, 2025
9927964
Fix incorrect default value parsing for "must be one of" pattern
claude Nov 27, 2025
f16c253
Add eager loading support for Zeitwerk in test environment
claude Nov 27, 2025
3b2bccc
Enable eager loading directly in spec_helper
claude Nov 27, 2025
36543dc
Replace LOADER constant with eager_load! method
claude Nov 27, 2025
36c0b44
Use Zeitwerk::Loader.eager_load_namespace for test eager loading
claude Nov 27, 2025
244e7e7
Preserve float types in default value parsing
claude Nov 27, 2025
4605afb
Move telegram parser to rakelib and create rake task
claude Nov 27, 2025
bc94c82
Rename rake task from parse_telegram to parse_docs
claude Nov 27, 2025
f537ae7
Update types
atipugin Nov 27, 2025
2424c44
Update rubocop
atipugin Nov 27, 2025
daf75f6
Reorganize parsers and add methods parser
claude Nov 27, 2025
c02ee60
Switch from net/http to open-uri in parsers
claude Nov 27, 2025
f3ddf6d
Add rebuild_methods rake task and generated methods.json
claude Nov 27, 2025
323d4bf
Use ERB template for rebuild_methods task
claude Nov 27, 2025
72ba2b2
Move test and debug scripts to tmp/
claude Nov 27, 2025
ca8de0f
Move parser documentation from MD to YARD
claude Nov 27, 2025
2b49da3
Enhance parser YARD documentation with comprehensive details
claude Nov 27, 2025
0b4049b
Refactor parser YARD documentation to use only standard tags
claude Nov 27, 2025
81a4193
Update things
atipugin Nov 27, 2025
11cdaa2
Re-build endpoints.rb
atipugin Nov 27, 2025
ef78590
Fix MethodsParser
atipugin Nov 27, 2025
18cbfa9
Fix rubocop violations
atipugin Nov 27, 2025
a8419f7
Re-arrange rake tasks
atipugin Nov 27, 2025
9164026
Rebuild types, improve rake tasks
atipugin Nov 27, 2025
8b3b8e5
Rename data files
atipugin Nov 27, 2025
a80f872
Refactor parsers
atipugin Nov 27, 2025
406348e
Remove unused requires
atipugin Nov 27, 2025
65e542c
Update docs
atipugin Nov 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
Gemfile.lock

.bundle/
.claude/
.env
.serena/
pkg/
tmp/
vendor/bundle/
24 changes: 24 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,42 @@ Metrics/BlockLength:
AllowedMethods:
- context
- describe
- namespace
- task

Metrics/ClassLength:
Exclude:
- lib/telegram/bot/api/endpoints.rb
- lib/telegram/bot/types/message.rb
- rakelib/docs_parsers/methods_parser.rb
- rakelib/docs_parsers/types_parser.rb

Metrics/MethodLength:
Exclude:
- rakelib/docs_parsers/methods_parser.rb
- rakelib/docs_parsers/types_parser.rb
- spec/**/*

Metrics/AbcSize:
Exclude:
- rakelib/docs_parsers/methods_parser.rb
- rakelib/docs_parsers/types_parser.rb

Metrics/CyclomaticComplexity:
Exclude:
- rakelib/docs_parsers/methods_parser.rb
- rakelib/docs_parsers/types_parser.rb

Metrics/PerceivedComplexity:
Exclude:
- rakelib/docs_parsers/methods_parser.rb
- rakelib/docs_parsers/types_parser.rb

Layout/LineLength:
Max: 120

RSpec/MultipleMemoizedHelpers:
Enabled: false

RSpec/NestedGroups:
Enabled: false
8 changes: 4 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ gem 'rake', '~> 13.0'
gem 'rspec', '~> 3.4'
gem 'vcr', '~> 6.0'

gem 'rubocop', '~> 1.66.1'
gem 'rubocop-performance', '~> 1.18'
gem 'rubocop-rake', '~> 0.6.0'
gem 'rubocop-rspec', '~> 3.1.0'
gem 'rubocop', '~> 1.81'
gem 'rubocop-performance', '~> 1.26'
gem 'rubocop-rake', '~> 0.7.1'
gem 'rubocop-rspec', '~> 3.8'

group :development do
gem 'openapi3_parser', '~> 0.9.2'
Expand Down
113 changes: 113 additions & 0 deletions data/endpoints.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"addStickerToSet": "Types::Bool",
"answerCallbackQuery": "Types::Bool",
"answerInlineQuery": "Types::Bool",
"answerPreCheckoutQuery": "Types::Bool",
"answerShippingQuery": "Types::Bool",
"approveChatJoinRequest": "Types::Bool",
"approveSuggestedPost": "Types::Bool",
"banChatMember": "Types::Bool",
"banChatSenderChat": "Types::Bool",
"close": "Types::Bool",
"closeForumTopic": "Types::Bool",
"closeGeneralForumTopic": "Types::Bool",
"convertGiftToStars": "Types::Bool",
"createNewStickerSet": "Types::Bool",
"declineChatJoinRequest": "Types::Bool",
"declineSuggestedPost": "Types::Bool",
"deleteBusinessMessages": "Types::Bool",
"deleteChatPhoto": "Types::Bool",
"deleteChatStickerSet": "Types::Bool",
"deleteForumTopic": "Types::Bool",
"deleteMessage": "Types::Bool",
"deleteMessages": "Types::Bool",
"deleteMyCommands": "Types::Bool",
"deleteStickerFromSet": "Types::Bool",
"deleteStickerSet": "Types::Bool",
"deleteStory": "Types::Bool",
"deleteWebhook": "Types::Bool",
"editForumTopic": "Types::Bool",
"editGeneralForumTopic": "Types::Bool",
"editStory": "Types::Story",
"editUserStarSubscription": "Types::Bool",
"getBusinessConnection": "Types::BusinessConnection",
"getChat": "Types::ChatFullInfo",
"getChatAdministrators": "Types::Array.of(Types::ChatMember)",
"getChatMember": "Types::ChatMember",
"getChatMemberCount": "Types::Integer",
"getChatMenuButton": "Types::MenuButton",
"getCustomEmojiStickers": "Types::Array.of(Types::Sticker)",
"getForumTopicIconStickers": "Types::Array.of(Types::Sticker)",
"getGameHighScores": "Types::Array.of(Types::GameHighScore)",
"getMe": "Types::User",
"getMyCommands": "Types::Array.of(Types::BotCommand)",
"getMyDefaultAdministratorRights": "Types::ChatAdministratorRights",
"getMyDescription": "Types::BotDescription",
"getMyName": "Types::BotName",
"getMyShortDescription": "Types::BotShortDescription",
"getMyStarBalance": "Types::StarAmount",
"getUpdates": "Types::Array.of(Types::Update)",
"getUserChatBoosts": "Types::UserChatBoosts",
"getUserProfilePhotos": "Types::UserProfilePhotos",
"getWebhookInfo": "Types::WebhookInfo",
"giftPremiumSubscription": "Types::Bool",
"hideGeneralForumTopic": "Types::Bool",
"leaveChat": "Types::Bool",
"logOut": "Types::Bool",
"pinChatMessage": "Types::Bool",
"postStory": "Types::Story",
"promoteChatMember": "Types::Bool",
"readBusinessMessage": "Types::Bool",
"refundStarPayment": "Types::Bool",
"removeBusinessAccountProfilePhoto": "Types::Bool",
"removeChatVerification": "Types::Bool",
"removeUserVerification": "Types::Bool",
"reopenForumTopic": "Types::Bool",
"reopenGeneralForumTopic": "Types::Bool",
"replaceStickerInSet": "Types::Bool",
"restrictChatMember": "Types::Bool",
"savePreparedInlineMessage": "Types::PreparedInlineMessage",
"sendChatAction": "Types::Bool",
"sendGift": "Types::Bool",
"setBusinessAccountBio": "Types::Bool",
"setBusinessAccountGiftSettings": "Types::Bool",
"setBusinessAccountName": "Types::Bool",
"setBusinessAccountProfilePhoto": "Types::Bool",
"setBusinessAccountUsername": "Types::Bool",
"setChatAdministratorCustomTitle": "Types::Bool",
"setChatDescription": "Types::Bool",
"setChatMenuButton": "Types::Bool",
"setChatPermissions": "Types::Bool",
"setChatPhoto": "Types::Bool",
"setChatStickerSet": "Types::Bool",
"setChatTitle": "Types::Bool",
"setCustomEmojiStickerSetThumbnail": "Types::Bool",
"setGameScore": "Types::Bool",
"setMessageReaction": "Types::Bool",
"setMyCommands": "Types::Bool",
"setMyDefaultAdministratorRights": "Types::Bool",
"setMyDescription": "Types::Bool",
"setMyName": "Types::Bool",
"setMyShortDescription": "Types::Bool",
"setPassportDataErrors": "Types::Bool",
"setStickerEmojiList": "Types::Bool",
"setStickerKeywords": "Types::Bool",
"setStickerMaskPosition": "Types::Bool",
"setStickerPositionInSet": "Types::Bool",
"setStickerSetThumbnail": "Types::Bool",
"setStickerSetTitle": "Types::Bool",
"setUserEmojiStatus": "Types::Bool",
"setWebhook": "Types::Bool",
"transferBusinessAccountStars": "Types::Bool",
"transferGift": "Types::Bool",
"unbanChatMember": "Types::Bool",
"unbanChatSenderChat": "Types::Bool",
"unhideGeneralForumTopic": "Types::Bool",
"unpinAllChatMessages": "Types::Bool",
"unpinAllForumTopicMessages": "Types::Bool",
"unpinAllGeneralForumTopicMessages": "Types::Bool",
"unpinChatMessage": "Types::Bool",
"upgradeGift": "Types::Bool",
"verifyChat": "Types::Bool",
"verifyUser": "Types::Bool"
}
Loading