QutBioacoustics/baw-server

View on GitHub
lib/gems/baw-app/lib/inspector.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module BawApp
  # https://gist.github.com/ubermajestix/3644301
  module Inspector
    def inspect
      string = "#<#{self.class.name}:#{object_id} "
      fields = self.class.inspector_fields.map { |field| "#{field}: #{send(field)}" }
      string << fields.join(', ') << '>'
    end

    def self.inspected
      @inspected ||= []
    end

    def self.included(source)
      # $stdout.puts "Overriding inspect on #{source}"
      inspected << source
      source.class_eval do
        def self.inspector(*fields)
          @inspector_fields = *fields
        end

        def self.inspector_fields
          @inspector_fields ||= []
        end
      end
    end
  end
end