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.
Files changed (105) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.gitmodules +3 -0
  4. data/CHANGELOG.md +22 -0
  5. data/Gemfile +7 -0
  6. data/Gemfile.lock +57 -0
  7. data/LICENSE.txt +44 -0
  8. data/README.md +84 -0
  9. data/Rakefile +41 -0
  10. data/book/README.md +1 -0
  11. data/book/SUMMARY.md +13 -0
  12. data/book/api/actions.md +77 -0
  13. data/book/api/app.md +86 -0
  14. data/book/api/component.md +175 -0
  15. data/book/api/fetch.md +42 -0
  16. data/book/api/state.md +97 -0
  17. data/book/guides/debugging.md +23 -0
  18. data/book/guides/development.md +11 -0
  19. data/book/guides/tutorial.md +288 -0
  20. data/book/screenshot.png +0 -0
  21. data/docs/api/Ovto/Actions.html +135 -0
  22. data/docs/api/Ovto/App.html +531 -0
  23. data/docs/api/Ovto/Component/MoreThanOneNode.html +135 -0
  24. data/docs/api/Ovto/Component.html +350 -0
  25. data/docs/api/Ovto/Runtime.html +315 -0
  26. data/docs/api/Ovto/State/MissingValue.html +135 -0
  27. data/docs/api/Ovto/State/UnknownKey.html +135 -0
  28. data/docs/api/Ovto/State.html +699 -0
  29. data/docs/api/Ovto/WiredActions.html +343 -0
  30. data/docs/api/Ovto.html +319 -0
  31. data/docs/api/_index.html +229 -0
  32. data/docs/api/actions.html +398 -0
  33. data/docs/api/app.html +411 -0
  34. data/docs/api/class_list.html +51 -0
  35. data/docs/api/component.html +469 -0
  36. data/docs/api/css/common.css +1 -0
  37. data/docs/api/css/full_list.css +58 -0
  38. data/docs/api/css/style.css +499 -0
  39. data/docs/api/file.README.html +162 -0
  40. data/docs/api/file_list.html +56 -0
  41. data/docs/api/frames.html +17 -0
  42. data/docs/api/index.html +162 -0
  43. data/docs/api/js/app.js +248 -0
  44. data/docs/api/js/full_list.js +216 -0
  45. data/docs/api/js/jquery.js +4 -0
  46. data/docs/api/method_list.html +243 -0
  47. data/docs/api/state.html +430 -0
  48. data/docs/api/top-level-namespace.html +110 -0
  49. data/docs/gitbook/fonts/fontawesome/FontAwesome.otf +0 -0
  50. data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  51. data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg +685 -0
  52. data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  53. data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  54. data/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  55. data/docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js +240 -0
  56. data/docs/gitbook/gitbook-plugin-fontsettings/website.css +291 -0
  57. data/docs/gitbook/gitbook-plugin-highlight/ebook.css +135 -0
  58. data/docs/gitbook/gitbook-plugin-highlight/website.css +434 -0
  59. data/docs/gitbook/gitbook-plugin-lunr/lunr.min.js +7 -0
  60. data/docs/gitbook/gitbook-plugin-lunr/search-lunr.js +59 -0
  61. data/docs/gitbook/gitbook-plugin-search/lunr.min.js +7 -0
  62. data/docs/gitbook/gitbook-plugin-search/search-engine.js +50 -0
  63. data/docs/gitbook/gitbook-plugin-search/search.css +35 -0
  64. data/docs/gitbook/gitbook-plugin-search/search.js +213 -0
  65. data/docs/gitbook/gitbook-plugin-sharing/buttons.js +90 -0
  66. data/docs/gitbook/gitbook.js +4 -0
  67. data/docs/gitbook/images/apple-touch-icon-precomposed-152.png +0 -0
  68. data/docs/gitbook/images/favicon.ico +0 -0
  69. data/docs/gitbook/style.css +9 -0
  70. data/docs/gitbook/theme.js +4 -0
  71. data/docs/guides/debugging.html +355 -0
  72. data/docs/guides/development.html +361 -0
  73. data/docs/guides/tutorial.html +571 -0
  74. data/docs/index.html +422 -0
  75. data/docs/screenshot.png +0 -0
  76. data/docs/search_index.json +1 -0
  77. data/example/sinatra/Gemfile +6 -0
  78. data/example/sinatra/Gemfile.lock +59 -0
  79. data/example/sinatra/README.md +21 -0
  80. data/example/sinatra/app.rb +18 -0
  81. data/example/sinatra/config.ru +30 -0
  82. data/example/sinatra/ovto/app.rb +171 -0
  83. data/example/sinatra/public/style.css +4 -0
  84. data/example/sinatra/public/todomvc-app-css_index.css +376 -0
  85. data/example/sinatra/public/todomvc-common_base.css +141 -0
  86. data/example/sinatra/views/index.erb +21 -0
  87. data/example/static/Gemfile +3 -0
  88. data/example/static/Gemfile.lock +30 -0
  89. data/example/static/README.md +10 -0
  90. data/example/static/Rakefile +4 -0
  91. data/example/static/app.js +24808 -0
  92. data/example/static/app.rb +43 -0
  93. data/example/static/index.html +11 -0
  94. data/lib/ovto/actions.rb +10 -0
  95. data/lib/ovto/app.rb +58 -0
  96. data/lib/ovto/component.rb +191 -0
  97. data/lib/ovto/fetch.rb +53 -0
  98. data/lib/ovto/runtime.rb +388 -0
  99. data/lib/ovto/state.rb +69 -0
  100. data/lib/ovto/version.rb +3 -0
  101. data/lib/ovto/wired_actions.rb +33 -0
  102. data/lib/ovto.rb +50 -0
  103. data/ovto.gemspec +22 -0
  104. data/screenshot.png +0 -0
  105. metadata +161 -0
data/docs/index.html ADDED
@@ -0,0 +1,422 @@
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>Introduction · 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="guides/tutorial.html" />
61
+
62
+
63
+
64
+ </head>
65
+ <body>
66
+
67
+ <div class="book">
68
+ <div class="book-summary">
69
+
70
+
71
+ <div id="book-search-input" role="search">
72
+ <input type="text" placeholder="Type to search" />
73
+ </div>
74
+
75
+
76
+ <nav role="navigation">
77
+
78
+
79
+
80
+ <ul class="summary">
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <li class="chapter active" data-level="1.1" data-path="./">
91
+
92
+ <a href="./">
93
+
94
+
95
+ Introduction
96
+
97
+ </a>
98
+
99
+
100
+
101
+ </li>
102
+
103
+ <li class="chapter " data-level="1.2" data-path="guides/tutorial.html">
104
+
105
+ <a href="guides/tutorial.html">
106
+
107
+
108
+ Getting Started
109
+
110
+ </a>
111
+
112
+
113
+
114
+ </li>
115
+
116
+ <li class="chapter " data-level="1.3" >
117
+
118
+ <span>
119
+
120
+
121
+ API
122
+
123
+ </span>
124
+
125
+
126
+
127
+ <ul class="articles">
128
+
129
+
130
+ <li class="chapter " data-level="1.3.1" data-path="api/app.html">
131
+
132
+ <a href="api/app.html">
133
+
134
+
135
+ App
136
+
137
+ </a>
138
+
139
+
140
+
141
+ </li>
142
+
143
+ <li class="chapter " data-level="1.3.2" data-path="api/state.html">
144
+
145
+ <a href="api/state.html">
146
+
147
+
148
+ State
149
+
150
+ </a>
151
+
152
+
153
+
154
+ </li>
155
+
156
+ <li class="chapter " data-level="1.3.3" data-path="api/actions.html">
157
+
158
+ <a href="api/actions.html">
159
+
160
+
161
+ Actions
162
+
163
+ </a>
164
+
165
+
166
+
167
+ </li>
168
+
169
+ <li class="chapter " data-level="1.3.4" data-path="api/component.html">
170
+
171
+ <a href="api/component.html">
172
+
173
+
174
+ Component
175
+
176
+ </a>
177
+
178
+
179
+
180
+ </li>
181
+
182
+
183
+ </ul>
184
+
185
+ </li>
186
+
187
+ <li class="chapter " data-level="1.4" >
188
+
189
+ <span>
190
+
191
+
192
+ Guides
193
+
194
+ </span>
195
+
196
+
197
+
198
+ <ul class="articles">
199
+
200
+
201
+ <li class="chapter " data-level="1.4.1" data-path="guides/debugging.html">
202
+
203
+ <a href="guides/debugging.html">
204
+
205
+
206
+ Debugging
207
+
208
+ </a>
209
+
210
+
211
+
212
+ </li>
213
+
214
+ <li class="chapter " data-level="1.4.2" data-path="guides/development.html">
215
+
216
+ <a href="guides/development.html">
217
+
218
+
219
+ Development
220
+
221
+ </a>
222
+
223
+
224
+
225
+ </li>
226
+
227
+
228
+ </ul>
229
+
230
+ </li>
231
+
232
+
233
+
234
+
235
+ <li class="divider"></li>
236
+
237
+ <li>
238
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
239
+ Published with GitBook
240
+ </a>
241
+ </li>
242
+ </ul>
243
+
244
+
245
+ </nav>
246
+
247
+
248
+ </div>
249
+
250
+ <div class="book-body">
251
+
252
+ <div class="body-inner">
253
+
254
+
255
+
256
+ <div class="book-header" role="navigation">
257
+
258
+
259
+ <!-- Title -->
260
+ <h1>
261
+ <i class="fa fa-circle-o-notch fa-spin"></i>
262
+ <a href="." >Introduction</a>
263
+ </h1>
264
+ </div>
265
+
266
+
267
+
268
+
269
+ <div class="page-wrapper" tabindex="-1" role="main">
270
+ <div class="page-inner">
271
+
272
+ <div id="book-search-results">
273
+ <div class="search-noresults">
274
+
275
+ <section class="normal markdown-section">
276
+
277
+ <h1 id="ovto">Ovto</h1>
278
+ <p>Client-side web framework for Opal, inspired by hyperapp</p>
279
+ <h2 id="documents">Documents</h2>
280
+ <ul>
281
+ <li><a href="https://yhara.github.io/ovto/" target="_blank">Book</a></li>
282
+ <li><a href="https://yhara.github.io/ovto/api/" target="_blank">yardoc</a></li>
283
+ </ul>
284
+ <h2 id="example">Example</h2>
285
+ <p><img src="screenshot.png" alt="screenshot"></p>
286
+ <pre><code class="lang-rb"><span class="hljs-keyword">require</span> <span class="hljs-string">&apos;ovto&apos;</span>
287
+
288
+ <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyApp</span> &lt; Ovto::App</span>
289
+ <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">State</span> &lt; Ovto::State</span>
290
+ item <span class="hljs-symbol">:celsius</span>, <span class="hljs-symbol">default:</span> <span class="hljs-number">0</span>
291
+
292
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">fahrenheit</span></span>
293
+ (celsius * <span class="hljs-number">9</span> / <span class="hljs-number">5.0</span>) + <span class="hljs-number">32</span>
294
+ <span class="hljs-keyword">end</span>
295
+ <span class="hljs-keyword">end</span>
296
+
297
+ <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Actions</span> &lt; Ovto::Actions</span>
298
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_celsius</span><span class="hljs-params">(<span class="hljs-symbol">state:</span>, <span class="hljs-symbol">value:</span>)</span></span>
299
+ <span class="hljs-keyword">return</span> {<span class="hljs-symbol">celsius:</span> value}
300
+ <span class="hljs-keyword">end</span>
301
+
302
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_fahrenheit</span><span class="hljs-params">(<span class="hljs-symbol">state:</span>, <span class="hljs-symbol">value:</span>)</span></span>
303
+ new_celsius = (value - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9.0</span>
304
+ <span class="hljs-keyword">return</span> {<span class="hljs-symbol">celsius:</span> new_celsius}
305
+ <span class="hljs-keyword">end</span>
306
+ <span class="hljs-keyword">end</span>
307
+
308
+ <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">View</span> &lt; Ovto::Component</span>
309
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">render</span><span class="hljs-params">(<span class="hljs-symbol">state:</span>)</span></span>
310
+ o <span class="hljs-string">&apos;div&apos;</span> <span class="hljs-keyword">do</span>
311
+ o <span class="hljs-string">&apos;span&apos;</span>, <span class="hljs-string">&apos;Celcius:&apos;</span>
312
+ o <span class="hljs-string">&apos;input&apos;</span>, {
313
+ <span class="hljs-symbol">type:</span> <span class="hljs-string">&apos;text&apos;</span>,
314
+ <span class="hljs-symbol">onchange:</span> -&gt;(e){ actions.set_celsius(<span class="hljs-symbol">value:</span> e.target.value.to_i) },
315
+ <span class="hljs-symbol">value:</span> state.celsius
316
+ }
317
+ o <span class="hljs-string">&apos;span&apos;</span>, <span class="hljs-string">&apos;Fahrenheit:&apos;</span>
318
+ o <span class="hljs-string">&apos;input&apos;</span>, {
319
+ <span class="hljs-symbol">type:</span> <span class="hljs-string">&apos;text&apos;</span>,
320
+ <span class="hljs-symbol">onchange:</span> -&gt;(e){ actions.set_fahrenheit(<span class="hljs-symbol">value:</span> e.target.value.to_i) },
321
+ <span class="hljs-symbol">value:</span> state.fahrenheit
322
+ }
323
+ <span class="hljs-keyword">end</span>
324
+ <span class="hljs-keyword">end</span>
325
+ <span class="hljs-keyword">end</span>
326
+ <span class="hljs-keyword">end</span>
327
+
328
+ MyApp.run(<span class="hljs-symbol">id:</span> <span class="hljs-string">&apos;ovto-view&apos;</span>)
329
+ </code></pre>
330
+ <p>See the <a href="https://yhara.github.io/ovto/guides/tutorial.html" target="_blank">book</a> for details.</p>
331
+ <h2 id="setup">Setup</h2>
332
+ <h3 id="static">Static</h3>
333
+ <p><a href="example/static">./example/static</a> demonstrates how to convert Ovto app
334
+ into a .js file.</p>
335
+ <h3 id="ovto--sinatra">Ovto + Sinatra</h3>
336
+ <p><a href="example/sinatra">./example/sinatra</a> demonstrates how to serve Ovto app
337
+ from Sinatra.</p>
338
+ <h3 id="ovto--rails">Ovto + Rails</h3>
339
+ <p><a href="example/rails4">./example/rails4</a> and <a href="example/rails5">./example/rails5</a> are
340
+ examples to use Ovto on Ruby on Rails.</p>
341
+ <h2 id="acknowledgements">Acknowledgements</h2>
342
+ <ul>
343
+ <li><a href="https://github.com/hyperapp/hyperapp" target="_blank">hyperapp</a></li>
344
+ </ul>
345
+ <h2 id="contact">Contact</h2>
346
+ <p><a href="https://github.com/yhara/ovto/issues" target="_blank">https://github.com/yhara/ovto/issues</a></p>
347
+
348
+
349
+ </section>
350
+
351
+ </div>
352
+ <div class="search-results">
353
+ <div class="has-results">
354
+
355
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
356
+ <ul class="search-results-list"></ul>
357
+
358
+ </div>
359
+ <div class="no-results">
360
+
361
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
362
+
363
+ </div>
364
+ </div>
365
+ </div>
366
+
367
+ </div>
368
+ </div>
369
+
370
+ </div>
371
+
372
+
373
+
374
+
375
+ <a href="guides/tutorial.html" class="navigation navigation-next navigation-unique" aria-label="Next page: Getting Started">
376
+ <i class="fa fa-angle-right"></i>
377
+ </a>
378
+
379
+
380
+
381
+ </div>
382
+
383
+ <script>
384
+ var gitbook = gitbook || [];
385
+ gitbook.push(function() {
386
+ gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Getting Started","level":"1.2","depth":1,"path":"guides/tutorial.md","ref":"guides/tutorial.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":"README.md","mtime":"2018-06-01T11:06:49.000Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-06-01T12:07:18.151Z"},"basePath":".","book":{"language":""}});
387
+ });
388
+ </script>
389
+ </div>
390
+
391
+
392
+ <script src="gitbook/gitbook.js"></script>
393
+ <script src="gitbook/theme.js"></script>
394
+
395
+
396
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
397
+
398
+
399
+
400
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
401
+
402
+
403
+
404
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
405
+
406
+
407
+
408
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
409
+
410
+
411
+
412
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
413
+
414
+
415
+
416
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
417
+
418
+
419
+
420
+ </body>
421
+ </html>
422
+
Binary file