Class: GitFit::Privacy::PolylineFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/git_fit/privacy/polyline_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(config: {}) ⇒ PolylineFilter

Returns a new instance of PolylineFilter.



4
5
6
7
8
9
# File 'lib/git_fit/privacy/polyline_filter.rb', line 4

def initialize(config: {})
  @start_end_range = (config["start_end_range"] || 200).to_f / 1000.0
  @ignore_polyline = decode_polyline(config["polyline"]) if config["polyline"]
  @ignore_range = (config["range"] || 0).to_f / 1000.0
  @before_saving = config["before_saving"] || false
end

Instance Method Details

#before_saving?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/git_fit/privacy/polyline_filter.rb', line 11

def before_saving?
  @before_saving
end

#filter(polyline_str) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/git_fit/privacy/polyline_filter.rb', line 15

def filter(polyline_str)
  return nil if polyline_str.nil? || polyline_str.empty?
  points = decode_polyline(polyline_str)
  return polyline_str if points.nil? || points.empty?
  points = filter_start_end(points)
  points = filter_range(points)
  return nil if points.empty?
  encode_polyline(points)
end