Class: RubyProxy::KlassFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_proxy/client.rb

Class Method Summary collapse

Class Method Details

.make_class(klass_name) {|klass| ... } ⇒ Object

generate proxy class

Yields:

  • (klass)


127
128
129
130
131
132
133
134
135
136
137
# File 'lib/ruby_proxy/client.rb', line 127

def self.make_class(klass_name)
  klass_name = klass_name.to_s
  name_ok?(klass_name)
  eval <<-EOF
    class #{klass_name}
    end
  EOF
  klass = eval(klass_name)
  yield klass
  klass
end

.make_klass(klass_name, type) ⇒ Object



115
116
117
118
119
120
121
122
123
124
# File 'lib/ruby_proxy/client.rb', line 115

def self.make_klass(klass_name,type)
  case type
  when "Class"
    make_class(klass_name)
  when "Module"
    make_module(klass_name)
  else
    raise TypeError,"wrong make_klass type: #{type}"
  end
end

.make_module(klass_name) {|klass| ... } ⇒ Object

Yields:

  • (klass)


139
140
141
142
143
144
145
146
147
148
149
# File 'lib/ruby_proxy/client.rb', line 139

def self.make_module(klass_name)
  klass_name = klass_name.to_s
  name_ok?(klass_name)
  eval <<-EOF
    module #{klass_name}
    end
  EOF
  klass = eval(klass_name)
  yield klass
  klass
end

.name_ok?(name) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (TypeError)


151
152
153
# File 'lib/ruby_proxy/client.rb', line 151

def self.name_ok?(name)
  raise TypeError," name #{name} can't be class or module name." unless name =~ /^[A-Z][a-zA-Z_0-9]*/
end