Sha256: 639a2cbc18863d3717c6a6ef7f5e2857239dfcea3de2b03cc9a10bc6658fde5b

Contents?: true

Size: 833 Bytes

Versions: 4

Compression:

Stored size: 833 Bytes

Contents

module EasyML
  module Logging
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def log_method(method_name, message, verbose: false)
        original_method = instance_method(method_name)
        define_method(method_name) do |*args, &block|
          log_message(message, verbose: verbose)
          result = original_method.bind(self).call(*args, &block)
          result
        end
      end
    end

    def log_message(message, verbose: false)
      if verbose
        log_verbose(message)
      else
        puts message
      end
    end

    def log_verbose(message)
      puts message if @verbose
    end

    def log_warning(message)
      puts "\e[33mWARNING: #{message}\e[0m"
    end

    def log_info(message)
      puts "\e[34mINFO: #{message}\e[0m"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
easy_ml-0.1.4 lib/easy_ml/logging.rb
easy_ml-0.1.3 lib/easy_ml/logging.rb
easy_ml-0.1.2 lib/easy_ml/logging.rb
easy_ml-0.1.1 lib/easy_ml/logging.rb