ovto 0.6.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +15 -16
- data/Rakefile +2 -9
- data/book/SUMMARY.md +15 -11
- data/book/book.toml +10 -0
- data/docs/.nojekyll +1 -0
- data/docs/404.html +189 -0
- data/docs/FontAwesome/css/font-awesome.css +4 -0
- data/docs/FontAwesome/fonts/FontAwesome.ttf +0 -0
- data/docs/FontAwesome/fonts/fontawesome-webfont.eot +0 -0
- data/docs/FontAwesome/fonts/fontawesome-webfont.svg +2671 -0
- data/docs/{gitbook/fonts/fontawesome → FontAwesome/fonts}/fontawesome-webfont.ttf +0 -0
- data/docs/FontAwesome/fonts/fontawesome-webfont.woff +0 -0
- data/docs/FontAwesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/docs/api/Array.html +4 -4
- data/docs/api/Hash.html +4 -4
- data/docs/api/MightyInspect.html +238 -0
- data/docs/api/Ovto/Actions.html +4 -4
- data/docs/api/Ovto/App.html +4 -4
- data/docs/api/Ovto/Component/MoreThanOneNode.html +5 -5
- data/docs/api/Ovto/Component.html +4 -4
- data/docs/api/Ovto/Middleware/Actions.html +4 -4
- data/docs/api/Ovto/Middleware/Base.html +5 -5
- data/docs/api/Ovto/Middleware/Component.html +5 -5
- data/docs/api/Ovto/Middleware.html +8 -8
- data/docs/api/Ovto/PureComponent/StateIsNotAvailable.html +4 -4
- data/docs/api/Ovto/PureComponent.html +4 -4
- data/docs/api/Ovto/Runtime.html +4 -4
- data/docs/api/Ovto/State/MissingValue.html +4 -4
- data/docs/api/Ovto/State/UnknownStateKey.html +4 -4
- data/docs/api/Ovto/State.html +12 -12
- data/docs/api/Ovto/WiredActionSet.html +4 -4
- data/docs/api/Ovto/WiredActions.html +4 -4
- data/docs/api/Ovto.html +8 -8
- data/docs/api/_index.html +5 -5
- data/docs/api/actions.html +215 -426
- data/docs/api/app.html +226 -432
- data/docs/api/component.html +268 -480
- data/docs/api/fetch.html +188 -393
- data/docs/api/file.README.html +4 -4
- data/docs/api/frames.html +1 -1
- data/docs/api/index.html +4 -4
- data/docs/api/middleware.html +249 -460
- data/docs/api/pure_component.html +186 -398
- data/docs/api/state.html +226 -438
- data/docs/api/top-level-namespace.html +4 -4
- data/docs/ayu-highlight.css +78 -0
- data/docs/book.js +688 -0
- data/docs/book.toml +10 -0
- data/docs/clipboard.min.js +7 -0
- data/docs/css/chrome.css +545 -0
- data/docs/css/general.css +203 -0
- data/docs/css/print.css +54 -0
- data/docs/css/variables.css +255 -0
- data/docs/elasticlunr.min.js +10 -0
- data/docs/favicon.png +0 -0
- data/docs/favicon.svg +22 -0
- data/docs/fonts/OPEN-SANS-LICENSE.txt +202 -0
- data/docs/fonts/SOURCE-CODE-PRO-LICENSE.txt +93 -0
- data/docs/fonts/fonts.css +100 -0
- data/docs/fonts/open-sans-v17-all-charsets-300.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-300italic.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-600.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-600italic.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-700.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-700italic.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-800.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-800italic.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-italic.woff2 +0 -0
- data/docs/fonts/open-sans-v17-all-charsets-regular.woff2 +0 -0
- data/docs/fonts/source-code-pro-v11-all-charsets-500.woff2 +0 -0
- data/docs/guides/debugging.html +184 -390
- data/docs/guides/development.html +171 -383
- data/docs/guides/install.html +206 -409
- data/docs/guides/tutorial.html +309 -525
- data/docs/highlight.css +82 -0
- data/docs/highlight.js +6 -0
- data/docs/index.html +390 -391
- data/docs/mark.min.js +7 -0
- data/docs/print.html +958 -0
- data/docs/searcher.js +483 -0
- data/docs/searchindex.js +1 -0
- data/docs/searchindex.json +1 -0
- data/docs/tomorrow-night.css +102 -0
- data/examples/sinatra/Gemfile.lock +25 -25
- data/examples/static/Gemfile.lock +8 -8
- data/lib/ovto/component.rb +2 -3
- data/lib/ovto/version.rb +1 -1
- metadata +47 -26
- data/docs/gitbook/fonts/fontawesome/FontAwesome.otf +0 -0
- data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot +0 -0
- data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg +0 -685
- data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff +0 -0
- data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
- data/docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js +0 -240
- data/docs/gitbook/gitbook-plugin-fontsettings/website.css +0 -291
- data/docs/gitbook/gitbook-plugin-highlight/ebook.css +0 -135
- data/docs/gitbook/gitbook-plugin-highlight/website.css +0 -434
- data/docs/gitbook/gitbook-plugin-lunr/lunr.min.js +0 -7
- data/docs/gitbook/gitbook-plugin-lunr/search-lunr.js +0 -59
- data/docs/gitbook/gitbook-plugin-search/lunr.min.js +0 -7
- data/docs/gitbook/gitbook-plugin-search/search-engine.js +0 -50
- data/docs/gitbook/gitbook-plugin-search/search.css +0 -35
- data/docs/gitbook/gitbook-plugin-search/search.js +0 -213
- data/docs/gitbook/gitbook-plugin-sharing/buttons.js +0 -90
- data/docs/gitbook/gitbook.js +0 -4
- data/docs/gitbook/images/apple-touch-icon-precomposed-152.png +0 -0
- data/docs/gitbook/images/favicon.ico +0 -0
- data/docs/gitbook/style.css +0 -9
- data/docs/gitbook/theme.js +0 -4
- data/docs/search_index.json +0 -1
data/docs/api/state.html
CHANGED
@@ -1,482 +1,270 @@
|
|
1
|
-
|
2
1
|
<!DOCTYPE HTML>
|
3
|
-
<html lang="" >
|
2
|
+
<html lang="en" class="sidebar-visible no-js light">
|
4
3
|
<head>
|
4
|
+
<!-- Book generated using mdBook -->
|
5
5
|
<meta charset="UTF-8">
|
6
|
-
<
|
7
|
-
<title>Ovto::State · GitBook</title>
|
8
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
9
|
-
<meta name="description" content="">
|
10
|
-
<meta name="generator" content="GitBook 3.2.2">
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<link rel="stylesheet" href="../gitbook/style.css">
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
<link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
|
29
|
-
|
30
|
-
|
31
|
-
|
6
|
+
<title>Ovto::State - Ovto Reference Manual</title>
|
32
7
|
|
33
|
-
|
34
8
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
<meta name="HandheldFriendly" content="true"/>
|
53
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
54
|
-
<meta name="apple-mobile-web-app-capable" content="yes">
|
55
|
-
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
56
|
-
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
|
57
|
-
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
|
58
|
-
|
59
|
-
|
60
|
-
<link rel="next" href="actions.html" />
|
61
|
-
|
62
|
-
|
63
|
-
<link rel="prev" href="app.html" />
|
64
|
-
|
65
|
-
|
66
|
-
</head>
|
67
|
-
<body>
|
9
|
+
<!-- Custom HTML head -->
|
68
10
|
|
69
|
-
<
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
<div id="book-search-input" role="search">
|
74
|
-
<input type="text" placeholder="Type to search" />
|
75
|
-
</div>
|
76
|
-
|
77
|
-
|
78
|
-
<nav role="navigation">
|
79
|
-
|
11
|
+
<meta name="description" content="">
|
12
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
13
|
+
<meta name="theme-color" content="#ffffff" />
|
80
14
|
|
15
|
+
<link rel="icon" href="../favicon.svg">
|
16
|
+
<link rel="shortcut icon" href="../favicon.png">
|
17
|
+
<link rel="stylesheet" href="../css/variables.css">
|
18
|
+
<link rel="stylesheet" href="../css/general.css">
|
19
|
+
<link rel="stylesheet" href="../css/chrome.css">
|
20
|
+
<link rel="stylesheet" href="../css/print.css" media="print">
|
81
21
|
|
82
|
-
|
83
|
-
|
84
|
-
|
22
|
+
<!-- Fonts -->
|
23
|
+
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
|
24
|
+
<link rel="stylesheet" href="../fonts/fonts.css">
|
85
25
|
|
86
|
-
|
26
|
+
<!-- Highlight.js Stylesheets -->
|
27
|
+
<link rel="stylesheet" href="../highlight.css">
|
28
|
+
<link rel="stylesheet" href="../tomorrow-night.css">
|
29
|
+
<link rel="stylesheet" href="../ayu-highlight.css">
|
87
30
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
<li class="chapter " data-level="1.1" data-path="../">
|
93
|
-
|
94
|
-
<a href="../">
|
95
|
-
|
96
|
-
|
97
|
-
Introduction
|
98
|
-
|
99
|
-
</a>
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
</li>
|
104
|
-
|
105
|
-
<li class="chapter " data-level="1.2" data-path="../guides/tutorial.html">
|
106
|
-
|
107
|
-
<a href="../guides/tutorial.html">
|
108
|
-
|
109
|
-
|
110
|
-
Getting Started
|
111
|
-
|
112
|
-
</a>
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
</li>
|
117
|
-
|
118
|
-
<li class="chapter " data-level="1.3" data-path="../guides/install.html">
|
119
|
-
|
120
|
-
<a href="../guides/install.html">
|
121
|
-
|
122
|
-
|
123
|
-
Install
|
124
|
-
|
125
|
-
</a>
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
</li>
|
130
|
-
|
131
|
-
<li class="chapter " data-level="1.4" >
|
132
|
-
|
133
|
-
<span>
|
134
|
-
|
135
|
-
|
136
|
-
API
|
137
|
-
|
138
|
-
</span>
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
<ul class="articles">
|
143
|
-
|
144
|
-
|
145
|
-
<li class="chapter " data-level="1.4.1" data-path="app.html">
|
146
|
-
|
147
|
-
<a href="app.html">
|
148
|
-
|
149
|
-
|
150
|
-
Ovto::App
|
151
|
-
|
152
|
-
</a>
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
</li>
|
157
|
-
|
158
|
-
<li class="chapter active" data-level="1.4.2" data-path="state.html">
|
159
|
-
|
160
|
-
<a href="state.html">
|
161
|
-
|
162
|
-
|
163
|
-
Ovto::State
|
164
|
-
|
165
|
-
</a>
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
</li>
|
170
|
-
|
171
|
-
<li class="chapter " data-level="1.4.3" data-path="actions.html">
|
172
|
-
|
173
|
-
<a href="actions.html">
|
174
|
-
|
175
|
-
|
176
|
-
Ovto::Actions
|
177
|
-
|
178
|
-
</a>
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
</li>
|
183
|
-
|
184
|
-
<li class="chapter " data-level="1.4.4" data-path="component.html">
|
185
|
-
|
186
|
-
<a href="component.html">
|
187
|
-
|
188
|
-
|
189
|
-
Ovto::Component
|
190
|
-
|
191
|
-
</a>
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
</li>
|
196
|
-
|
197
|
-
<li class="chapter " data-level="1.4.5" data-path="pure_component.html">
|
198
|
-
|
199
|
-
<a href="pure_component.html">
|
200
|
-
|
201
|
-
|
202
|
-
Ovto::PureComponent
|
203
|
-
|
204
|
-
</a>
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
</li>
|
209
|
-
|
210
|
-
<li class="chapter " data-level="1.4.6" data-path="middleware.html">
|
211
|
-
|
212
|
-
<a href="middleware.html">
|
213
|
-
|
214
|
-
|
215
|
-
Ovto::Middleware
|
216
|
-
|
217
|
-
</a>
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
</li>
|
222
|
-
|
223
|
-
<li class="chapter " data-level="1.4.7" data-path="fetch.html">
|
224
|
-
|
225
|
-
<a href="fetch.html">
|
226
|
-
|
227
|
-
|
228
|
-
Ovto.fetch
|
229
|
-
|
230
|
-
</a>
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
</li>
|
235
|
-
|
236
|
-
|
237
|
-
</ul>
|
238
|
-
|
239
|
-
</li>
|
240
|
-
|
241
|
-
<li class="chapter " data-level="1.5" >
|
242
|
-
|
243
|
-
<span>
|
244
|
-
|
245
|
-
|
246
|
-
Guides
|
247
|
-
|
248
|
-
</span>
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
<ul class="articles">
|
253
|
-
|
254
|
-
|
255
|
-
<li class="chapter " data-level="1.5.1" data-path="../guides/debugging.html">
|
256
|
-
|
257
|
-
<a href="../guides/debugging.html">
|
258
|
-
|
259
|
-
|
260
|
-
Debugging
|
261
|
-
|
262
|
-
</a>
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
</li>
|
267
|
-
|
268
|
-
<li class="chapter " data-level="1.5.2" data-path="../guides/development.html">
|
269
|
-
|
270
|
-
<a href="../guides/development.html">
|
271
|
-
|
272
|
-
|
273
|
-
Development
|
274
|
-
|
275
|
-
</a>
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
</li>
|
280
|
-
|
281
|
-
|
282
|
-
</ul>
|
283
|
-
|
284
|
-
</li>
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
<li class="divider"></li>
|
290
|
-
|
291
|
-
<li>
|
292
|
-
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
|
293
|
-
Published with GitBook
|
294
|
-
</a>
|
295
|
-
</li>
|
296
|
-
</ul>
|
297
|
-
|
298
|
-
|
299
|
-
</nav>
|
300
|
-
|
301
|
-
|
302
|
-
</div>
|
303
|
-
|
304
|
-
<div class="book-body">
|
305
|
-
|
306
|
-
<div class="body-inner">
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
<div class="book-header" role="navigation">
|
311
|
-
|
312
|
-
|
313
|
-
<!-- Title -->
|
314
|
-
<h1>
|
315
|
-
<i class="fa fa-circle-o-notch fa-spin"></i>
|
316
|
-
<a href=".." >Ovto::State</a>
|
317
|
-
</h1>
|
318
|
-
</div>
|
31
|
+
<!-- Custom theme stylesheets -->
|
319
32
|
|
33
|
+
</head>
|
34
|
+
<body>
|
35
|
+
<div id="body-container">
|
36
|
+
<!-- Provide site root to javascript -->
|
37
|
+
<script>
|
38
|
+
var path_to_root = "../";
|
39
|
+
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
|
40
|
+
</script>
|
41
|
+
|
42
|
+
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
43
|
+
<script>
|
44
|
+
try {
|
45
|
+
var theme = localStorage.getItem('mdbook-theme');
|
46
|
+
var sidebar = localStorage.getItem('mdbook-sidebar');
|
47
|
+
|
48
|
+
if (theme.startsWith('"') && theme.endsWith('"')) {
|
49
|
+
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
50
|
+
}
|
51
|
+
|
52
|
+
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
53
|
+
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
54
|
+
}
|
55
|
+
} catch (e) { }
|
56
|
+
</script>
|
57
|
+
|
58
|
+
<!-- Set the theme before any content is loaded, prevents flash -->
|
59
|
+
<script>
|
60
|
+
var theme;
|
61
|
+
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
62
|
+
if (theme === null || theme === undefined) { theme = default_theme; }
|
63
|
+
var html = document.querySelector('html');
|
64
|
+
html.classList.remove('no-js')
|
65
|
+
html.classList.remove('light')
|
66
|
+
html.classList.add(theme);
|
67
|
+
html.classList.add('js');
|
68
|
+
</script>
|
69
|
+
|
70
|
+
<!-- Hide / unhide sidebar before it is displayed -->
|
71
|
+
<script>
|
72
|
+
var html = document.querySelector('html');
|
73
|
+
var sidebar = null;
|
74
|
+
if (document.body.clientWidth >= 1080) {
|
75
|
+
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
76
|
+
sidebar = sidebar || 'visible';
|
77
|
+
} else {
|
78
|
+
sidebar = 'hidden';
|
79
|
+
}
|
80
|
+
html.classList.remove('sidebar-visible');
|
81
|
+
html.classList.add("sidebar-" + sidebar);
|
82
|
+
</script>
|
83
|
+
|
84
|
+
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
85
|
+
<div class="sidebar-scrollbox">
|
86
|
+
<ol class="chapter"><li class="chapter-item expanded "><a href="../guides/tutorial.html"><strong aria-hidden="true">1.</strong> Getting Started</a></li><li class="chapter-item expanded "><a href="../guides/install.html"><strong aria-hidden="true">2.</strong> Install</a></li><li class="chapter-item expanded affix "><li class="part-title">API</li><li class="chapter-item expanded "><a href="../api/app.html"><strong aria-hidden="true">3.</strong> Ovto::App</a></li><li class="chapter-item expanded "><a href="../api/state.html" class="active"><strong aria-hidden="true">4.</strong> Ovto::State</a></li><li class="chapter-item expanded "><a href="../api/actions.html"><strong aria-hidden="true">5.</strong> Ovto::Actions</a></li><li class="chapter-item expanded "><a href="../api/component.html"><strong aria-hidden="true">6.</strong> Ovto::Component</a></li><li class="chapter-item expanded "><a href="../api/pure_component.html"><strong aria-hidden="true">7.</strong> Ovto::PureComponent</a></li><li class="chapter-item expanded "><a href="../api/middleware.html"><strong aria-hidden="true">8.</strong> Ovto::Middleware</a></li><li class="chapter-item expanded "><a href="../api/fetch.html"><strong aria-hidden="true">9.</strong> Ovto.fetch</a></li><li class="chapter-item expanded affix "><li class="part-title">Guides</li><li class="chapter-item expanded "><a href="../guides/debugging.html"><strong aria-hidden="true">10.</strong> Debugging</a></li><li class="chapter-item expanded "><a href="../guides/development.html"><strong aria-hidden="true">11.</strong> Development</a></li></ol>
|
87
|
+
</div>
|
88
|
+
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
89
|
+
</nav>
|
90
|
+
|
91
|
+
<div id="page-wrapper" class="page-wrapper">
|
92
|
+
|
93
|
+
<div class="page">
|
94
|
+
<div id="menu-bar-hover-placeholder"></div>
|
95
|
+
<div id="menu-bar" class="menu-bar sticky bordered">
|
96
|
+
<div class="left-buttons">
|
97
|
+
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
98
|
+
<i class="fa fa-bars"></i>
|
99
|
+
</button>
|
100
|
+
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
101
|
+
<i class="fa fa-paint-brush"></i>
|
102
|
+
</button>
|
103
|
+
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
104
|
+
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
105
|
+
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
106
|
+
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
107
|
+
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
108
|
+
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
109
|
+
</ul>
|
110
|
+
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
111
|
+
<i class="fa fa-search"></i>
|
112
|
+
</button>
|
113
|
+
</div>
|
320
114
|
|
115
|
+
<h1 class="menu-title">Ovto Reference Manual</h1>
|
321
116
|
|
117
|
+
<div class="right-buttons">
|
118
|
+
<a href="../print.html" title="Print this book" aria-label="Print this book">
|
119
|
+
<i id="print-button" class="fa fa-print"></i>
|
120
|
+
</a>
|
322
121
|
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
<div id="
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
122
|
+
</div>
|
123
|
+
</div>
|
124
|
+
|
125
|
+
<div id="search-wrapper" class="hidden">
|
126
|
+
<form id="searchbar-outer" class="searchbar-outer">
|
127
|
+
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
128
|
+
</form>
|
129
|
+
<div id="searchresults-outer" class="searchresults-outer hidden">
|
130
|
+
<div id="searchresults-header" class="searchresults-header"></div>
|
131
|
+
<ul id="searchresults">
|
132
|
+
</ul>
|
133
|
+
</div>
|
134
|
+
</div>
|
135
|
+
|
136
|
+
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
137
|
+
<script>
|
138
|
+
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
139
|
+
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
140
|
+
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
141
|
+
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
142
|
+
});
|
143
|
+
</script>
|
144
|
+
|
145
|
+
<div id="content" class="content">
|
146
|
+
<main>
|
147
|
+
<h1 id="ovtostate"><a class="header" href="#ovtostate">Ovto::State</a></h1>
|
332
148
|
<p><code>Ovto::State</code> is like a hash, but members are accessible with name rather than <code>[]</code>.</p>
|
333
|
-
<h2 id="example">Example</h2>
|
334
|
-
<pre><code class="
|
335
|
-
item
|
336
|
-
item
|
337
|
-
|
338
|
-
|
339
|
-
state = State.new(
|
340
|
-
state.foo
|
341
|
-
state.bar
|
149
|
+
<h2 id="example"><a class="header" href="#example">Example</a></h2>
|
150
|
+
<pre><code class="language-rb">class State < Ovto::State
|
151
|
+
item :foo
|
152
|
+
item :bar
|
153
|
+
end
|
154
|
+
|
155
|
+
state = State.new(foo: 1, bar: 2)
|
156
|
+
state.foo #=> 1
|
157
|
+
state.bar #=> 2
|
342
158
|
</code></pre>
|
343
|
-
<h2 id="default-value">Default value</h2>
|
344
|
-
<pre><code class="
|
345
|
-
item
|
346
|
-
item
|
347
|
-
|
159
|
+
<h2 id="default-value"><a class="header" href="#default-value">Default value</a></h2>
|
160
|
+
<pre><code class="language-rb">class State < Ovto::State
|
161
|
+
item :foo, default: 1
|
162
|
+
item :bar, default: 2
|
163
|
+
end
|
348
164
|
|
349
165
|
state = State.new
|
350
|
-
state.foo
|
351
|
-
state.bar
|
166
|
+
state.foo #=> 1
|
167
|
+
state.bar #=> 2
|
352
168
|
</code></pre>
|
353
|
-
<h2 id="immutable">Immutable</h2>
|
169
|
+
<h2 id="immutable"><a class="header" href="#immutable">Immutable</a></h2>
|
354
170
|
<p>State objects are immutable. i.e. you cannot update value of a key. Instead, use <code>State#merge</code>.</p>
|
355
|
-
<pre><code class="
|
356
|
-
new_state = state.merge(
|
357
|
-
new_state.foo
|
358
|
-
new_state.bar
|
171
|
+
<pre><code class="language-rb">state = State.new(foo: 1, bar: 2)
|
172
|
+
new_state = state.merge(bar: 3)
|
173
|
+
new_state.foo #=> 1
|
174
|
+
new_state.bar #=> 3
|
359
175
|
</code></pre>
|
360
|
-
<h2 id="nesting-state">Nesting state</h2>
|
176
|
+
<h2 id="nesting-state"><a class="header" href="#nesting-state">Nesting state</a></h2>
|
361
177
|
<p>For practical apps, you can nest State like this.</p>
|
362
|
-
<pre><code class="
|
363
|
-
item
|
364
|
-
item
|
365
|
-
|
178
|
+
<pre><code class="language-rb">class Book < Ovto::State
|
179
|
+
item :title
|
180
|
+
item :author
|
181
|
+
end
|
366
182
|
|
367
|
-
|
368
|
-
item
|
369
|
-
|
183
|
+
class State < Ovto::State
|
184
|
+
item :books, []
|
185
|
+
end
|
370
186
|
|
371
|
-
book = Book.new(
|
372
|
-
state = State.new(
|
187
|
+
book = Book.new('Hello world', 'taro')
|
188
|
+
state = State.new(books: [book])
|
373
189
|
</code></pre>
|
374
|
-
<h2 id="defining-instance-methods-of-state">Defining instance methods of state</h2>
|
190
|
+
<h2 id="defining-instance-methods-of-state"><a class="header" href="#defining-instance-methods-of-state">Defining instance methods of state</a></h2>
|
375
191
|
<p>You can define instance methods of state.</p>
|
376
|
-
<pre><code class="
|
377
|
-
item
|
378
|
-
item
|
192
|
+
<pre><code class="language-rb">class Book < Ovto::State
|
193
|
+
item :title
|
194
|
+
item :author
|
379
195
|
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
196
|
+
def to_text
|
197
|
+
"#{self.title} (#{self.author})"
|
198
|
+
end
|
199
|
+
end
|
384
200
|
|
385
|
-
book = Book.new(
|
386
|
-
book.to_text
|
201
|
+
book = Book.new('Hello world', 'taro')
|
202
|
+
book.to_text #=> "Hello world (taro)"
|
387
203
|
</code></pre>
|
388
|
-
<h2 id="defining-class-methods-of-state">Defining class methods of state</h2>
|
204
|
+
<h2 id="defining-class-methods-of-state"><a class="header" href="#defining-class-methods-of-state">Defining class methods of state</a></h2>
|
389
205
|
<p>Ovto does not have a class like <code>StateList</code>. Just use Array to represent a list of state.</p>
|
390
206
|
<p>You can define class methods to manipulate a list of state.</p>
|
391
|
-
<pre><code class="
|
392
|
-
item
|
393
|
-
item
|
207
|
+
<pre><code class="language-rb">class Book < Ovto::State
|
208
|
+
item :title
|
209
|
+
item :author
|
394
210
|
|
395
|
-
|
211
|
+
def self.of_author(books, author)
|
396
212
|
books.select{|x| x.author == author}
|
397
|
-
|
398
|
-
|
213
|
+
end
|
214
|
+
end
|
399
215
|
|
400
|
-
|
401
|
-
taro_books = Book.of_author(books,
|
216
|
+
# Example
|
217
|
+
taro_books = Book.of_author(books, "taro")
|
402
218
|
</code></pre>
|
403
219
|
|
404
|
-
|
405
|
-
</section>
|
406
|
-
|
407
|
-
</div>
|
408
|
-
<div class="search-results">
|
409
|
-
<div class="has-results">
|
410
|
-
|
411
|
-
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
412
|
-
<ul class="search-results-list"></ul>
|
413
|
-
|
414
|
-
</div>
|
415
|
-
<div class="no-results">
|
416
|
-
|
417
|
-
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
418
|
-
|
419
|
-
</div>
|
420
|
-
</div>
|
421
|
-
</div>
|
220
|
+
</main>
|
422
221
|
|
423
|
-
|
424
|
-
|
425
|
-
|
222
|
+
<nav class="nav-wrapper" aria-label="Page navigation">
|
223
|
+
<!-- Mobile navigation buttons -->
|
224
|
+
<a rel="prev" href="../api/app.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
225
|
+
<i class="fa fa-angle-left"></i>
|
226
|
+
</a>
|
227
|
+
|
228
|
+
<a rel="next" href="../api/actions.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
229
|
+
<i class="fa fa-angle-right"></i>
|
230
|
+
</a>
|
231
|
+
|
232
|
+
<div style="clear: both"></div>
|
233
|
+
</nav>
|
234
|
+
</div>
|
426
235
|
</div>
|
427
236
|
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
</div>
|
237
|
+
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
238
|
+
<a rel="prev" href="../api/app.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
239
|
+
<i class="fa fa-angle-left"></i>
|
240
|
+
</a>
|
241
|
+
|
242
|
+
<a rel="next" href="../api/actions.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
243
|
+
<i class="fa fa-angle-right"></i>
|
244
|
+
</a>
|
245
|
+
</nav>
|
246
|
+
|
247
|
+
</div>
|
248
|
+
|
442
249
|
|
443
|
-
<script>
|
444
|
-
var gitbook = gitbook || [];
|
445
|
-
gitbook.push(function() {
|
446
|
-
gitbook.page.hasChanged({"page":{"title":"Ovto::State","level":"1.4.2","depth":2,"next":{"title":"Ovto::Actions","level":"1.4.3","depth":2,"path":"api/actions.md","ref":"api/actions.md","articles":[]},"previous":{"title":"Ovto::App","level":"1.4.1","depth":2,"path":"api/app.md","ref":"api/app.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"api/state.md","mtime":"2018-05-11T14:39:01.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2021-10-21T23:18:11.678Z"},"basePath":"..","book":{"language":""}});
|
447
|
-
});
|
448
|
-
</script>
|
449
|
-
</div>
|
450
250
|
|
451
|
-
|
452
|
-
<script src="../gitbook/gitbook.js"></script>
|
453
|
-
<script src="../gitbook/theme.js"></script>
|
454
|
-
|
455
|
-
|
456
|
-
<script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
<script src="../gitbook/gitbook-plugin-search/search.js"></script>
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
<script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
<script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
|
477
|
-
|
478
|
-
|
479
251
|
|
252
|
+
<script>
|
253
|
+
window.playground_copyable = true;
|
254
|
+
</script>
|
255
|
+
|
256
|
+
|
257
|
+
<script src="../elasticlunr.min.js"></script>
|
258
|
+
<script src="../mark.min.js"></script>
|
259
|
+
<script src="../searcher.js"></script>
|
260
|
+
|
261
|
+
<script src="../clipboard.min.js"></script>
|
262
|
+
<script src="../highlight.js"></script>
|
263
|
+
<script src="../book.js"></script>
|
264
|
+
|
265
|
+
<!-- Custom JS scripts -->
|
266
|
+
|
267
|
+
|
268
|
+
</div>
|
480
269
|
</body>
|
481
270
|
</html>
|
482
|
-
|