Class: Renamr::ActionsFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/renamr/factory.rb

Overview

Produces actions for certain directories.

Constant Summary collapse

LIMIT =

Synology eCryptfs limitation.

143

Instance Method Summary collapse

Constructor Details

#initialize(cfg) ⇒ ActionsFactory

Returns a new instance of ActionsFactory.



28
29
30
# File 'lib/renamr/factory.rb', line 28

def initialize(cfg)
  @cfg = cfg
end

Instance Method Details

#produce(dir) ⇒ Object

rubocop:disable Metrics/MethodLength, Metrics/AbcSize



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/renamr/factory.rb', line 32

def produce(dir) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
  if @cfg.lim?
    [
      OmitAction.new(LIMIT),
      TruncateAction.new(LIMIT)
    ]
  else
    [
      PointAction.new(dir), # Should be the first.
      @cfg.pos.nil? ? nil : RemoveAction.new(@cfg.pos, @cfg.len),
      @cfg.src.nil? ? nil : SubstituteAction.new(@cfg.src, @cfg.dst),
      ManualLocalizationAction.new,
      DowncaseAction.new,
      CharAction.new,
      RuToEnAction.new,
      AutoLocalizationAction.new,
      @cfg.mod? ? PrependDateAction.new(dir) : nil,
      @cfg.pre.nil? ? nil : PrependAction.new(@cfg.pre),
      ASCIIValidatorAction.new,
      TrimAction.new,
      TruncateAction.new(LIMIT),
      DateAction.new,
      ExistenceAction.new(dir, LIMIT) # Should be the last.
    ].compact
  end
end