Class: Kennel::Filter
- Inherits:
-
Object
- Object
- Kennel::Filter
- Defined in:
- lib/kennel/filter.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ Filter
constructor
A new instance of Filter.
- #project_filter ⇒ Object
- #tracking_id_filter ⇒ Object
Constructor Details
#initialize ⇒ Filter
Returns a new instance of Filter.
5 6 7 8 |
# File 'lib/kennel/filter.rb', line 5 def initialize project_filter tracking_id_filter end |
Class Method Details
.filter_resources!(resources, by, against, name, env) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/kennel/filter.rb', line 23 def self.filter_resources!(resources, by, against, name, env) return unless against against = against.uniq before = resources.dup resources.select! { |p| against.include?(p.send(by)) } keeping = resources.uniq(&by).size return if keeping == against.size raise <<~MSG.rstrip #{env}=#{against.join(",")} matched #{keeping} #{name}, try any of these: #{before.map(&by).sort.uniq.join("\n")} MSG end |
Instance Method Details
#project_filter ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/kennel/filter.rb', line 10 def project_filter projects = ENV["PROJECT"]&.split(",")&.sort&.uniq tracking_projects = tracking_id_filter&.map { |id| id.split(":", 2).first }&.sort&.uniq if projects && tracking_projects && projects != tracking_projects raise "do not set PROJECT= when using TRACKING_ID=" end (projects || tracking_projects) end |
#tracking_id_filter ⇒ Object
19 20 21 |
# File 'lib/kennel/filter.rb', line 19 def tracking_id_filter (tracking_id = ENV["TRACKING_ID"]) && tracking_id.split(",").sort.uniq end |