telegram-bot 0.13.0 → 0.13.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fd54d434c70a78a128767db94de31a6fbf07ca11
4
- data.tar.gz: 669957947937536ba2257af7362d97c75e82a236
2
+ SHA256:
3
+ metadata.gz: 9d72dfb00c1dab4bf5b80276354ff102737b537a02c1ba40656bb9ab6eb28288
4
+ data.tar.gz: ed15a4fa045c319c035ab4b5ec9b06169b4a7455004de59fbaeac7656de7c795
5
5
  SHA512:
6
- metadata.gz: abaa6ac4240292eb5200fca36b3fc30e9e30a9232a4694cf797ef3754eb8240c728203718b6a29bf8b29792b0e9312b93bfbccc5682cfaef250a12ec95e6e9e6
7
- data.tar.gz: 77715ec8f7cc3f2f9752d1ab3faa821dbbbaf748f8c90dcc450c351e8786150301c84e1d78c87f2ae974b5413e12a49c5617fdec737d5864837ba0cc3fb1ad3a
6
+ metadata.gz: d2cd894d342bb01a901b2c24a243165b580adfd5bcbaef632d3d272693424b5b2f13b7236edcf32dcb897d123f68410c97e0c3235106e31f4de06ace5a712406
7
+ data.tar.gz: cb95a89bcf60e2993d6011203c7f6e4e56f725e2455cbe31e351f60fd72f9e2e40296da284c1147f36f4dcb5f9d004efa2f99aa8791563e3282e8ece64c29499
@@ -1,17 +1,34 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.5
5
- - 2.4
6
- - 2.3
4
+ - 2.5
5
+ - 2.4
7
6
  gemfile:
8
- - gemfiles/rails_52.gemfile
9
- - gemfiles/rails_51.gemfile
10
- - gemfiles/rails_50.gemfile
11
- - gemfiles/rails_42.gemfile
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: https://github.com/travis-ci/travis-ci/issues/8978
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
@@ -1,3 +1,10 @@
1
+ appraise 'rails-60' do
2
+ git 'https://github.com/rails/rails.git' do
3
+ gem 'actionpack', '~> 6.0.0.alpha'
4
+ gem 'railties', '~> 6.0.0.alpha'
5
+ end
6
+ end
7
+
1
8
  appraise 'rails-52' do
2
9
  gem 'actionpack', '~> 5.2.0.beta2'
3
10
  gem 'railties', '~> 5.2.0.beta2'
@@ -1,4 +1,8 @@
1
- # Unreleased
1
+ # 0.13.1
2
+
3
+ - Extracted typed response mappings to telegram-bot-types gem.
4
+ It now provides definitions for all API v3.5 methods.
5
+ - Fix #chat for non-message updates with TypedUpdates enabled
2
6
 
3
7
  # 0.13.0
4
8
 
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ group :development do
8
8
  gem 'pry-byebug', '~> 3.2.0'
9
9
  gem 'sdoc', '~> 0.4.1'
10
10
 
11
- gem 'telegram-bot-types', '~> 0.3.0'
11
+ gem 'telegram-bot-types', '~> 0.6.0'
12
12
 
13
13
  gem 'rspec', '~> 3.5.0'
14
14
  gem 'rspec-its', '~> 1.1.0'
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
- - Ligthweight client for bot API (with fast and thread-safe
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.
@@ -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.3.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"
@@ -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.3.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"
@@ -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.3.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"
@@ -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.3.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
- getFile: :File,
8
- getMe: :User,
9
- getUpdates: [:Update],
10
- getUserProfilePhotos: :UserProfilePhotos,
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
- forwardMessage: :Message,
13
- sendAudio: :Message,
14
- sendDocument: :Message,
15
- sendLocation: :Message,
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.transform_values(&:botan)
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 ||= payload.try! { |x| x['chat'] || x['message'] && x['message']['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.transform_keys(&:to_s).transform_values(&method(__callee__))
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
@@ -1,6 +1,6 @@
1
1
  module Telegram
2
2
  module Bot
3
- VERSION = '0.13.0'.freeze
3
+ VERSION = '0.13.1'.freeze
4
4
 
5
5
  def self.gem_version
6
6
  Gem::Version.new VERSION
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.0
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-02-02 00:00:00.000000000 Z
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.14
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