Sha256: 024f0f85ba89b065fd00100f13deb80431ab7ca51180ed227f36040163b6b234
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
module Pleiades module Command module Routing module RouteRefine # 指定したイベントの時のみブロックを実行する # # ## EXAMPLE # only_events :postback do # event scope :hoge, action: :fuga # # => Hoge::Fuga を postbackイベントとして実行する # end # def only_events(*events, &block) return false unless callable_event_type?(events.flatten) return self unless block_given? instance_eval(&block) end # 指定したトークタイプの時のみブロックを実行する # # ## EXAMPLE # talk_type :user do # p @event.source.type # => "user" # postback scope :hoge, action: :fuga # end # def talk_type(*talk_types, &block) return false unless callable_talk_type?(talk_types.flatten) return self unless block_given? instance_eval(&block) end private def callable_talk_type?(types) types.map(&:to_s).include?(@event.source.type) end def callable_event_type?(types) types.map(&:to_s).include?(__event_name__) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems