telegram-bot 0.13.0 → 0.13.1
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.
- checksums.yaml +5 -5
- data/.travis.yml +25 -8
- data/Appraisals +7 -0
- data/CHANGELOG.md +5 -1
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/gemfiles/rails_42.gemfile +1 -1
- data/gemfiles/rails_50.gemfile +1 -1
- data/gemfiles/rails_51.gemfile +1 -1
- data/gemfiles/rails_52.gemfile +1 -1
- data/gemfiles/rails_60.gemfile +23 -0
- data/lib/telegram/bot/client/typed_response.rb +14 -26
- data/lib/telegram/bot/config_methods.rb +1 -2
- data/lib/telegram/bot/updates_controller.rb +8 -1
- data/lib/telegram/bot/updates_controller/rspec_helpers.rb +1 -1
- data/lib/telegram/bot/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 9d72dfb00c1dab4bf5b80276354ff102737b537a02c1ba40656bb9ab6eb28288
|
|
4
|
+
data.tar.gz: ed15a4fa045c319c035ab4b5ec9b06169b4a7455004de59fbaeac7656de7c795
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d2cd894d342bb01a901b2c24a243165b580adfd5bcbaef632d3d272693424b5b2f13b7236edcf32dcb897d123f68410c97e0c3235106e31f4de06ace5a712406
|
|
7
|
+
data.tar.gz: cb95a89bcf60e2993d6011203c7f6e4e56f725e2455cbe31e351f60fd72f9e2e40296da284c1147f36f4dcb5f9d004efa2f99aa8791563e3282e8ece64c29499
|
data/.travis.yml
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
language: ruby
|
|
2
2
|
cache: bundler
|
|
3
3
|
rvm:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- 2.3
|
|
4
|
+
- 2.5
|
|
5
|
+
- 2.4
|
|
7
6
|
gemfile:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
- gemfiles/rails_52.gemfile
|
|
8
|
+
- gemfiles/rails_51.gemfile
|
|
9
|
+
matrix:
|
|
10
|
+
include:
|
|
11
|
+
# old rails
|
|
12
|
+
- rvm: 2.5
|
|
13
|
+
gemfile: gemfiles/rails_50.gemfile
|
|
14
|
+
- rvm: 2.5
|
|
15
|
+
gemfile: gemfiles/rails_42.gemfile
|
|
16
|
+
# old rubies
|
|
17
|
+
- rvm: 2.3
|
|
18
|
+
gemfile: gemfiles/rails_52.gemfile
|
|
19
|
+
# future rails
|
|
20
|
+
- rvm: 2.5
|
|
21
|
+
gemfile: gemfiles/rails_60.gemfile
|
|
22
|
+
# Allow rails 6 to fail while master branch is used
|
|
23
|
+
allow_failures:
|
|
24
|
+
- rvm: 2.5
|
|
25
|
+
gemfile: gemfiles/rails_60.gemfile
|
|
12
26
|
notifications:
|
|
13
27
|
email: false
|
|
14
28
|
|
|
15
|
-
# for 2.5.0 until 2.5.1 is released:
|
|
29
|
+
# for 2.5.0 until 2.5.1 is released:
|
|
30
|
+
# https://github.com/travis-ci/travis-ci/issues/8978
|
|
31
|
+
# https://github.com/travis-ci/travis-ci/issues/8969#issuecomment-354135622
|
|
16
32
|
before_install:
|
|
17
33
|
- gem update --system
|
|
34
|
+
- gem install bundler
|
data/Appraisals
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -11,7 +11,7 @@ in development, but you can use poller in production if you want.
|
|
|
11
11
|
|
|
12
12
|
Package contains:
|
|
13
13
|
|
|
14
|
-
-
|
|
14
|
+
- Lightweight client for bot API (with fast and thread-safe
|
|
15
15
|
[httpclient](https://github.com/nahi/httpclient) under the hood).
|
|
16
16
|
- Controller with message parser: define methods for commands, not `case` branches.
|
|
17
17
|
- Middleware and routes helpers for production env.
|
data/gemfiles/rails_42.gemfile
CHANGED
|
@@ -10,7 +10,7 @@ group :development do
|
|
|
10
10
|
gem "pry", "~> 0.10.1"
|
|
11
11
|
gem "pry-byebug", "~> 3.2.0"
|
|
12
12
|
gem "sdoc", "~> 0.4.1"
|
|
13
|
-
gem "telegram-bot-types", "~> 0.
|
|
13
|
+
gem "telegram-bot-types", "~> 0.6.0"
|
|
14
14
|
gem "rspec", "~> 3.5.0"
|
|
15
15
|
gem "rspec-its", "~> 1.1.0"
|
|
16
16
|
gem "rspec-rails", "~> 3.5.0"
|
data/gemfiles/rails_50.gemfile
CHANGED
|
@@ -10,7 +10,7 @@ group :development do
|
|
|
10
10
|
gem "pry", "~> 0.10.1"
|
|
11
11
|
gem "pry-byebug", "~> 3.2.0"
|
|
12
12
|
gem "sdoc", "~> 0.4.1"
|
|
13
|
-
gem "telegram-bot-types", "~> 0.
|
|
13
|
+
gem "telegram-bot-types", "~> 0.6.0"
|
|
14
14
|
gem "rspec", "~> 3.5.0"
|
|
15
15
|
gem "rspec-its", "~> 1.1.0"
|
|
16
16
|
gem "rspec-rails", "~> 3.5.0"
|
data/gemfiles/rails_51.gemfile
CHANGED
|
@@ -10,7 +10,7 @@ group :development do
|
|
|
10
10
|
gem "pry", "~> 0.10.1"
|
|
11
11
|
gem "pry-byebug", "~> 3.2.0"
|
|
12
12
|
gem "sdoc", "~> 0.4.1"
|
|
13
|
-
gem "telegram-bot-types", "~> 0.
|
|
13
|
+
gem "telegram-bot-types", "~> 0.6.0"
|
|
14
14
|
gem "rspec", "~> 3.5.0"
|
|
15
15
|
gem "rspec-its", "~> 1.1.0"
|
|
16
16
|
gem "rspec-rails", "~> 3.5.0"
|
data/gemfiles/rails_52.gemfile
CHANGED
|
@@ -10,7 +10,7 @@ group :development do
|
|
|
10
10
|
gem "pry", "~> 0.10.1"
|
|
11
11
|
gem "pry-byebug", "~> 3.2.0"
|
|
12
12
|
gem "sdoc", "~> 0.4.1"
|
|
13
|
-
gem "telegram-bot-types", "~> 0.
|
|
13
|
+
gem "telegram-bot-types", "~> 0.6.0"
|
|
14
14
|
gem "rspec", "~> 3.5.0"
|
|
15
15
|
gem "rspec-its", "~> 1.1.0"
|
|
16
16
|
gem "rspec-rails", "~> 3.5.0"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
git "https://github.com/rails/rails.git" do
|
|
6
|
+
gem "actionpack", "~> 6.0.0.alpha"
|
|
7
|
+
gem "railties", "~> 6.0.0.alpha"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
group :development do
|
|
11
|
+
gem "appraisal", "~> 2.2"
|
|
12
|
+
gem "pry", "~> 0.10.1"
|
|
13
|
+
gem "pry-byebug", "~> 3.2.0"
|
|
14
|
+
gem "sdoc", "~> 0.4.1"
|
|
15
|
+
gem "telegram-bot-types", "~> 0.6.0"
|
|
16
|
+
gem "rspec", "~> 3.5.0"
|
|
17
|
+
gem "rspec-its", "~> 1.1.0"
|
|
18
|
+
gem "rspec-rails", "~> 3.5.0"
|
|
19
|
+
gem "rubocop", "~> 0.52.1"
|
|
20
|
+
gem "coveralls", "~> 0.8.2", require: false
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
gemspec path: "../"
|
|
@@ -1,35 +1,23 @@
|
|
|
1
|
+
require 'telegram/bot/client/api_helper'
|
|
2
|
+
require 'active_support/core_ext/string/inflections'
|
|
3
|
+
|
|
1
4
|
module Telegram
|
|
2
5
|
module Bot
|
|
3
6
|
class Client
|
|
4
7
|
# Actions with type-casted results. Install `telegram-bot-types` gem first.
|
|
5
8
|
module TypedResponse
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
# First we define methods for every available api method to return `result`
|
|
10
|
+
# field instead of object.
|
|
11
|
+
ApiHelper.methods_list.each do |method|
|
|
12
|
+
define_method(method.to_s.underscore) do |*args|
|
|
13
|
+
super(*args)['result']
|
|
14
|
+
end
|
|
15
|
+
end
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
sendMessage: :Message,
|
|
17
|
-
sendPhoto: :Message,
|
|
18
|
-
sendSticker: :Message,
|
|
19
|
-
sendVideo: :Message,
|
|
20
|
-
sendVoice: :Message,
|
|
21
|
-
}.each do |method, type|
|
|
22
|
-
next unless type
|
|
23
|
-
if type.is_a?(Array)
|
|
24
|
-
type_class = Types.const_get(type.first)
|
|
25
|
-
define_method(method.to_s.underscore) do |*args|
|
|
26
|
-
request(method, *args)['result'].map { |x| type_class.new(x) }
|
|
27
|
-
end
|
|
28
|
-
else
|
|
29
|
-
type_class = Types.const_get(type)
|
|
30
|
-
define_method(method.to_s.underscore) do |*args|
|
|
31
|
-
type_class.new request(method, *args)['result']
|
|
32
|
-
end
|
|
17
|
+
# And then override some of them which has castable results.
|
|
18
|
+
Types::Response::WRAPPED_METHODS.each do |method, type|
|
|
19
|
+
define_method(method.to_s.underscore) do |*args|
|
|
20
|
+
Types::Response.wrap(super(*args)['result'], type)
|
|
33
21
|
end
|
|
34
22
|
end
|
|
35
23
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require 'active_support/core_ext/hash/keys'
|
|
2
|
-
require 'active_support/core_ext/hash/transform_values'
|
|
3
2
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
4
3
|
|
|
5
4
|
module Telegram
|
|
@@ -43,7 +42,7 @@ module Telegram
|
|
|
43
42
|
|
|
44
43
|
# Hash of botan clients made from #bots.
|
|
45
44
|
def botans
|
|
46
|
-
@botans ||= bots.
|
|
45
|
+
@botans ||= bots.map { |k, v| [k, v.botan] }.to_h
|
|
47
46
|
end
|
|
48
47
|
|
|
49
48
|
# Returns config for .bots method. By default uses `telegram['bots']` section
|
|
@@ -157,7 +157,14 @@ module Telegram
|
|
|
157
157
|
#
|
|
158
158
|
# Can be overriden with `chat` option for #initialize.
|
|
159
159
|
def chat
|
|
160
|
-
@_chat ||=
|
|
160
|
+
@_chat ||=
|
|
161
|
+
if payload
|
|
162
|
+
if payload.is_a?(Hash)
|
|
163
|
+
payload['chat'] || payload['message'] && payload['message']['chat']
|
|
164
|
+
else
|
|
165
|
+
payload.try(:chat) || payload.try(:message).try!(:chat)
|
|
166
|
+
end
|
|
167
|
+
end
|
|
161
168
|
end
|
|
162
169
|
|
|
163
170
|
# Accessor to `'from'` field of payload. Can be overriden with `from` option
|
|
@@ -35,7 +35,7 @@ RSpec.shared_context 'telegram/bot/updates_controller' do
|
|
|
35
35
|
def deep_stringify(input)
|
|
36
36
|
case input
|
|
37
37
|
when Array then input.map(&method(__callee__))
|
|
38
|
-
when Hash then input.
|
|
38
|
+
when Hash then input.map { |k, v| [k.to_s, deep_stringify(v)] }.to_h
|
|
39
39
|
else input
|
|
40
40
|
end
|
|
41
41
|
end
|
data/lib/telegram/bot/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: telegram-bot
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.13.
|
|
4
|
+
version: 0.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Max Melentiev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-05-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionpack
|
|
@@ -119,6 +119,7 @@ files:
|
|
|
119
119
|
- gemfiles/rails_50.gemfile
|
|
120
120
|
- gemfiles/rails_51.gemfile
|
|
121
121
|
- gemfiles/rails_52.gemfile
|
|
122
|
+
- gemfiles/rails_60.gemfile
|
|
122
123
|
- lib/tasks/telegram-bot.rake
|
|
123
124
|
- lib/telegram/bot.rb
|
|
124
125
|
- lib/telegram/bot/async.rb
|
|
@@ -173,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
173
174
|
version: '0'
|
|
174
175
|
requirements: []
|
|
175
176
|
rubyforge_project:
|
|
176
|
-
rubygems_version: 2.6
|
|
177
|
+
rubygems_version: 2.7.6
|
|
177
178
|
signing_key:
|
|
178
179
|
specification_version: 4
|
|
179
180
|
summary: Library for building Telegram Bots with Rails integration
|