Class: Nucleon::Core

Inherits:
Config show all
Includes:
Mixin::Colors
Defined in:
lib/core/core.rb

Direct Known Subclasses

Plugin::Base, Util::Cache, Util::SSH, Util::Shell

Constant Summary collapse

@@logger =

Properties

Util::Logger.new('core')
@@ui =
Util::Console.new('core')
@@ui_lock =
Mutex.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mixin::Colors

#black, #blue, #cyan, #green, #grey, #purple, #red, #yellow

Methods inherited from Config

#[], #[]=, #array, array, #clear, #defaults, #delete, #empty?, ensure, #export, filter, #filter, #get, #get_array, #get_hash, #has_key?, hash, #hash, #import, #init, init, init_flat, #keys, #set, #string, string, #string_map, string_map, symbol, #symbol, symbol_map, #symbol_map, test, #test

Methods included from Mixin::ConfigOptions

#all_options, #clear_options, #contexts, #get_options, #set_options

Methods included from Mixin::ConfigCollection

#all_properties, #clear_properties, #delete_property, #get_property, #save_properties, #set_property

Constructor Details

#initialize(data = {}, defaults = {}, force = true, set_initialized = true, basic_merge = true) ⇒ Core


Constructor / Destructor



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/core/core.rb', line 17

def initialize(data = {}, defaults = {}, force = true, set_initialized = true, basic_merge = true)
  super(data, defaults, force, basic_merge)   
  
  @class_color = Util::Data.ensure_value(delete(:class_color, :cyan), :cyan)
  @class_label = self.class.to_s.downcase.gsub(/^nucleon::/, '')
  
  self.logger = delete(:logger, @class_label)
  self.ui     = Config.new(export).defaults({ :resource => Util::Console.colorize(@class_label, @class_color) })
  
  logger.debug('Initialized instance logger and interface')
  @initialized = true if set_initialized
end

Instance Attribute Details

#loggerObject


Accessor / Modifiers



40
41
42
# File 'lib/core/core.rb', line 40

def logger
  @logger
end

#uiObject


Accessor / Modifiers



40
41
42
# File 'lib/core/core.rb', line 40

def ui
  @ui
end

Class Method Details

.loggerObject




44
45
46
# File 'lib/core/core.rb', line 44

def self.logger
  return @@logger
end

.uiObject




60
61
62
# File 'lib/core/core.rb', line 60

def self.ui
  return @@ui
end

.ui_group(resource, color = :cyan) ⇒ Object


General utilities



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/core/core.rb', line 75

def self.ui_group(resource, color = :cyan)
  @@ui_lock.synchronize do
    begin
      ui_resource = ui.resource
      ui.resource = Util::Console.colorize(resource, color)
      yield(ui)
  
    ensure
      ui.resource = ui_resource
    end
  end  
end

Instance Method Details

#initialized?Boolean


Checks

Returns:

  • (Boolean)


33
34
35
# File 'lib/core/core.rb', line 33

def initialized?
  @initialized
end

#ui_group(resource, color = :cyan) ⇒ Object




90
91
92
93
94
95
96
97
# File 'lib/core/core.rb', line 90

def ui_group(resource, color = :cyan)
  ui_resource = ui.resource
  ui.resource = Util::Console.colorize(resource, color)
  yield(ui)
  
ensure
  ui.resource = ui_resource  
end