Class: Listen::Silencer::Controller

Inherits:
Object
  • Object
show all
Defined in:
lib/listen/silencer/controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(silencer, default_options) ⇒ Controller

Returns a new instance of Controller.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/listen/silencer/controller.rb', line 6

def initialize(silencer, default_options)
  @silencer = silencer

  opts = default_options

  @prev_silencer_options = {}
  rules = [:only, :ignore, :ignore!].map do |option|
    [option, opts[option]] if opts.key? option
  end

  _reconfigure_silencer(Hash[rules.compact])
end

Instance Method Details

#_reconfigure_silencer(extra_options) ⇒ Object (private)



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/listen/silencer/controller.rb', line 34

def _reconfigure_silencer(extra_options)
  opts = extra_options.dup
  opts = opts.map do |key, value|
    [key, Array(value).flatten.compact]
  end
  opts = Hash[opts]

  if opts.key?(:ignore) && opts[:ignore].empty?
    opts.delete(:ignore)
  end

  @prev_silencer_options = opts
  @silencer.configure(@prev_silencer_options.dup.freeze)
end

#append_ignores(*regexps) ⇒ Object



19
20
21
22
# File 'lib/listen/silencer/controller.rb', line 19

def append_ignores(*regexps)
  prev_ignores = Array(@prev_silencer_options[:ignore])
  _reconfigure_silencer(ignore: [prev_ignores + regexps])
end

#replace_with_bang_ignores(regexps) ⇒ Object



24
25
26
# File 'lib/listen/silencer/controller.rb', line 24

def replace_with_bang_ignores(regexps)
  _reconfigure_silencer(ignore!: regexps)
end

#replace_with_only(regexps) ⇒ Object



28
29
30
# File 'lib/listen/silencer/controller.rb', line 28

def replace_with_only(regexps)
  _reconfigure_silencer(only: regexps)
end