Sha256: 9243ce92819ae65777427d7b2226a9aff675f608b93e4e1b36e2648f8b4bb3fb

Contents?: true

Size: 779 Bytes

Versions: 1

Compression:

Stored size: 779 Bytes

Contents

module Hipbot
  module Callbacks
    class Base
      protected

      def with_room params
        yield Room.find_or_create_by(params) if valid_params?(params)
      end

      def with_user params
        yield User.find_or_create_by(params) if valid_params?(params)
      end

      def with_user_by_name_or_mention name_or_mention
        return if !valid_value?(name_or_mention)

        yield User.where(mention: name_or_mention).first ||
          User.where(name: name_or_mention).first ||
          User.create(name: name_or_mention, mention: name_or_mention)
      end

      private

      def valid_params? params
        params.any?{ |_, v| valid_value?(v) }
      end

      def valid_value? value
        !value.nil? && value.present?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hipbot-1.0.4 lib/hipbot/callbacks/base.rb