class Pineapples::Actions::Action

Constants

STATUS_COLORS

Attributes

colors[R]
generator[R]

Reference to AppGenerator instance

options[RW]

Options hash

Public Class Methods

colors() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 27
def self.colors
  @colors ||= {}
end
inherited(child_class) click to toggle source

Let status colors set by .status_color macro be inherited

Calls superclass method
# File lib/pineapples/actions/base/action.rb, line 18
def self.inherited(child_class)
  super
  child_class.instance_variable_set('@colors', self.colors)
end
new(generator, options = {}) click to toggle source
# File lib/pineapples/actions/base/action.rb, line 31
def initialize(generator, options = {})
  @generator = generator
  @options = options
end
status_color(status, color) click to toggle source
# File lib/pineapples/actions/base/action.rb, line 23
def self.status_color(status, color)
  colors[status] = color
end

Public Instance Methods

invoke!() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 36
def invoke!
  raise NotImplementedError, "You should really implement invoke! method on Action subclasses"
end
skip?() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 40
def skip?
  @skip = false if @skip.nil?
  @skip
end

Protected Instance Methods

color(status) click to toggle source
# File lib/pineapples/actions/base/action.rb, line 65
def color(status)
  color = self.class.colors[status]
  color = STATUS_COLORS[color] if STATUS_COLORS.keys.include?(color)
end
execute?() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 51
def execute?
  !pretend?
end
pretend?() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 47
def pretend?
  generator.pretend?
end
say_status(status, message = self.message, color = nil) click to toggle source

used to log action actions (no pun intended)

# File lib/pineapples/actions/base/action.rb, line 60
def say_status(status, message = self.message, color = nil)
  color = color(status) if color.nil?
  generator.say_status(status, message, color) if verbose?
end
verbose?() click to toggle source
# File lib/pineapples/actions/base/action.rb, line 55
def verbose?
  options[:verbose] || generator.verbose?
end