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

Version Path
rails-add_ons-3.0.0.pre1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.2.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.2.0 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.1.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.1.0 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.0.2 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.0.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-2.0.0 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.5.2 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.5.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.5.0 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.4.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.4.0 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.3.3 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.3.2 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.3.1 app/services/rails/add_ons/service/messages.rb
rails-add_ons-1.3.0 app/services/rails/add_ons/service/messages.rb