Module: Tamashii::Agent::Common

Defined in:
lib/tamashii/agent/common.rb,
lib/tamashii/agent/common/loggable.rb

Defined Under Namespace

Modules: Loggable

Class Method Summary collapse

Class Method Details

.get_class_path(class_name) ⇒ Object



18
19
20
# File 'lib/tamashii/agent/common.rb', line 18

def self.get_class_path(class_name)
  string_underscore(class_name)
end

.load_class(class_name) ⇒ Object



12
13
14
15
16
# File 'lib/tamashii/agent/common.rb', line 12

def self.load_class(class_name)
  path = get_class_path(class_name)
  require path
  Module.const_get(class_name)
end

.load_device_class(device_class_name) ⇒ Object



7
8
9
10
# File 'lib/tamashii/agent/common.rb', line 7

def self.load_device_class(device_class_name)
  full_class_name = 'Tamashii::Agent::Device::' + device_class_name 
  load_class(full_class_name)
end

.string_underscore(original) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/tamashii/agent/common.rb', line 22

def self.string_underscore(original)
  word = original.dup
  word.gsub!(/::/, '/')
  word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
  word.tr!("-", "_")
  word.downcase!
  word
end