Class: BasicObject
- Defined in:
- opal/opal/corelib/basic_object.rb,
opal/opal/corelib/marshal/write_buffer.rb more...
Direct Known Subclasses
Instance Method Summary collapse
- #! ⇒ Object
- #!=(other) ⇒ Object
- #==(other) ⇒ Object (also: #equal?)
- #__id__ ⇒ Object
- #__marshal__(buffer) ⇒ Object
- #__send__(symbol, *args, &block) ⇒ Object
- #class ⇒ Object
- #eql?(other) ⇒ Boolean
-
#initialize ⇒ BasicObject
constructor
A new instance of BasicObject.
- #instance_eval(*args, &block) ⇒ Object
- #instance_exec(*args, &block) ⇒ Object
- #method_missing(symbol, *args, &block) ⇒ Object
- #singleton_method_added ⇒ Object
- #singleton_method_removed ⇒ Object
- #singleton_method_undefined ⇒ Object
Constructor Details
#initialize ⇒ BasicObject
Returns a new instance of BasicObject.
2 3 |
# File 'opal/opal/corelib/basic_object.rb', line 2 def initialize(*) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(symbol, *args, &block) ⇒ Object
[View source]
141 142 143 144 145 146 147 148 149 |
# File 'opal/opal/corelib/basic_object.rb', line 141 def method_missing(symbol, *args, &block) = if `self.$inspect && !self.$inspect.$$stub` "undefined method `#{symbol}' for #{inspect}:#{`self.$$class`}" else "undefined method `#{symbol}' for #{`self.$$class`}" end ::Kernel.raise ::NoMethodError.new(, symbol) end |
Instance Method Details
#! ⇒ Object
[View source]
45 46 47 |
# File 'opal/opal/corelib/basic_object.rb', line 45 def ! false end |
#!=(other) ⇒ Object
[View source]
49 50 51 |
# File 'opal/opal/corelib/basic_object.rb', line 49 def !=(other) !(self == other) end |
#==(other) ⇒ Object Also known as: equal?
[View source]
5 6 7 |
# File 'opal/opal/corelib/basic_object.rb', line 5 def ==(other) `self === other` end |
#__id__ ⇒ Object
[View source]
15 16 17 18 19 20 21 22 23 |
# File 'opal/opal/corelib/basic_object.rb', line 15 def __id__ %x{ if (self.$$id != null) { return self.$$id; } Opal.defineProperty(self, '$$id', Opal.uid()); return self.$$id; } end |
#__marshal__(buffer) ⇒ Object
[View source]
141 142 143 144 145 146 |
# File 'opal/opal/corelib/marshal/write_buffer.rb', line 141 def __marshal__(buffer) buffer.save_link(self) buffer.write_extends(self) buffer.append('o') buffer.write_object(self) end |
#__send__(symbol, *args, &block) ⇒ Object
[View source]
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'opal/opal/corelib/basic_object.rb', line 25 def __send__(symbol, *args, &block) %x{ var func = self['$' + symbol] if (func) { if (block !== nil) { func.$$p = block; } return func.apply(self, args); } if (block !== nil) { self.$method_missing.$$p = block; } return self.$method_missing.apply(self, [symbol].concat(args)); } end |
#class ⇒ Object
[View source]
137 138 139 |
# File 'opal/opal/corelib/basic_object.rb', line 137 def class `self.$$class` end |
#eql?(other) ⇒ Boolean
9 10 11 |
# File 'opal/opal/corelib/basic_object.rb', line 9 def eql?(other) self == other end |
#instance_eval(*args, &block) ⇒ Object
[View source]
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'opal/opal/corelib/basic_object.rb', line 53 def instance_eval(*args, &block) if block.nil? && `!!Opal.compile` ::Kernel.raise ::ArgumentError, 'wrong number of arguments (0 for 1..3)' unless (1..3).cover? args.size string, file, _lineno = *args = { file: (file || '(eval)'), eval: true } = __OPAL_COMPILER_CONFIG__.merge() compiled = ::Opal.compile string, block = ::Kernel.proc do %x{ return (function(self) { return eval(compiled); })(self) } end elsif args.any? ::Kernel.raise ::ArgumentError, "wrong number of arguments (#{args.size} for 0)" end %x{ var old = block.$$s, result; block.$$s = null; // Need to pass $$eval so that method definitions know if this is // being done on a class/module. Cannot be compiler driven since // send(:instance_eval) needs to work. if (self.$$is_a_module) { self.$$eval = true; try { result = block.call(self, self); } finally { self.$$eval = false; } } else { result = block.call(self, self); } block.$$s = old; return result; } end |
#instance_exec(*args, &block) ⇒ Object
[View source]
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'opal/opal/corelib/basic_object.rb', line 100 def instance_exec(*args, &block) ::Kernel.raise ::ArgumentError, 'no block given' unless block %x{ var block_self = block.$$s, result; block.$$s = null; if (self.$$is_a_module) { self.$$eval = true; try { result = block.apply(self, args); } finally { self.$$eval = false; } } else { result = block.apply(self, args); } block.$$s = block_self; return result; } end |
#singleton_method_added ⇒ Object
[View source]
128 129 |
# File 'opal/opal/corelib/basic_object.rb', line 128 def singleton_method_added(*) end |
#singleton_method_removed ⇒ Object
[View source]
131 132 |
# File 'opal/opal/corelib/basic_object.rb', line 131 def singleton_method_removed(*) end |
#singleton_method_undefined ⇒ Object
[View source]
134 135 |
# File 'opal/opal/corelib/basic_object.rb', line 134 def singleton_method_undefined(*) end |