module Domotics::Core

Constants

CLASS_MAP

Map config names to real classes

VERSION

Public Class Methods

add_map(args = {}) click to toggle source

Scan file for class name and add to CLASS_MAP

# File lib/domotics/core.rb, line 24
def self.add_map(args = {})
  realm = args[:realm] || self
  if args[:file]
    class_name = nil
    index = nil
    require args[:file]
    IO.read(args[:file]).each_line do |line|
      if line =~ /class\s*([A-Z]\w*)[\s\w<]*(#__as__ :(\w*))?/
        class_name, index = $1, $3 && $3.to_sym
        break
      end
    end
    return unless class_name
  end
  class_name ||= args[:class_name]
  index ||= class_name.split(/(?=[A-Z])/).map{ |cnp| cnp.downcase }.join('_').to_sym
  klass = realm.const_get(class_name)
  CLASS_MAP[index] = [args[:type], klass]
end