Sha256: d4a2fd5defdf00f528c3dcf76c1adfa5f2665476fa0c0673fb375b7624d6f404

Contents?: true

Size: 1.04 KB

Versions: 13

Compression:

Stored size: 1.04 KB

Contents

require 'logger'

# Module for working with the [DataCite metadata schema](https://schema.datacite.org/meta/kernel-3/index.html)
module Datacite
  # Maps DataCite XML to Ruby objects
  module Mapping

    Dir.glob(File.expand_path('../mapping/*.rb', __FILE__)).sort.each(&method(:require))

    class << self
      attr_writer :log
    end

    # Gets the logger for the module. Default logger logs to `$stdout`.
    # @return [Logger] the logger
    def self.log
      self.log_device = $stdout unless @log
      @log
    end

    # Sets the log device. Defaults to `$stdout`
    # @param value [IO] the log device
    def self.log_device=(value)
      @log = new_logger(logdev: value)
    end

    private

    def self.new_logger(logdev:, level: Logger::DEBUG, shift_age: 10, shift_size: 1024 * 1024)
      logger = Logger.new(logdev, shift_age, shift_size)
      logger.level = level
      logger.formatter = proc do |severity, datetime, progname, msg|
        "#{datetime.to_time.utc} #{severity} -#{progname}- #{msg}\n"
      end
      logger
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
datacite-mapping-0.1.17.2 lib/datacite/mapping.rb
datacite-mapping-0.1.17.1 lib/datacite/mapping.rb
datacite-mapping-0.1.17 lib/datacite/mapping.rb
datacite-mapping-0.1.16 lib/datacite/mapping.rb
datacite-mapping-0.1.15 lib/datacite/mapping.rb
datacite-mapping-0.1.14 lib/datacite/mapping.rb
datacite-mapping-0.1.13 lib/datacite/mapping.rb
datacite-mapping-0.1.12 lib/datacite/mapping.rb
datacite-mapping-0.1.10 lib/datacite/mapping.rb
datacite-mapping-0.1.9 lib/datacite/mapping.rb
datacite-mapping-0.1.7 lib/datacite/mapping.rb
datacite-mapping-0.1.5 lib/datacite/mapping.rb
datacite-mapping-0.1.4 lib/datacite/mapping.rb