viberroo 0.3.4 → 0.3.6

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
2
  SHA256:
3
- metadata.gz: 8680e2cafc78f601457863ee3ea61012d102da14d025c232847c0d0f96a391f5
4
- data.tar.gz: 5387376c93d2aef3a23707eb936094d07f4c0e93407b116b616ab639b6f6020d
3
+ metadata.gz: c569eed07cf0475903f3c9a5777dc953cd0acde17b0e7a4c4da83f8fbe6d9432
4
+ data.tar.gz: 055dc6395d9aba734402ad5055288581576b7fccf55d844862a1da916ef844a0
5
5
  SHA512:
6
- metadata.gz: cda037c2fab0c148db8aff216ebbe414239e05c648bc28f3324dd9d35b73e343da61fc9b8cbbcd61add30f3320ba6fdaebccea866f0a63d6b4630e3caeede862
7
- data.tar.gz: a4b5427873cc6bf1eb2ca81e8965a54052dc1d01715e19e0928972c0fb0f5be3d700457885027ab08b42d62056bbf14bdc08624bc197554257347e6fb32b309d
6
+ metadata.gz: d55b1a657492018e73c48aa2d662a46e2bf94576c491507b0783b94fd8ab47c4e55b8f3223722f70601a6afa9bd7c6d3b5c9cd465e05f8c651326e8925b890e7
7
+ data.tar.gz: 1c43468c37ff74c91c471615f75b3c00a9e78fe68d80ea771afc475cb7a3272bedd5876801355541fc8718fb1464e3bef28a75a74ca35ae0513e7bfc322ae968
data/lib/viberroo/bot.rb CHANGED
@@ -141,7 +141,12 @@ module Viberroo
141
141
  # @see https://developers.viber.com/docs/api/rest-bot-api/#keyboards
142
142
  #
143
143
  def send_message(message, keyboard: {})
144
- request(URL::MESSAGE, { receiver: @response.user_id }.merge(message, keyboard))
144
+ request(
145
+ URL::MESSAGE,
146
+ { receiver: @response.user_id }.merge(message, keyboard).tap do |hash|
147
+ hash.merge!(min_api_version_hash(keyboard)) unless hash[:min_api_version]
148
+ end
149
+ )
145
150
  end
146
151
 
147
152
  # @deprecated Use {#send_message} instead.
@@ -249,5 +254,24 @@ module Viberroo
249
254
  def caller_name
250
255
  caller[1][/`.*'/][1..-2]
251
256
  end
257
+
258
+ ##
259
+ # @!visibility private
260
+ #
261
+ # @note Iterates each keyboard input to identify the maximum required :min_api_version param.
262
+ #
263
+ # @return [Hash || Empty Hash]
264
+ #
265
+ def min_api_version_hash(keyboard)
266
+ buttons_array = keyboard.dig(:keyboard, :Buttons)
267
+
268
+ return {} unless buttons_array
269
+
270
+ min_api_version = buttons_array.map { |btn| btn[:min_api_version] }.compact.max
271
+
272
+ return {} unless min_api_version
273
+
274
+ { min_api_version: min_api_version }
275
+ end
252
276
  end
253
277
  end
@@ -16,7 +16,15 @@ module Viberroo
16
16
  # skip_before_action :verify_authenticity_token
17
17
  #
18
18
  # def callback
19
+ # # For example, params contain the following:
20
+ # # { foo: { bar: { baz: :boo }}}
19
21
  # @response = Viberroo::Response.new(params.permit!)
22
+ # # Those can be accessed through params:
23
+ # puts @response.params.foo
24
+ # # Or directly:
25
+ # puts @response.foo
26
+ # puts @response.foo.bar
27
+ # puts @response.foo.bar.baz
20
28
  # @bot = Viberroo::Bot.new(response: @response)
21
29
  #
22
30
  # head :ok
@@ -47,5 +55,9 @@ module Viberroo
47
55
  @params.dig(:user, :id)
48
56
  end
49
57
  end
58
+
59
+ def method_missing(method)
60
+ params.public_send(method)
61
+ end
50
62
  end
51
63
  end
@@ -1,3 +1,3 @@
1
1
  module Viberroo
2
- VERSION = '0.3.4'.freeze
2
+ VERSION = '0.3.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: viberroo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Habchak
@@ -56,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  requirements: []
59
- rubygems_version: 3.3.7
59
+ rubygems_version: 3.3.26
60
60
  signing_key:
61
61
  specification_version: 4
62
62
  summary: Viber bot for Ruby / Rails.