Sha256: cefc2d196d1dacdcbe7c451aa47c396e11edc7cec8f3207a2cd9f29b5c4b92cf

Contents?: true

Size: 1.37 KB

Versions: 37

Compression:

Stored size: 1.37 KB

Contents

# Toplevel Pubnub module.
module Pubnub
  # Validator module that holds all validators modules
  module Validator
    # Validator for Publish event
    module Publish
      include CommonValidator

      def validate!
        return if @skip_validate
        validate_publish_key!
        validate_channel!
        validate_message!
        validate_store!
        validate_meta!
      end

      private

      def validate_publish_key!
        return unless @publish_key.nil?
        raise(
          ArgumentError.new,
          ':publish_key is required for publish event.'
        )
      end

      def validate_store!
        return if @store.nil? || [true, false].include?(@store)
        raise(
          ArgumentError.new,
          ':store parameter invalid (should be true or false).'
        )
      end

      def validate_channel!
        return unless @channel.nil? || @channel.empty?
        raise(
          ArgumentError.new,
          ':channel is required for publish event.'
        )
      end

      def validate_message!
        return unless @message.nil?
        raise(
          ArgumentError.new,
          ':message is required for publish event.'
        )
      end

      def validate_meta!
        return unless !@meta.nil? && @meta.class != Hash
        raise(
          ArgumentError.new,
          ':meta parameter must me hash.'
        )
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
pubnub-5.5.0 lib/pubnub/validators/publish.rb
pubnub-5.4.0 lib/pubnub/validators/publish.rb
pubnub-5.3.5 lib/pubnub/validators/publish.rb
pubnub-5.3.4 lib/pubnub/validators/publish.rb
pubnub-5.3.3 lib/pubnub/validators/publish.rb
pubnub-5.3.2 lib/pubnub/validators/publish.rb
pubnub-5.3.1 lib/pubnub/validators/publish.rb
pubnub-5.3.0 lib/pubnub/validators/publish.rb
pubnub-5.2.2 lib/pubnub/validators/publish.rb
pubnub-5.2.1 lib/pubnub/validators/publish.rb
pubnub-5.2.0 lib/pubnub/validators/publish.rb
pubnub-5.1.2 lib/pubnub/validators/publish.rb
pubnub-5.1.1 lib/pubnub/validators/publish.rb
pubnub-5.1.0 lib/pubnub/validators/publish.rb
pubnub-5.0.0 lib/pubnub/validators/publish.rb
pubnub-4.8.0 lib/pubnub/validators/publish.rb
pubnub-4.7.1 lib/pubnub/validators/publish.rb
pubnub-4.7.0 lib/pubnub/validators/publish.rb
pubnub-4.6.2 lib/pubnub/validators/publish.rb
pubnub-4.6.1 lib/pubnub/validators/publish.rb