Class: Kennel::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/kennel/filter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFilter

Returns a new instance of Filter.



7
8
9
10
11
# File 'lib/kennel/filter.rb', line 7

def initialize
  # read early so we fail fast on invalid user input
  @tracking_id_filter = read_tracking_id_filter_from_env
  @project_filter = read_project_filter_from_env
end

Instance Attribute Details

#project_filterObject (readonly)

Returns the value of attribute project_filter.



5
6
7
# File 'lib/kennel/filter.rb', line 5

def project_filter
  @project_filter
end

Instance Method Details

#filter_parts(parts) ⇒ Object



17
18
19
# File 'lib/kennel/filter.rb', line 17

def filter_parts(parts)
  filter_resources(parts, :tracking_id, tracking_id_filter, "resources", "TRACKING_ID")
end

#filter_projects(projects) ⇒ Object



13
14
15
# File 'lib/kennel/filter.rb', line 13

def filter_projects(projects)
  filter_resources(projects, :kennel_id, project_filter, "projects", "PROJECT")
end

#filtering?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/kennel/filter.rb', line 21

def filtering?
  !project_filter.nil?
end

#matches_project_id?(project_id) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/kennel/filter.rb', line 25

def matches_project_id?(project_id)
  !filtering? || project_filter.include?(project_id)
end

#matches_tracking_id?(tracking_id) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
# File 'lib/kennel/filter.rb', line 29

def matches_tracking_id?(tracking_id)
  return true unless filtering?
  return tracking_id_filter.include?(tracking_id) if tracking_id_filter

  project_id = tracking_id.split(":").first
  project_filter.include?(project_id)
end

#tracking_id_for_path(tracking_id) ⇒ Object



37
38
39
40
# File 'lib/kennel/filter.rb', line 37

def tracking_id_for_path(tracking_id)
  return tracking_id unless tracking_id.end_with?(".json")
  tracking_id.sub("generated/", "").sub(".json", "").sub("/", ":")
end