Sha256: 8faac41985426786b28439e67a42d68e2821759008c3f2d13fad1b968215b76f
Contents?: true
Size: 1.11 KB
Versions: 4
Compression:
Stored size: 1.11 KB
Contents
module Fusuma # vector data class Pinch TYPE = 'pinch'.freeze BASE_THERESHOLD = 0.3 BASE_INTERVAL = 0.05 def initialize(diameter) @diameter = diameter.to_f end attr_reader :diameter def direction return 'in' if diameter > 0 'out' end def enough?(trigger) MultiLogger.debug(diameter: diameter) enough_diameter?(trigger) && enough_interval?(trigger) && self.class.touch_last_time end private def enough_diameter?(trigger) diameter.abs > threshold(trigger) end def enough_interval?(trigger) return true if first_time? return true if (Time.now - self.class.last_time) > interval_time(trigger) false end def first_time? !self.class.last_time end def threshold(trigger) @threshold ||= BASE_THERESHOLD * Config.threshold(trigger) end def interval_time(trigger) @interval_time ||= BASE_INTERVAL * Config.interval(trigger) end class << self attr_reader :last_time def touch_last_time @last_time = Time.now end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
fusuma-0.11.1 | lib/fusuma/pinch.rb |
fusuma-0.11.0 | lib/fusuma/pinch.rb |
fusuma-0.10.2 | lib/fusuma/pinch.rb |
fusuma-0.10.1 | lib/fusuma/pinch.rb |