ovto 0.2.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 +7 -0
- data/.gitignore +1 -0
- data/.gitmodules +3 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +57 -0
- data/LICENSE.txt +44 -0
- data/README.md +84 -0
- data/Rakefile +41 -0
- data/book/README.md +1 -0
- data/book/SUMMARY.md +13 -0
- data/book/api/actions.md +77 -0
- data/book/api/app.md +86 -0
- data/book/api/component.md +175 -0
- data/book/api/fetch.md +42 -0
- data/book/api/state.md +97 -0
- data/book/guides/debugging.md +23 -0
- data/book/guides/development.md +11 -0
- data/book/guides/tutorial.md +288 -0
- data/book/screenshot.png +0 -0
- data/docs/api/Ovto/Actions.html +135 -0
- data/docs/api/Ovto/App.html +531 -0
- data/docs/api/Ovto/Component/MoreThanOneNode.html +135 -0
- data/docs/api/Ovto/Component.html +350 -0
- data/docs/api/Ovto/Runtime.html +315 -0
- data/docs/api/Ovto/State/MissingValue.html +135 -0
- data/docs/api/Ovto/State/UnknownKey.html +135 -0
- data/docs/api/Ovto/State.html +699 -0
- data/docs/api/Ovto/WiredActions.html +343 -0
- data/docs/api/Ovto.html +319 -0
- data/docs/api/_index.html +229 -0
- data/docs/api/actions.html +398 -0
- data/docs/api/app.html +411 -0
- data/docs/api/class_list.html +51 -0
- data/docs/api/component.html +469 -0
- data/docs/api/css/common.css +1 -0
- data/docs/api/css/full_list.css +58 -0
- data/docs/api/css/style.css +499 -0
- data/docs/api/file.README.html +162 -0
- data/docs/api/file_list.html +56 -0
- data/docs/api/frames.html +17 -0
- data/docs/api/index.html +162 -0
- data/docs/api/js/app.js +248 -0
- data/docs/api/js/full_list.js +216 -0
- data/docs/api/js/jquery.js +4 -0
- data/docs/api/method_list.html +243 -0
- data/docs/api/state.html +430 -0
- data/docs/api/top-level-namespace.html +110 -0
- 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 +685 -0
- data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
- 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 +240 -0
- data/docs/gitbook/gitbook-plugin-fontsettings/website.css +291 -0
- data/docs/gitbook/gitbook-plugin-highlight/ebook.css +135 -0
- data/docs/gitbook/gitbook-plugin-highlight/website.css +434 -0
- data/docs/gitbook/gitbook-plugin-lunr/lunr.min.js +7 -0
- data/docs/gitbook/gitbook-plugin-lunr/search-lunr.js +59 -0
- data/docs/gitbook/gitbook-plugin-search/lunr.min.js +7 -0
- data/docs/gitbook/gitbook-plugin-search/search-engine.js +50 -0
- data/docs/gitbook/gitbook-plugin-search/search.css +35 -0
- data/docs/gitbook/gitbook-plugin-search/search.js +213 -0
- data/docs/gitbook/gitbook-plugin-sharing/buttons.js +90 -0
- data/docs/gitbook/gitbook.js +4 -0
- 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 +9 -0
- data/docs/gitbook/theme.js +4 -0
- data/docs/guides/debugging.html +355 -0
- data/docs/guides/development.html +361 -0
- data/docs/guides/tutorial.html +571 -0
- data/docs/index.html +422 -0
- data/docs/screenshot.png +0 -0
- data/docs/search_index.json +1 -0
- data/example/sinatra/Gemfile +6 -0
- data/example/sinatra/Gemfile.lock +59 -0
- data/example/sinatra/README.md +21 -0
- data/example/sinatra/app.rb +18 -0
- data/example/sinatra/config.ru +30 -0
- data/example/sinatra/ovto/app.rb +171 -0
- data/example/sinatra/public/style.css +4 -0
- data/example/sinatra/public/todomvc-app-css_index.css +376 -0
- data/example/sinatra/public/todomvc-common_base.css +141 -0
- data/example/sinatra/views/index.erb +21 -0
- data/example/static/Gemfile +3 -0
- data/example/static/Gemfile.lock +30 -0
- data/example/static/README.md +10 -0
- data/example/static/Rakefile +4 -0
- data/example/static/app.js +24808 -0
- data/example/static/app.rb +43 -0
- data/example/static/index.html +11 -0
- data/lib/ovto/actions.rb +10 -0
- data/lib/ovto/app.rb +58 -0
- data/lib/ovto/component.rb +191 -0
- data/lib/ovto/fetch.rb +53 -0
- data/lib/ovto/runtime.rb +388 -0
- data/lib/ovto/state.rb +69 -0
- data/lib/ovto/version.rb +3 -0
- data/lib/ovto/wired_actions.rb +33 -0
- data/lib/ovto.rb +50 -0
- data/ovto.gemspec +22 -0
- data/screenshot.png +0 -0
- metadata +161 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
|
|
7
|
+
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
|
|
8
|
+
|
|
9
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
|
14
|
+
|
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
<title>Method List</title>
|
|
19
|
+
<base id="base_target" target="_parent" />
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
<div id="content">
|
|
23
|
+
<div class="fixed_header">
|
|
24
|
+
<h1 id="full_list_header">Method List</h1>
|
|
25
|
+
<div id="full_list_nav">
|
|
26
|
+
|
|
27
|
+
<span><a target="_self" href="class_list.html">
|
|
28
|
+
Classes
|
|
29
|
+
</a></span>
|
|
30
|
+
|
|
31
|
+
<span><a target="_self" href="method_list.html">
|
|
32
|
+
Methods
|
|
33
|
+
</a></span>
|
|
34
|
+
|
|
35
|
+
<span><a target="_self" href="file_list.html">
|
|
36
|
+
Files
|
|
37
|
+
</a></span>
|
|
38
|
+
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div id="search">Search: <input type="text" /></div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<ul id="full_list" class="method">
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
<li class="odd ">
|
|
48
|
+
<div class="item">
|
|
49
|
+
<span class='object_link'><a href="Ovto/State.html#[]-instance_method" title="Ovto::State#[] (method)">#[]</a></span>
|
|
50
|
+
<small>Ovto::State</small>
|
|
51
|
+
</div>
|
|
52
|
+
</li>
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
<li class="even ">
|
|
56
|
+
<div class="item">
|
|
57
|
+
<span class='object_link'><a href="Ovto/App.html#_set_state-instance_method" title="Ovto::App#_set_state (method)">#_set_state</a></span>
|
|
58
|
+
<small>Ovto::App</small>
|
|
59
|
+
</div>
|
|
60
|
+
</li>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<li class="odd ">
|
|
64
|
+
<div class="item">
|
|
65
|
+
<span class='object_link'><a href="Ovto/Component.html#hash_to_js_obj-class_method" title="Ovto::Component.hash_to_js_obj (method)">hash_to_js_obj</a></span>
|
|
66
|
+
<small>Ovto::Component</small>
|
|
67
|
+
</div>
|
|
68
|
+
</li>
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
<li class="even ">
|
|
72
|
+
<div class="item">
|
|
73
|
+
<span class='object_link'><a href="Ovto/State.html#inherited-class_method" title="Ovto::State.inherited (method)">inherited</a></span>
|
|
74
|
+
<small>Ovto::State</small>
|
|
75
|
+
</div>
|
|
76
|
+
</li>
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<li class="odd ">
|
|
80
|
+
<div class="item">
|
|
81
|
+
<span class='object_link'><a href="Ovto/App.html#initialize-instance_method" title="Ovto::App#initialize (method)">#initialize</a></span>
|
|
82
|
+
<small>Ovto::App</small>
|
|
83
|
+
</div>
|
|
84
|
+
</li>
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
<li class="even ">
|
|
88
|
+
<div class="item">
|
|
89
|
+
<span class='object_link'><a href="Ovto/State.html#initialize-instance_method" title="Ovto::State#initialize (method)">#initialize</a></span>
|
|
90
|
+
<small>Ovto::State</small>
|
|
91
|
+
</div>
|
|
92
|
+
</li>
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
<li class="odd ">
|
|
96
|
+
<div class="item">
|
|
97
|
+
<span class='object_link'><a href="Ovto/Component.html#initialize-instance_method" title="Ovto::Component#initialize (method)">#initialize</a></span>
|
|
98
|
+
<small>Ovto::Component</small>
|
|
99
|
+
</div>
|
|
100
|
+
</li>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<li class="even ">
|
|
104
|
+
<div class="item">
|
|
105
|
+
<span class='object_link'><a href="Ovto/Runtime.html#initialize-instance_method" title="Ovto::Runtime#initialize (method)">#initialize</a></span>
|
|
106
|
+
<small>Ovto::Runtime</small>
|
|
107
|
+
</div>
|
|
108
|
+
</li>
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<li class="odd ">
|
|
112
|
+
<div class="item">
|
|
113
|
+
<span class='object_link'><a href="Ovto/WiredActions.html#initialize-instance_method" title="Ovto::WiredActions#initialize (method)">#initialize</a></span>
|
|
114
|
+
<small>Ovto::WiredActions</small>
|
|
115
|
+
</div>
|
|
116
|
+
</li>
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
<li class="even ">
|
|
120
|
+
<div class="item">
|
|
121
|
+
<span class='object_link'><a href="Ovto.html#inspect-class_method" title="Ovto.inspect (method)">inspect</a></span>
|
|
122
|
+
<small>Ovto</small>
|
|
123
|
+
</div>
|
|
124
|
+
</li>
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
<li class="odd ">
|
|
128
|
+
<div class="item">
|
|
129
|
+
<span class='object_link'><a href="Ovto/State.html#inspect-instance_method" title="Ovto::State#inspect (method)">#inspect</a></span>
|
|
130
|
+
<small>Ovto::State</small>
|
|
131
|
+
</div>
|
|
132
|
+
</li>
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
<li class="even ">
|
|
136
|
+
<div class="item">
|
|
137
|
+
<span class='object_link'><a href="Ovto/State.html#item-class_method" title="Ovto::State.item (method)">item</a></span>
|
|
138
|
+
<small>Ovto::State</small>
|
|
139
|
+
</div>
|
|
140
|
+
</li>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
<li class="odd ">
|
|
144
|
+
<div class="item">
|
|
145
|
+
<span class='object_link'><a href="Ovto/State.html#item_specs-class_method" title="Ovto::State.item_specs (method)">item_specs</a></span>
|
|
146
|
+
<small>Ovto::State</small>
|
|
147
|
+
</div>
|
|
148
|
+
</li>
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<li class="even ">
|
|
152
|
+
<div class="item">
|
|
153
|
+
<span class='object_link'><a href="Ovto.html#log_error-class_method" title="Ovto.log_error (method)">log_error</a></span>
|
|
154
|
+
<small>Ovto</small>
|
|
155
|
+
</div>
|
|
156
|
+
</li>
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
<li class="odd ">
|
|
160
|
+
<div class="item">
|
|
161
|
+
<span class='object_link'><a href="Ovto/State.html#merge-instance_method" title="Ovto::State#merge (method)">#merge</a></span>
|
|
162
|
+
<small>Ovto::State</small>
|
|
163
|
+
</div>
|
|
164
|
+
</li>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
<li class="even ">
|
|
168
|
+
<div class="item">
|
|
169
|
+
<span class='object_link'><a href="Ovto/WiredActions.html#method_missing-instance_method" title="Ovto::WiredActions#method_missing (method)">#method_missing</a></span>
|
|
170
|
+
<small>Ovto::WiredActions</small>
|
|
171
|
+
</div>
|
|
172
|
+
</li>
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
<li class="odd ">
|
|
176
|
+
<div class="item">
|
|
177
|
+
<span class='object_link'><a href="Ovto/Component.html#render-instance_method" title="Ovto::Component#render (method)">#render</a></span>
|
|
178
|
+
<small>Ovto::Component</small>
|
|
179
|
+
</div>
|
|
180
|
+
</li>
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
<li class="even ">
|
|
184
|
+
<div class="item">
|
|
185
|
+
<span class='object_link'><a href="Ovto/WiredActions.html#respond_to%3F-instance_method" title="Ovto::WiredActions#respond_to? (method)">#respond_to?</a></span>
|
|
186
|
+
<small>Ovto::WiredActions</small>
|
|
187
|
+
</div>
|
|
188
|
+
</li>
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
<li class="odd ">
|
|
192
|
+
<div class="item">
|
|
193
|
+
<span class='object_link'><a href="Ovto/App.html#run-instance_method" title="Ovto::App#run (method)">#run</a></span>
|
|
194
|
+
<small>Ovto::App</small>
|
|
195
|
+
</div>
|
|
196
|
+
</li>
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
<li class="even ">
|
|
200
|
+
<div class="item">
|
|
201
|
+
<span class='object_link'><a href="Ovto/Runtime.html#run-instance_method" title="Ovto::Runtime#run (method)">#run</a></span>
|
|
202
|
+
<small>Ovto::Runtime</small>
|
|
203
|
+
</div>
|
|
204
|
+
</li>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
<li class="odd ">
|
|
208
|
+
<div class="item">
|
|
209
|
+
<span class='object_link'><a href="Ovto/App.html#run-class_method" title="Ovto::App.run (method)">run</a></span>
|
|
210
|
+
<small>Ovto::App</small>
|
|
211
|
+
</div>
|
|
212
|
+
</li>
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
<li class="even ">
|
|
216
|
+
<div class="item">
|
|
217
|
+
<span class='object_link'><a href="Ovto/Runtime.html#scheduleRender-instance_method" title="Ovto::Runtime#scheduleRender (method)">#scheduleRender</a></span>
|
|
218
|
+
<small>Ovto::Runtime</small>
|
|
219
|
+
</div>
|
|
220
|
+
</li>
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<li class="odd ">
|
|
224
|
+
<div class="item">
|
|
225
|
+
<span class='object_link'><a href="Ovto/App.html#state-instance_method" title="Ovto::App#state (method)">#state</a></span>
|
|
226
|
+
<small>Ovto::App</small>
|
|
227
|
+
</div>
|
|
228
|
+
</li>
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
<li class="even ">
|
|
232
|
+
<div class="item">
|
|
233
|
+
<span class='object_link'><a href="Ovto/State.html#to_h-instance_method" title="Ovto::State#to_h (method)">#to_h</a></span>
|
|
234
|
+
<small>Ovto::State</small>
|
|
235
|
+
</div>
|
|
236
|
+
</li>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
</ul>
|
|
241
|
+
</div>
|
|
242
|
+
</body>
|
|
243
|
+
</html>
|
data/docs/api/state.html
ADDED
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE HTML>
|
|
3
|
+
<html lang="" >
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
7
|
+
<title>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.3">
|
|
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
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
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>
|
|
68
|
+
|
|
69
|
+
<div class="book">
|
|
70
|
+
<div class="book-summary">
|
|
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
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
<ul class="summary">
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
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" >
|
|
119
|
+
|
|
120
|
+
<span>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
API
|
|
124
|
+
|
|
125
|
+
</span>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
<ul class="articles">
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
<li class="chapter " data-level="1.3.1" data-path="app.html">
|
|
133
|
+
|
|
134
|
+
<a href="app.html">
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
App
|
|
138
|
+
|
|
139
|
+
</a>
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</li>
|
|
144
|
+
|
|
145
|
+
<li class="chapter active" data-level="1.3.2" data-path="state.html">
|
|
146
|
+
|
|
147
|
+
<a href="state.html">
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
State
|
|
151
|
+
|
|
152
|
+
</a>
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
</li>
|
|
157
|
+
|
|
158
|
+
<li class="chapter " data-level="1.3.3" data-path="actions.html">
|
|
159
|
+
|
|
160
|
+
<a href="actions.html">
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
Actions
|
|
164
|
+
|
|
165
|
+
</a>
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
</li>
|
|
170
|
+
|
|
171
|
+
<li class="chapter " data-level="1.3.4" data-path="component.html">
|
|
172
|
+
|
|
173
|
+
<a href="component.html">
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
Component
|
|
177
|
+
|
|
178
|
+
</a>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
</li>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
</ul>
|
|
186
|
+
|
|
187
|
+
</li>
|
|
188
|
+
|
|
189
|
+
<li class="chapter " data-level="1.4" >
|
|
190
|
+
|
|
191
|
+
<span>
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
Guides
|
|
195
|
+
|
|
196
|
+
</span>
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
<ul class="articles">
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
<li class="chapter " data-level="1.4.1" data-path="../guides/debugging.html">
|
|
204
|
+
|
|
205
|
+
<a href="../guides/debugging.html">
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
Debugging
|
|
209
|
+
|
|
210
|
+
</a>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
</li>
|
|
215
|
+
|
|
216
|
+
<li class="chapter " data-level="1.4.2" data-path="../guides/development.html">
|
|
217
|
+
|
|
218
|
+
<a href="../guides/development.html">
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
Development
|
|
222
|
+
|
|
223
|
+
</a>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
</li>
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
</ul>
|
|
231
|
+
|
|
232
|
+
</li>
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
<li class="divider"></li>
|
|
238
|
+
|
|
239
|
+
<li>
|
|
240
|
+
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
|
|
241
|
+
Published with GitBook
|
|
242
|
+
</a>
|
|
243
|
+
</li>
|
|
244
|
+
</ul>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
</nav>
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
</div>
|
|
251
|
+
|
|
252
|
+
<div class="book-body">
|
|
253
|
+
|
|
254
|
+
<div class="body-inner">
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
<div class="book-header" role="navigation">
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
<!-- Title -->
|
|
262
|
+
<h1>
|
|
263
|
+
<i class="fa fa-circle-o-notch fa-spin"></i>
|
|
264
|
+
<a href=".." >State</a>
|
|
265
|
+
</h1>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
<div class="page-wrapper" tabindex="-1" role="main">
|
|
272
|
+
<div class="page-inner">
|
|
273
|
+
|
|
274
|
+
<div id="book-search-results">
|
|
275
|
+
<div class="search-noresults">
|
|
276
|
+
|
|
277
|
+
<section class="normal markdown-section">
|
|
278
|
+
|
|
279
|
+
<h1 id="ovtostate">Ovto::State</h1>
|
|
280
|
+
<p><code>Ovto::State</code> is like a hash, but members are accessible with name rather than <code>[]</code>.</p>
|
|
281
|
+
<h2 id="example">Example</h2>
|
|
282
|
+
<pre><code class="lang-rb"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">State</span> < Ovto::State</span>
|
|
283
|
+
item <span class="hljs-symbol">:foo</span>
|
|
284
|
+
item <span class="hljs-symbol">:bar</span>
|
|
285
|
+
<span class="hljs-keyword">end</span>
|
|
286
|
+
|
|
287
|
+
state = State.new(<span class="hljs-symbol">foo:</span> <span class="hljs-number">1</span>, <span class="hljs-symbol">bar:</span> <span class="hljs-number">2</span>)
|
|
288
|
+
state.foo <span class="hljs-comment">#=> 1</span>
|
|
289
|
+
state.bar <span class="hljs-comment">#=> 2</span>
|
|
290
|
+
</code></pre>
|
|
291
|
+
<h2 id="default-value">Default value</h2>
|
|
292
|
+
<pre><code class="lang-rb"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">State</span> < Ovto::State</span>
|
|
293
|
+
item <span class="hljs-symbol">:foo</span>, <span class="hljs-symbol">default:</span> <span class="hljs-number">1</span>
|
|
294
|
+
item <span class="hljs-symbol">:bar</span>, <span class="hljs-symbol">default:</span> <span class="hljs-number">2</span>
|
|
295
|
+
<span class="hljs-keyword">end</span>
|
|
296
|
+
|
|
297
|
+
state = State.new
|
|
298
|
+
state.foo <span class="hljs-comment">#=> 1</span>
|
|
299
|
+
state.bar <span class="hljs-comment">#=> 2</span>
|
|
300
|
+
</code></pre>
|
|
301
|
+
<h2 id="immutable">Immutable</h2>
|
|
302
|
+
<p>State objects are immutable. i.e. you cannot update value of a key. Instead, use <code>State#merge</code>.</p>
|
|
303
|
+
<pre><code class="lang-rb">state = State.new(<span class="hljs-symbol">foo:</span> <span class="hljs-number">1</span>, <span class="hljs-symbol">bar:</span> <span class="hljs-number">2</span>)
|
|
304
|
+
new_state = state.merge(<span class="hljs-symbol">bar:</span> <span class="hljs-number">3</span>)
|
|
305
|
+
new_state.foo <span class="hljs-comment">#=> 1</span>
|
|
306
|
+
new_state.bar <span class="hljs-comment">#=> 3</span>
|
|
307
|
+
</code></pre>
|
|
308
|
+
<h2 id="nesting-state">Nesting state</h2>
|
|
309
|
+
<p>For practical apps, you can nest State like this.</p>
|
|
310
|
+
<pre><code class="lang-rb"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Book</span> < Ovto::State</span>
|
|
311
|
+
item <span class="hljs-symbol">:title</span>
|
|
312
|
+
item <span class="hljs-symbol">:author</span>
|
|
313
|
+
<span class="hljs-keyword">end</span>
|
|
314
|
+
|
|
315
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">State</span> < Ovto::State</span>
|
|
316
|
+
item <span class="hljs-symbol">:books</span>, []
|
|
317
|
+
<span class="hljs-keyword">end</span>
|
|
318
|
+
|
|
319
|
+
book = Book.new(<span class="hljs-string">'Hello world'</span>, <span class="hljs-string">'taro'</span>)
|
|
320
|
+
state = State.new(<span class="hljs-symbol">books:</span> [book])
|
|
321
|
+
</code></pre>
|
|
322
|
+
<h2 id="defining-instance-methods-of-state">Defining instance methods of state</h2>
|
|
323
|
+
<p>You can define instance methods of state.</p>
|
|
324
|
+
<pre><code class="lang-rb"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Book</span> < Ovto::State</span>
|
|
325
|
+
item <span class="hljs-symbol">:title</span>
|
|
326
|
+
item <span class="hljs-symbol">:author</span>
|
|
327
|
+
|
|
328
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">to_text</span></span>
|
|
329
|
+
<span class="hljs-string">"<span class="hljs-subst">#{<span class="hljs-keyword">self</span>.title}</span> (<span class="hljs-subst">#{<span class="hljs-keyword">self</span>.author}</span>)"</span>
|
|
330
|
+
<span class="hljs-keyword">end</span>
|
|
331
|
+
<span class="hljs-keyword">end</span>
|
|
332
|
+
|
|
333
|
+
book = Book.new(<span class="hljs-string">'Hello world'</span>, <span class="hljs-string">'taro'</span>)
|
|
334
|
+
book.to_text <span class="hljs-comment">#=> "Hello world (taro)"</span>
|
|
335
|
+
</code></pre>
|
|
336
|
+
<h2 id="defining-class-methods-of-state">Defining class methods of state</h2>
|
|
337
|
+
<p>Ovto does not have a class like <code>StateList</code>. Just use Array to represent a list of state.</p>
|
|
338
|
+
<p>You can define class methods to manipulate a list of state.</p>
|
|
339
|
+
<pre><code class="lang-rb"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Book</span> < Ovto::State</span>
|
|
340
|
+
item <span class="hljs-symbol">:title</span>
|
|
341
|
+
item <span class="hljs-symbol">:author</span>
|
|
342
|
+
|
|
343
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">self</span>.<span class="hljs-title">of_author</span><span class="hljs-params">(books, author)</span></span>
|
|
344
|
+
books.select{|x| x.author == author}
|
|
345
|
+
<span class="hljs-keyword">end</span>
|
|
346
|
+
<span class="hljs-keyword">end</span>
|
|
347
|
+
|
|
348
|
+
<span class="hljs-comment"># Example</span>
|
|
349
|
+
taro_books = Book.of_author(books, <span class="hljs-string">"taro"</span>)
|
|
350
|
+
</code></pre>
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
</section>
|
|
354
|
+
|
|
355
|
+
</div>
|
|
356
|
+
<div class="search-results">
|
|
357
|
+
<div class="has-results">
|
|
358
|
+
|
|
359
|
+
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
|
360
|
+
<ul class="search-results-list"></ul>
|
|
361
|
+
|
|
362
|
+
</div>
|
|
363
|
+
<div class="no-results">
|
|
364
|
+
|
|
365
|
+
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
|
366
|
+
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
</div>
|
|
372
|
+
</div>
|
|
373
|
+
|
|
374
|
+
</div>
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
<a href="app.html" class="navigation navigation-prev " aria-label="Previous page: App">
|
|
379
|
+
<i class="fa fa-angle-left"></i>
|
|
380
|
+
</a>
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
<a href="actions.html" class="navigation navigation-next " aria-label="Next page: Actions">
|
|
384
|
+
<i class="fa fa-angle-right"></i>
|
|
385
|
+
</a>
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
</div>
|
|
390
|
+
|
|
391
|
+
<script>
|
|
392
|
+
var gitbook = gitbook || [];
|
|
393
|
+
gitbook.push(function() {
|
|
394
|
+
gitbook.page.hasChanged({"page":{"title":"State","level":"1.3.2","depth":2,"next":{"title":"Actions","level":"1.3.3","depth":2,"path":"api/actions.md","ref":"api/actions.md","articles":[]},"previous":{"title":"App","level":"1.3.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-11T06:21:35.000Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-06-01T12:07:18.151Z"},"basePath":"..","book":{"language":""}});
|
|
395
|
+
});
|
|
396
|
+
</script>
|
|
397
|
+
</div>
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
<script src="../gitbook/gitbook.js"></script>
|
|
401
|
+
<script src="../gitbook/theme.js"></script>
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
<script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
<script src="../gitbook/gitbook-plugin-search/search.js"></script>
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
<script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
<script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
</body>
|
|
429
|
+
</html>
|
|
430
|
+
|