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.
60
61
62
63
64
|
# File 'lib/opal/native.rb', line 60
def initialize (*)
super
update!
end
|
Instance Method Details
#==(other) ⇒ Object
66
67
68
|
# File 'lib/opal/native.rb', line 66
def == (other)
`#@native == #{Native(other).to_native}`
end
|
#===(other) ⇒ Object
70
71
72
|
# File 'lib/opal/native.rb', line 70
def === (other)
Native::Object === other && `#@native == #{other.to_native}`
end
|
74
75
76
|
# File 'lib/opal/native.rb', line 74
def [] (name)
Kernel.Native(`#@native[name]`)
end
|
#[]=(name, value) ⇒ Object
78
79
80
81
82
83
84
85
86
|
# File 'lib/opal/native.rb', line 78
def []= (name, value)
value = value.to_native unless Native === value
`#@native[name] = #{value}`
update!(name)
value
end
|
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/opal/native.rb', line 88
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
|
100
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/opal/native.rb', line 100
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
112
113
114
115
116
117
118
119
120
|
# File 'lib/opal/native.rb', line 112
def each_value
return enum_for :each_value unless block_given?
%x{
for (var name in #@native) {
#{yield Kernel.Native(`#@native[name]`)}
}
}
end
|
122
123
124
|
# File 'lib/opal/native.rb', line 122
def inspect
"#<Native: #{`#@native.toString()`}>"
end
|
126
127
128
|
# File 'lib/opal/native.rb', line 126
def keys
each_key.to_a
end
|
130
131
132
|
# File 'lib/opal/native.rb', line 130
def nil?
`#@native === null || #@native === undefined`
end
|
138
139
140
|
# File 'lib/opal/native.rb', line 138
def to_hash
Hash[to_a]
end
|
134
135
136
|
# File 'lib/opal/native.rb', line 134
def to_s
`#@native.toString()`
end
|
#update!(name = nil) ⇒ Object
146
147
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
|
# File 'lib/opal/native.rb', line 146
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
|
142
143
144
|
# File 'lib/opal/native.rb', line 142
def values
each_value.to_a
end
|