Class: Prune::CategoryBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/prune/retention.rb

Overview

A builder for building categories – this is essentially the DSL used in the retention policy.

Instance Method Summary collapse

Constructor Details

#initialize(description) ⇒ CategoryBuilder

Returns a new instance of CategoryBuilder.



64
65
66
67
# File 'lib/prune/retention.rb', line 64

def initialize( description )
  @description = description
  @quiet = false
end

Instance Method Details

#archiveObject



90
91
92
# File 'lib/prune/retention.rb', line 90

def archive
  @action = :archive
end

#buildObject



69
70
71
72
73
74
75
76
# File 'lib/prune/retention.rb', line 69

def build
  if @predicate.nil? then
    raise "Category #{@description} has no predicate defined."
  elsif @action.nil? then
    raise "Category #{@description} has no action defined."
  end
  Category.new( @description, @action, @quiet, @predicate )
end

#ignoreObject



82
83
84
# File 'lib/prune/retention.rb', line 82

def ignore
  @action = :ignore
end

#match(&block) ⇒ Object



78
79
80
# File 'lib/prune/retention.rb', line 78

def match( &block )
  @predicate = Proc.new &block
end

#quietObject



98
99
100
# File 'lib/prune/retention.rb', line 98

def quiet
  @quiet = true
end

#removeObject



94
95
96
# File 'lib/prune/retention.rb', line 94

def remove
  @action = :remove
end

#retainObject



86
87
88
# File 'lib/prune/retention.rb', line 86

def retain
  @action = :retain
end