Class: Native::Object
Instance Method Summary
collapse
Methods included from Native
===, included, #native_send, send, #to_native
Constructor Details
#initialize ⇒ Object
Returns a new instance of Object.
62
63
64
65
66
|
# File 'lib/opal/native.rb', line 62
def initialize (*)
super
update!
end
|
Instance Method Details
#==(other) ⇒ Object
68
69
70
|
# File 'lib/opal/native.rb', line 68
def == (other)
`#@native == #{Native(other).to_native}`
end
|
#===(other) ⇒ Object
72
73
74
|
# File 'lib/opal/native.rb', line 72
def === (other)
Native::Object === other && `#@native == #{other.to_native}`
end
|
76
77
78
|
# File 'lib/opal/native.rb', line 76
def [] (name)
Kernel.Native(`#@native[name]`)
end
|
#[]=(name, value) ⇒ Object
80
81
82
83
84
85
86
87
88
|
# File 'lib/opal/native.rb', line 80
def []= (name, value)
value = value.to_native unless Native === value
`#@native[name] = #{value}`
update!(name)
value
end
|
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/opal/native.rb', line 90
def each
return enum_for :each unless block_given?
%x{
for (var name in #@native) {
#{yield Kernel.Native(`name`), Kernel.Native(`#@native[name]`)}
}
}
self
end
|
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/opal/native.rb', line 102
def each_key
return enum_for :each_key unless block_given?
%x{
for (var name in #@native) {
#{yield Kernel.Native(`name`)}
}
}
self
end
|
#each_value ⇒ Object
114
115
116
117
118
119
120
121
122
|
# File 'lib/opal/native.rb', line 114
def each_value
return enum_for :each_value unless block_given?
%x{
for (var name in #@native) {
#{yield Kernel.Native(`#@native[name]`)}
}
}
end
|
124
125
126
|
# File 'lib/opal/native.rb', line 124
def inspect
"#<Native: #{`#@native.toString()`}>"
end
|
128
129
130
|
# File 'lib/opal/native.rb', line 128
def keys
each_key.to_a
end
|
132
133
134
|
# File 'lib/opal/native.rb', line 132
def nil?
`#@native === null || #@native === undefined`
end
|
140
141
142
|
# File 'lib/opal/native.rb', line 140
def to_hash
Hash[to_a]
end
|
136
137
138
|
# File 'lib/opal/native.rb', line 136
def to_s
`#@native.toString()`
end
|
#update!(name = nil) ⇒ Object
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
# File 'lib/opal/native.rb', line 148
def update! (name = nil)
unless name
%x{
for (var name in #@native) {
#{update!(`name`)}
}
}
return
end
if Proc === `#@native[name]`
define_singleton_method name do |*args, &block|
__native_send__(name, *args, &block)
end
if respond_to? "#{name}="
singleton_class.undef_method "#{name}="
end
else
define_singleton_method name do
self[name]
end
define_singleton_method "#{name}=" do |value|
self[name] = value
end
end
end
|
144
145
146
|
# File 'lib/opal/native.rb', line 144
def values
each_value.to_a
end
|