Class: Roger::Release::Processors::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/roger/release/processors.rb

Overview

Abstract Processor class

Direct Known Subclasses

Finalizers::Base, Mockup, UrlRelativizer

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.nameObject

Name of this processor



13
14
15
# File 'lib/roger/release/processors.rb', line 13

def name
  @name || raise(ArgumentError, "Implement in subclass")
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/roger/release/processors.rb', line 7

def options
  @options
end

#releaseObject (readonly)

Returns the value of attribute release.



7
8
9
# File 'lib/roger/release/processors.rb', line 7

def release
  @release
end

Instance Method Details

#call(release, options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/roger/release/processors.rb', line 30

def call(release, options = {})
  @release = release
  @options = {}.update(default_options)
  @options.update(options) if options
  @options.update(my_project_options)

  # Stop immideatly if we've been disabled
  return if @options[:disable]

  perform
end

#default_optionsObject

Default options for this processor



19
20
21
# File 'lib/roger/release/processors.rb', line 19

def default_options
  {}
end

#nameObject

Name of this processor.

  • Can be set by setting the :name config in the release block

  • Can be overwritten in implementation if needed



26
27
28
# File 'lib/roger/release/processors.rb', line 26

def name
  options && options[:name] || self.class.name
end