Class: FilterRename::FilterPipe

Inherits:
Object
  • Object
show all
Defined in:
lib/filter_rename/filter_pipe.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fname, filters, cfg) ⇒ FilterPipe

Returns a new instance of FilterPipe.



6
7
8
9
10
11
12
13
# File 'lib/filter_rename/filter_pipe.rb', line 6

def initialize(fname, filters, cfg)
  # Filter params have to be reset for each file
  @cfg = cfg.filter.clone
  @source = FilenameFactory.create(fname, cfg.global)
  @dest = Marshal.load(Marshal.dump(@source))
  @filters = (filters.class == Array) ? filters : filters.filters
  @words = cfg.words
end

Instance Attribute Details

#destObject (readonly)

Returns the value of attribute dest.



4
5
6
# File 'lib/filter_rename/filter_pipe.rb', line 4

def dest
  @dest
end

#sourceObject (readonly)

Returns the value of attribute source.



4
5
6
# File 'lib/filter_rename/filter_pipe.rb', line 4

def source
  @source
end

Instance Method Details

#applyObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/filter_rename/filter_pipe.rb', line 28

def apply

  @filters.each_with_index do |f, i|

    filter = f.keys.pop
    params = f.values.pop

    if [FilterRename::Filters::Config, FilterRename::Filters::Select].include? filter
      filter.new(@dest, cfg: @cfg, words: @words).filter(params)
    else
      filter.new(@dest, cfg: @cfg, words: @words).filter(params) unless skip?
    end

  end

  self
end

#changed?Boolean

Returns:



15
16
17
# File 'lib/filter_rename/filter_pipe.rb', line 15

def changed?
  ! unchanged?
end

#diffObject



24
25
26
# File 'lib/filter_rename/filter_pipe.rb', line 24

def diff
  @source.diff(@dest)
end

#rename!Object



46
47
48
# File 'lib/filter_rename/filter_pipe.rb', line 46

def rename!
  @source.rename!(@dest)
end

#unchanged?Boolean Also known as: identical?

Returns:



19
20
21
# File 'lib/filter_rename/filter_pipe.rb', line 19

def unchanged?
  @source == @dest
end