Sha256: 8b7fe61d56d47554964c01fa2f131647b375ec159b3b3c6f33c726228285cc91

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

module Nucleon
class Core < Config
  
  #-----------------------------------------------------------------------------
  # Properties
  
  @@logger = Util::Logger.new('core')
  @@ui     = Util::Console.new('core')
  
  #-----------------------------------------------------------------------------
  # Constructor / Destructor
  
  def initialize(data = {}, defaults = {}, force = true)
    super(data, defaults, force)   
    
    class_label = self.class.to_s.downcase.gsub(/^nucleon::/, '')
    
    @logger = Util::Logger.new(delete(:logger, class_label))
    @ui     = Util::Console.new(Config.new(export).defaults({ :resource => class_label }))
    
    logger.debug('Initialized instance logger and interface')
  end
  
  #-----------------------------------------------------------------------------
  # Accessor / Modifiers
  
  attr_accessor :logger, :ui
  
  #---
  
  def self.logger
    return @@logger
  end
  
  #---
  
  def self.ui
    return @@ui
  end
  
  #-----------------------------------------------------------------------------
  # General utilities
  
  def ui_group(resource)
    ui_resource = ui.resource
    ui.resource = resource
    yield
    
  ensure
    ui.resource = ui_resource  
  end 
end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nucleon-0.1.1 lib/core/core.rb