Sha256: a8d2d4c4c3fcfe94871cf5a7ce657e033b1f2896db09a014a488fb31368de8c6

Contents?: true

Size: 964 Bytes

Versions: 4

Compression:

Stored size: 964 Bytes

Contents

require_relative "message"

module Hexx
  class Service

    # Declares methods for creation messages by a service:
    #
    # <tt>t(text, options = {})</tt>:: translates text in the service's scope.
    # <tt>messages</tt>:: returns an array of service's messages.
    # <tt>add_message(type, text, options = {})</tt>:: adds a message to array.
    #
    module Messages

      private

      # Translates given key in current service's scope.
      def t(key, options = {})
        return key unless key.is_a? Symbol
        scope = %w(activemodel messages models) << self.class.name.underscore
        I18n.t key, options.merge(scope: scope)
      end

      # Returns the array of service's messages.
      def messages
        @messages ||= []
      end

      # Adds the translated message to the messages array.
      def add_message(type, text, options = {})
        messages << Message.new(type: type, text: t(text, options))
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hexx-2.2.0 lib/hexx/service/messages.rb
hexx-2.1.0 lib/hexx/service/messages.rb
hexx-2.0.2 lib/hexx/service/messages.rb
hexx-2.0.1 lib/hexx/service/messages.rb