Sha256: fd4db6b8c89d506039b29c55a0cce2ce63811eaad04d1688dca41c018d7ae85c
Contents?: true
Size: 1.23 KB
Versions: 17
Compression:
Stored size: 1.23 KB
Contents
module Rails module AddOns module Service module Messages private def initialize_messages @messages = [] end def say(what, &block) @indent ||= 0 if block_given? @indent += 1 output(_message("#{output_prefix}#{(" " * @indent)}#{what}...", level: @indent)) block_result = yield say_done @indent -= 1 block_result else output(_message("#{output_prefix}#{(" " * @indent)}#{what}", level: @indent)) end end def say_done say " => Done" end def output_prefix "[#{self.class.name}] " end def output(what) @messages << what puts what unless silenced? end def silenced? !!@options[:silence] end def copy_messages_to_result @result.instance_variable_set(:@messages, @messages) end def _message(content, options = {}) Rails::AddOns::Service::Message::Base.new(content, level: options[:level]) end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems