Sha256: 49241e993198488ae8957cf64fb133a5e563075667fafe8e9224f27c161e4959

Contents?: true

Size: 979 Bytes

Versions: 12

Compression:

Stored size: 979 Bytes

Contents

require "cabin/namespace"

# An experiment to use AD&D-style log levels, because why not? 'info' and
# 'fatal' and other log levels are silly anyway.
#
# Plus, now you can 'include Dragons' in your logger, which means it
# has +2 against Knights and a special fire breathing attack..
module Cabin::Mixins::Dragons
  orders = %w(lawful ambivalent chaotic)
  desires = %w(good neutral evil)

  orders.each do |order|
    desires.each do |desire|
      # alignment will be like 'lawful_good' etc
      alignment = "#{order} #{desire}"
      define_method(alignment.gsub(" ", "_")) do |message, data={}|
        log(alignment, message, data)
      end
    end # desires
  end # orders

  private
  def log(alignment, message, data={})
    # Invoke 'info?' etc to ask if we should act.
    if message.is_a?(Hash)
      data.merge!(message)
    else
      data[:message] = message
    end

    data[:alignment] = alignment
    publish(data)
  end # def log
end # module Cabin::Dragons

Version data entries

12 entries across 11 versions & 5 rubygems

Version Path
logstash-filter-zabbix-0.1.2 vendor/bundle/jruby/1.9/gems/cabin-0.8.1/lib/cabin/mixins/dragons.rb
logstash-filter-zabbix-0.1.1 vendor/bundle/jruby/1.9/gems/cabin-0.8.1/lib/cabin/mixins/dragons.rb
ivanvc-logstash-input-s3-3.1.1.4 vendor/local/gems/cabin-0.8.1/lib/cabin/mixins/dragons.rb
ivanvc-logstash-input-s3-3.1.1.3 vendor/local/gems/cabin-0.8.1/lib/cabin/mixins/dragons.rb
ivanvc-logstash-input-s3-3.1.1.2 vendor/local/gems/cabin-0.8.1/lib/cabin/mixins/dragons.rb
cabin-0.9.0 lib/cabin/mixins/dragons.rb
cabin-0.8.1 lib/cabin/mixins/dragons.rb
cabin-0.8.0 lib/cabin/mixins/dragons.rb
logstash-input-beats-2.0.2 vendor/jruby/1.9/gems/logstash-codec-json-2.0.3/vendor/gems/cabin-0.7.2/lib/cabin/mixins/dragons.rb
logstash-input-beats-2.0.2 vendor/jruby/1.9/gems/cabin-0.7.2/lib/cabin/mixins/dragons.rb
logstash-codec-json-2.0.3 vendor/gems/cabin-0.7.2/lib/cabin/mixins/dragons.rb
cabin-0.7.2 lib/cabin/mixins/dragons.rb