viberroo 0.3.4 → 0.3.6

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 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.