Sha256: f57b601d11cb3e8679098702181150973627641c753c6843e6d9967527b8e193
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
require 'abstract_reflection' require 'ruby/reflection/mirror' require 'ruby/reflection/object_mirror' require 'ruby/reflection/class_mirror' require 'ruby/reflection/field_mirror' require 'ruby/reflection/thread_mirror' require 'ruby/reflection/stack_frame_mirror' require 'ruby/reflection/method_mirror' module Ruby class Reflection include AbstractReflection def self.codebase nil.class end def initialize(ignored = nil) end def modules instances_of(Module) end def classes instances_of(Class) end def instances_of(klass) mirrors ObjectSpace.each_object(klass).select {|obj| obj.class == klass } end def object_by_id(id) if obj = ObjectSpace._id2ref(id) reflect obj else nil end end def threads instances_of(Thread) end def platform Object::RUBY_PLATFORM end def engine Object::RUBY_ENGINE end def version Object.const_get("#{engine.upcase}_VERSION") end def implementations_of(str) mirrors methods.select {|m| m.name.to_s == str.to_s } end private def methods ObjectSpace.each_object(Module).collect do |m| ims = m.instance_methods(false).collect {|s| m.instance_method(s) } cms = m.methods(false).collect {|s| m.method(s) } ims + cms end.flatten end def mirrors(list) list.collect {|each| reflect each } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubymirrors-0.0.3 | lib/ruby/reflection.rb |
rubymirrors-0.0.2 | lib/ruby/reflection.rb |
rubymirrors-0.0.1 | lib/ruby/reflection.rb |