Sha256: 2735af5cbb5ed7ae182a6690fe9094bc10df01b05c1733c91a05f7730841b656

Contents?: true

Size: 853 Bytes

Versions: 92

Compression:

Stored size: 853 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, **kwargs, &block|
          log_message(message, verbose: verbose)
          result = original_method.bind(self).call(*args, **kwargs, &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

92 entries across 92 versions & 1 rubygems

Version Path
easy_ml-0.2.0.pre.rc105 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc104 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc103 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc102 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc101 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc100 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc99 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc98 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc97 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc96 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc95 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc94 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc93 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc92 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc91 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc90 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc89 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc88 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc85 lib/easy_ml/logging.rb
easy_ml-0.2.0.pre.rc84 lib/easy_ml/logging.rb