Module: AppInfo::Helper::Defines

Included in:
Protobuf::Base, Protobuf::Resources::Entry, Protobuf::Resources::Package
Defined in:
lib/app_info/helper.rb

Instance Method Summary collapse

Instance Method Details

#create_class(klass_name, parent_class, namespace:) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/app_info/helper.rb', line 96

def create_class(klass_name, parent_class, namespace:)
  klass = Class.new(parent_class) do
    yield if block_given?
  end

  name = namespace.to_s.empty? ? klass_name : "#{namespace}::#{klass_name}"
  if Object.const_get(namespace).const_defined?(klass_name)
    Object.const_get(namespace).const_get(klass_name)
  elsif Object.const_defined?(name)
    Object.const_get(name)
  else
    Object.const_get(namespace).const_set(klass_name, klass)
  end
end

#define_instance_method(key, value) ⇒ Object



111
112
113
114
115
116
117
118
# File 'lib/app_info/helper.rb', line 111

def define_instance_method(key, value)
  instance_variable_set("@#{key}", value)
  self.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def #{key}
      @#{key}
    end
  RUBY
end