lib/fusuma/plugin/buffers/gesture_buffer.rb in fusuma-3.0.0 vs lib/fusuma/plugin/buffers/gesture_buffer.rb in fusuma-3.1.0

- old
+ new

@@ -9,11 +9,10 @@ class GestureBuffer < Buffer CacheEntry = Struct.new(:checked, :value) DEFAULT_SOURCE = "libinput_gesture_parser" DEFAULT_SECONDS_TO_KEEP = 100 - def initialize(*args) super(*args) @cache = {} @cache_select_by = {} @cache_sum10 = {} @@ -82,28 +81,28 @@ end # @param attr [Symbol] # @return [Float] def sum_last10_attrs(attr) # sums last 10 values of attr (or all if length < 10) - cache_entry = ( @cache_sum10[attr] ||= CacheEntry.new(0, 0) ) + cache_entry = (@cache_sum10[attr] ||= CacheEntry.new(0, 0)) upd_ev = updating_events - if upd_ev.length > cache_entry.checked + 1 then + if upd_ev.length > cache_entry.checked + 1 cache_entry.value = upd_ev.last(10).map do |gesture_event| gesture_event.record.delta[attr].to_f end.reduce(:+) elsif upd_ev.length > cache_entry.checked cache_entry.value = cache_entry.value + upd_ev[-1].record.delta[attr].to_f - \ - (upd_ev.length > 10 ? upd_ev[-11].record.delta[attr].to_f : 0) + ((upd_ev.length > 10) ? upd_ev[-11].record.delta[attr].to_f : 0) else return cache_entry.value end cache_entry.checked = upd_ev.length cache_entry.value end def updating_events - cache_entry = ( @cache[:updating_events] ||= CacheEntry.new(0, []) ) + cache_entry = (@cache[:updating_events] ||= CacheEntry.new(0, [])) cache_entry.checked.upto(@events.length - 1).each do |i| (cache_entry.value << @events[i]) if @events[i].record.status == "update" end cache_entry.checked = @events.length cache_entry.value @@ -138,20 +137,20 @@ events = @events.select(&block) self.class.new events end def select_by_type(type) - cache_entry = ( @cache_select_by[type] ||= CacheEntry.new(0, self.class.new([])) ) + cache_entry = (@cache_select_by[type] ||= CacheEntry.new(0, self.class.new([]))) cache_entry.checked.upto(@events.length - 1).each do |i| (cache_entry.value.events << @events[i]) if @events[i].record.gesture == type end cache_entry.checked = @events.length cache_entry.value end def select_from_last_begin return self if empty? - cache_entry = ( @cache[:last_begin] ||= CacheEntry.new(0, nil) ) + cache_entry = (@cache[:last_begin] ||= CacheEntry.new(0, nil)) cache_entry.value = (@events.length - 1).downto(cache_entry.checked).find do |i| @events[i].record.status == "begin" end || cache_entry.value cache_entry.checked = @events.length