Sha256: 509de5a08a1cf0caa2a0a057a737b00269d26b026f6eb689f708ab783202708b

Contents?: true

Size: 985 Bytes

Versions: 24

Compression:

Stored size: 985 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 pretty lame 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

24 entries across 24 versions & 3 rubygems

Version Path
able-neo4j-1.0.0 vendor/bundle/jruby/1.9/gems/cabin-0.7.1/lib/cabin/mixins/dragons.rb
logstash-input-beats-2.0.2 vendor/jruby/1.9/gems/cabin-0.7.1/lib/cabin/mixins/dragons.rb
logstash-input-beats-0.9.2 vendor/jruby/1.9/gems/cabin-0.7.1/lib/cabin/mixins/dragons.rb
logstash-input-beats-0.9.1 vendor/jruby/1.9/gems/cabin-0.7.1/lib/cabin/mixins/dragons.rb
cabin-0.7.1 lib/cabin/mixins/dragons.rb
cabin-0.6.1 lib/cabin/mixins/dragons.rb
cabin-0.6.0 lib/cabin/mixins/dragons.rb
cabin-0.5.0 lib/cabin/mixins/dragons.rb
cabin-0.4.4 lib/cabin/mixins/dragons.rb
cabin-0.4.3 lib/cabin/mixins/dragons.rb
cabin-0.4.2 lib/cabin/mixins/dragons.rb
cabin-0.4.1 lib/cabin/mixins/dragons.rb
cabin-0.3.8 lib/cabin/mixins/dragons.rb
cabin-0.3.7 lib/cabin/mixins/dragons.rb
cabin-0.3.6 lib/cabin/mixins/dragons.rb
cabin-0.3.2 lib/cabin/mixins/dragons.rb
cabin-0.3.1 lib/cabin/mixins/dragons.rb
cabin-0.3.0 lib/cabin/mixins/dragons.rb
cabin-0.2.3 lib/cabin/mixins/dragons.rb
cabin-0.2.2 lib/cabin/mixins/dragons.rb