@@ -43,13 +43,7 @@ def initialize(window, name)
43
43
@data = { }
44
44
45
45
autosave!
46
- init
47
- end
48
-
49
- # @!attribute [r] encoded_name
50
- # @return [String] the generated name
51
- def encoded_name
52
- "opal.storage.#@name "
46
+ reload
53
47
end
54
48
55
49
# Check if autosaving is enabled.
@@ -123,57 +117,57 @@ def to_h
123
117
@data
124
118
end
125
119
126
- # @!method init
127
- # @private
120
+ # @!method reload
121
+ # Load the storage.
128
122
129
123
# @!method save
130
124
# Persist the current state to the storage.
131
125
132
126
if Browser . supports? 'Storage.local'
133
- def init
134
- replace `#@window .localStorage[#{ encoded_name } ] || '{}'`
127
+ def reload
128
+ replace `#@window .localStorage[#@name ] || '{}'`
135
129
end
136
130
137
131
def save
138
- `#@window .localStorage[#{ encoded_name } ] = #{ JSON . dump ( self ) } `
132
+ `#@window .localStorage[#@name ] = #{ JSON . dump ( self ) } `
139
133
end
140
134
elsif Browser . supports? 'Storage.global'
141
- def init
142
- replace `#@window .globalStorage[#@window .location.hostname][#{ encoded_name } ] || '{}'`
135
+ def reload
136
+ replace `#@window .globalStorage[#@window .location.hostname][#@name ] || '{}'`
143
137
end
144
138
145
139
def save
146
- `#@window .globalStorage[#@window .location.hostname][#{ encoded_name } ] = #{ JSON . dump ( self ) } `
140
+ `#@window .globalStorage[#@window .location.hostname][#@name ] = #{ JSON . dump ( self ) } `
147
141
end
148
142
elsif Browser . supports? 'Element.addBehavior'
149
- def init
143
+ def reload
150
144
%x{
151
145
#@element = #@window .document.createElement('link');
152
146
#@element .addBehavior('#default#userData');
153
147
154
148
#@window .document.getElementsByTagName('head')[0].appendChild(#@element );
155
149
156
- #@element .load(#{ encoded_name } );
150
+ #@element .load(#@name );
157
151
}
158
152
159
- replace `#@element .getAttribute(#{ encoded_name } ) || '{}'`
153
+ replace `#@element .getAttribute(#@name ) || '{}'`
160
154
end
161
155
162
156
def save
163
157
%x{
164
- #@element .setAttribute(#{ encoded_name } , #{ JSON . dump ( self ) } );
165
- #@element .save(#{ encoded_name } );
158
+ #@element .setAttribute(#@name , #{ JSON . dump ( self ) } );
159
+ #@element .save(#@name );
166
160
}
167
161
end
168
162
else
169
- def init
163
+ def reload
170
164
$document. cookies . options expires : 60 * 60 * 24 * 365
171
165
172
- replace $document. cookies [ encoded_name ]
166
+ replace $document. cookies [ @name ]
173
167
end
174
168
175
169
def save
176
- $document. cookies [ encoded_name ] = JSON . dump ( self )
170
+ $document. cookies [ @name ] = JSON . dump ( self )
177
171
end
178
172
end
179
173
@@ -185,7 +179,7 @@ def to_json
185
179
186
180
io << JSON . create_id . to_json << ":" << self . class . name . to_json << ","
187
181
188
- each { |key , value |
182
+ @data . each { |key , value |
189
183
io << key . to_json . to_json << ":" << value . to_json << ","
190
184
}
191
185
@@ -205,12 +199,12 @@ def self.supported?
205
199
Browser . supports? 'Storage.session'
206
200
end
207
201
208
- def init
209
- replace `#@window .sessionStorage[#{ encoded_name } ] || '{}'`
202
+ def reload
203
+ replace `#@window .sessionStorage[#@name ] || '{}'`
210
204
end
211
205
212
206
def save
213
- `#@window .sessionStorage[#{ encoded_name } ] = #{ JSON . dump ( self ) } `
207
+ `#@window .sessionStorage[#@name ] = #{ JSON . dump ( self ) } `
214
208
end
215
209
end
216
210
0 commit comments