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

生成类,返回类常量

Yields:

  • (klass)


107
108
109
110
111
112
113
114
115
116
117
# File 'lib/ruby_proxy/client.rb', line 107

def self.make_class(klass_name)
  klass_name = klass_name.to_s
  name_ok?(klass_name)
  eval "    class \#{klass_name}\n    end\n  EOF\n  klass = eval(klass_name)\n  yield klass\n  klass\nend\n"

.make_klass(klass_name, type) ⇒ Object



95
96
97
98
99
100
101
102
103
104
# File 'lib/ruby_proxy/client.rb', line 95

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)


119
120
121
122
123
124
125
126
127
128
129
# File 'lib/ruby_proxy/client.rb', line 119

def self.make_module(klass_name)
  klass_name = klass_name.to_s
  name_ok?(klass_name)
  eval "    module \#{klass_name}\n    end\n  EOF\n  klass = eval(klass_name)\n  yield klass\n  klass\nend\n"

.name_ok?(name) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (TypeError)


131
132
133
# File 'lib/ruby_proxy/client.rb', line 131

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