subduino 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (196) hide show
  1. data/.document +5 -0
  2. data/.gitignore +26 -0
  3. data/Rakefile +76 -0
  4. data/Readme.textile +46 -0
  5. data/VERSION +1 -0
  6. data/bin/subduino +34 -0
  7. data/bin/subduino-cli +65 -0
  8. data/duino/.gitignore +2 -0
  9. data/duino/Makefile +401 -0
  10. data/duino/duino.pde +17 -0
  11. data/duino/duino.rb +16 -0
  12. data/duino/methods.pde +5 -0
  13. data/lib/subduino/ard_io.rb +60 -0
  14. data/lib/subduino/ard_ps.rb +38 -0
  15. data/lib/subduino/arduino.rb +30 -0
  16. data/lib/subduino/parse.rb +61 -0
  17. data/lib/subduino/scaffold/Makefile +401 -0
  18. data/lib/subduino/scaffold/Makefile2 +247 -0
  19. data/lib/subduino/scaffold/generator.rb +29 -0
  20. data/lib/subduino/scaffold/scaffold.pde +17 -0
  21. data/lib/subduino/scaffold/scaffold.rb +16 -0
  22. data/lib/subduino/store.rb +65 -0
  23. data/lib/subduino.rb +48 -0
  24. data/node/arduinode.js +68 -0
  25. data/node/server.js +45 -0
  26. data/node/vendor/faye.js +1925 -0
  27. data/spec/spec_helper.rb +10 -0
  28. data/spec/subduino/ard_io_spec.rb +9 -0
  29. data/spec/subduino/parse_spec.rb +21 -0
  30. data/spec/subduino/store_spec.rb +17 -0
  31. data/spec/subduino_spec.rb +20 -0
  32. data/subduino.gemspec +239 -0
  33. data/webapp/Gemfile +8 -0
  34. data/webapp/Gemfile.lock +14 -0
  35. data/webapp/Rakefile +49 -0
  36. data/webapp/Readme.textile +45 -0
  37. data/webapp/VERSION +1 -0
  38. data/webapp/lib/app.rb +103 -0
  39. data/webapp/lib/duino.rb +213 -0
  40. data/webapp/lib/environment.rb +36 -0
  41. data/webapp/lib/messenger.rb +16 -0
  42. data/webapp/public/app.css +119 -0
  43. data/webapp/public/app.js +34 -0
  44. data/webapp/public/faye.js +1 -0
  45. data/webapp/public/icons/alarm-clock-blue.png +0 -0
  46. data/webapp/public/icons/alarm-clock.png +0 -0
  47. data/webapp/public/icons/balloon-left.png +0 -0
  48. data/webapp/public/icons/bandaid.png +0 -0
  49. data/webapp/public/icons/bell-disable.png +0 -0
  50. data/webapp/public/icons/bell.png +0 -0
  51. data/webapp/public/icons/big_icon.png +0 -0
  52. data/webapp/public/icons/bomb.png +0 -0
  53. data/webapp/public/icons/bookmark.png +0 -0
  54. data/webapp/public/icons/box-label.png +0 -0
  55. data/webapp/public/icons/brightness-control-up.png +0 -0
  56. data/webapp/public/icons/brightness-control.png +0 -0
  57. data/webapp/public/icons/brightness-small.png +0 -0
  58. data/webapp/public/icons/broom.png +0 -0
  59. data/webapp/public/icons/bug.png +0 -0
  60. data/webapp/public/icons/calculator.png +0 -0
  61. data/webapp/public/icons/calendar-day.png +0 -0
  62. data/webapp/public/icons/camera.png +0 -0
  63. data/webapp/public/icons/cards-address.png +0 -0
  64. data/webapp/public/icons/chart.png +0 -0
  65. data/webapp/public/icons/clock-select.png +0 -0
  66. data/webapp/public/icons/color.png +0 -0
  67. data/webapp/public/icons/compass.png +0 -0
  68. data/webapp/public/icons/control-power-small.png +0 -0
  69. data/webapp/public/icons/control-power.png +0 -0
  70. data/webapp/public/icons/control-record-small.png +0 -0
  71. data/webapp/public/icons/cpus.png +0 -0
  72. data/webapp/public/icons/credit-card.png +0 -0
  73. data/webapp/public/icons/cross-small.png +0 -0
  74. data/webapp/public/icons/dashboard.png +0 -0
  75. data/webapp/public/icons/database.png +0 -0
  76. data/webapp/public/icons/databases.png +0 -0
  77. data/webapp/public/icons/door-open-in.png +0 -0
  78. data/webapp/public/icons/door-open-out.png +0 -0
  79. data/webapp/public/icons/door-open.png +0 -0
  80. data/webapp/public/icons/door.png +0 -0
  81. data/webapp/public/icons/drive-globe.png +0 -0
  82. data/webapp/public/icons/equalizer.png +0 -0
  83. data/webapp/public/icons/exclamation-diamond.png +0 -0
  84. data/webapp/public/icons/exclamation.png +0 -0
  85. data/webapp/public/icons/eye-disable.png +0 -0
  86. data/webapp/public/icons/eye.png +0 -0
  87. data/webapp/public/icons/false.png +0 -0
  88. data/webapp/public/icons/gear-small.png +0 -0
  89. data/webapp/public/icons/gear.png +0 -0
  90. data/webapp/public/icons/groups.png +0 -0
  91. data/webapp/public/icons/heart.png +0 -0
  92. data/webapp/public/icons/heart_empty.png +0 -0
  93. data/webapp/public/icons/info.png +0 -0
  94. data/webapp/public/icons/key.png +0 -0
  95. data/webapp/public/icons/lightbulb.png +0 -0
  96. data/webapp/public/icons/lightbulb_off.png +0 -0
  97. data/webapp/public/icons/lightning-disable.png +0 -0
  98. data/webapp/public/icons/lightning-small.png +0 -0
  99. data/webapp/public/icons/lightning.png +0 -0
  100. data/webapp/public/icons/lock-unlock.png +0 -0
  101. data/webapp/public/icons/lock.png +0 -0
  102. data/webapp/public/icons/marker.png +0 -0
  103. data/webapp/public/icons/media-player-phone.png +0 -0
  104. data/webapp/public/icons/megaphone.png +0 -0
  105. data/webapp/public/icons/mem.png +0 -0
  106. data/webapp/public/icons/microphone.png +0 -0
  107. data/webapp/public/icons/monitor.png +0 -0
  108. data/webapp/public/icons/navigation.png +0 -0
  109. data/webapp/public/icons/off.png +0 -0
  110. data/webapp/public/icons/on.png +0 -0
  111. data/webapp/public/icons/pin.png +0 -0
  112. data/webapp/public/icons/plug--exclamation.png +0 -0
  113. data/webapp/public/icons/plug-disable.png +0 -0
  114. data/webapp/public/icons/plug.png +0 -0
  115. data/webapp/public/icons/restart.png +0 -0
  116. data/webapp/public/icons/ruby.png +0 -0
  117. data/webapp/public/icons/server.png +0 -0
  118. data/webapp/public/icons/shield-disable.png +0 -0
  119. data/webapp/public/icons/shield.png +0 -0
  120. data/webapp/public/icons/socket--exclamation.png +0 -0
  121. data/webapp/public/icons/socket-disable.png +0 -0
  122. data/webapp/public/icons/socket.png +0 -0
  123. data/webapp/public/icons/start.png +0 -0
  124. data/webapp/public/icons/stop.png +0 -0
  125. data/webapp/public/icons/switch--exclamation.png +0 -0
  126. data/webapp/public/icons/switch-disable.png +0 -0
  127. data/webapp/public/icons/switch-small.png +0 -0
  128. data/webapp/public/icons/switch.png +0 -0
  129. data/webapp/public/icons/target.png +0 -0
  130. data/webapp/public/icons/television-off.png +0 -0
  131. data/webapp/public/icons/television.png +0 -0
  132. data/webapp/public/icons/terminal.png +0 -0
  133. data/webapp/public/icons/tick-small.png +0 -0
  134. data/webapp/public/icons/traffic-light-off.png +0 -0
  135. data/webapp/public/icons/traffic-light.png +0 -0
  136. data/webapp/public/icons/traffic.png +0 -0
  137. data/webapp/public/icons/true.png +0 -0
  138. data/webapp/public/icons/umbrella.png +0 -0
  139. data/webapp/public/icons/unmonitor.png +0 -0
  140. data/webapp/public/icons/unmonitored.png +0 -0
  141. data/webapp/public/icons/users.png +0 -0
  142. data/webapp/public/icons/vcard.png +0 -0
  143. data/webapp/public/icons/wall.png +0 -0
  144. data/webapp/public/icons/wall_brick.png +0 -0
  145. data/webapp/public/icons/wall_disable.png +0 -0
  146. data/webapp/public/icons/wand-disable.png +0 -0
  147. data/webapp/public/icons/wand.png +0 -0
  148. data/webapp/public/icons/warn.png +0 -0
  149. data/webapp/public/icons/weather_clouds.png +0 -0
  150. data/webapp/public/icons/weather_cloudy.png +0 -0
  151. data/webapp/public/icons/weather_lightning.png +0 -0
  152. data/webapp/public/icons/weather_rain.png +0 -0
  153. data/webapp/public/icons/weather_snow.png +0 -0
  154. data/webapp/public/icons/weather_sun.png +0 -0
  155. data/webapp/public/icons/wrench-screwdriver.png +0 -0
  156. data/webapp/public/icons/wrench.png +0 -0
  157. data/webapp/public/iui/backButton.png +0 -0
  158. data/webapp/public/iui/blueButton.png +0 -0
  159. data/webapp/public/iui/cancel.png +0 -0
  160. data/webapp/public/iui/grayButton.png +0 -0
  161. data/webapp/public/iui/greenButton.png +0 -0
  162. data/webapp/public/iui/iui-logo-touch-icon.png +0 -0
  163. data/webapp/public/iui/iui.css +396 -0
  164. data/webapp/public/iui/iui.js +511 -0
  165. data/webapp/public/iui/iuix.css +1 -0
  166. data/webapp/public/iui/iuix.js +1 -0
  167. data/webapp/public/iui/listArrow.png +0 -0
  168. data/webapp/public/iui/listArrowSel.png +0 -0
  169. data/webapp/public/iui/listGroup.png +0 -0
  170. data/webapp/public/iui/loading.gif +0 -0
  171. data/webapp/public/iui/pinstripes.png +0 -0
  172. data/webapp/public/iui/redButton.png +0 -0
  173. data/webapp/public/iui/selection.png +0 -0
  174. data/webapp/public/iui/thumb.png +0 -0
  175. data/webapp/public/iui/toggle.png +0 -0
  176. data/webapp/public/iui/toggleOn.png +0 -0
  177. data/webapp/public/iui/toolButton.png +0 -0
  178. data/webapp/public/iui/toolbar.png +0 -0
  179. data/webapp/public/iui/whiteButton.png +0 -0
  180. data/webapp/public/iui/yellowButton.png +0 -0
  181. data/webapp/public/jquery.js +154 -0
  182. data/webapp/public/layout.css +33 -0
  183. data/webapp/public/right.js +9 -0
  184. data/webapp/public/rt.js +7 -0
  185. data/webapp/public/sparkline.js +85 -0
  186. data/webapp/spec/duino_spec.rb +8 -0
  187. data/webapp/spec/spec_helper.rb +10 -0
  188. data/webapp/views/command.haml +4 -0
  189. data/webapp/views/icon.haml +6 -0
  190. data/webapp/views/index.haml +51 -0
  191. data/webapp/views/layout.haml +17 -0
  192. data/webapp/views/mobile.haml +21 -0
  193. data/webapp/views/switch.haml +56 -0
  194. data/webapp/views/top.haml +4 -0
  195. data/webapp/views/watch.haml +26 -0
  196. metadata +277 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,396 @@
1
+ /* iui.css (c) 2007-9 by iUI Project Members, see LICENSE.txt for license */
2
+ body {
3
+ margin: 0;
4
+ font-family: Helvetica;
5
+ background: #FFFFFF;
6
+ color: #000000;
7
+ overflow-x: hidden;
8
+ -webkit-user-select: none;
9
+ -webkit-text-size-adjust: none;
10
+ }
11
+
12
+ body > *:not(.toolbar) {
13
+ display: none;
14
+ position: absolute;
15
+ margin: 0;
16
+ padding: 0;
17
+ left: 0;
18
+ top: 45px;
19
+ width: 100%;
20
+ min-height: 372px;
21
+ -webkit-transition-duration: 300ms;
22
+ -webkit-transition-property: -webkit-transform;
23
+ -webkit-transform: translateX(0%);
24
+ }
25
+
26
+ body[orient="landscape"] > *:not(.toolbar) {
27
+ min-height: 268px;
28
+ }
29
+
30
+ body > *[selected="true"] {
31
+ display: block;
32
+ }
33
+
34
+ a[selected], a:active {
35
+ background-color: #194fdb !important;
36
+ background-image: url(listArrowSel.png), url(selection.png) !important;
37
+ background-repeat: no-repeat, repeat-x;
38
+ background-position: right center, left top;
39
+ color: #FFFFFF !important;
40
+ }
41
+
42
+ a[selected="progress"] {
43
+ background-image: url(loading.gif), url(selection.png) !important;
44
+ }
45
+
46
+ /************************************************************************************************/
47
+
48
+ body > .toolbar {
49
+ box-sizing: border-box;
50
+ -moz-box-sizing: border-box;
51
+ -webkit-box-sizing: border-box;
52
+ border-bottom: 1px solid #2d3642;
53
+ border-top: 1px solid #6d84a2;
54
+ padding: 10px;
55
+ height: 45px;
56
+ background: url(toolbar.png) #6d84a2 repeat-x;
57
+ }
58
+
59
+ .toolbar > h1 {
60
+ position: absolute;
61
+ overflow: hidden;
62
+ left: 50%;
63
+ margin: 1px 0 0 -75px;
64
+ height: 45px;
65
+ font-size: 20px;
66
+ width: 150px;
67
+ font-weight: bold;
68
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
69
+ text-align: center;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ color: #FFFFFF;
73
+ }
74
+
75
+ body[orient="landscape"] > .toolbar > h1 {
76
+ margin-left: -125px;
77
+ width: 250px;
78
+ }
79
+
80
+ .button {
81
+ position: absolute;
82
+ overflow: hidden;
83
+ top: 8px;
84
+ right: 6px;
85
+ margin: 0;
86
+ border-width: 0 5px;
87
+ padding: 0 3px;
88
+ width: auto;
89
+ height: 30px;
90
+ line-height: 30px;
91
+ font-family: inherit;
92
+ font-size: 12px;
93
+ font-weight: bold;
94
+ color: #FFFFFF;
95
+ text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0;
96
+ text-overflow: ellipsis;
97
+ text-decoration: none;
98
+ white-space: nowrap;
99
+ background: none;
100
+ -webkit-border-image: url(toolButton.png) 0 5 0 5;
101
+ }
102
+
103
+ .blueButton {
104
+ -webkit-border-image: url(blueButton.png) 0 5 0 5;
105
+ border-width: 0 5px;
106
+ }
107
+
108
+ .leftButton {
109
+ left: 6px;
110
+ right: auto;
111
+ }
112
+
113
+ #backButton {
114
+ display: none;
115
+ left: 6px;
116
+ right: auto;
117
+ padding: 0;
118
+ max-width: 55px;
119
+ border-width: 0 8px 0 14px;
120
+ -webkit-border-image: url(backButton.png) 0 8 0 14;
121
+ }
122
+
123
+ .whiteButton,
124
+ .redButton,
125
+ .grayButton {
126
+ display: block;
127
+ border-width: 0 12px;
128
+ padding: 10px;
129
+ text-align: center;
130
+ font-size: 20px;
131
+ font-weight: bold;
132
+ text-decoration: inherit;
133
+ color: inherit;
134
+ }
135
+
136
+ .whiteButton {
137
+ -webkit-border-image: url(whiteButton.png) 0 12 0 12;
138
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
139
+ }
140
+
141
+ .redButton {
142
+ -webkit-border-image: url(redButton.png) 0 12 0 12;
143
+ color:#fff;
144
+ text-shadow: #7a0001 0 -1px 0;
145
+ }
146
+
147
+ .grayButton {
148
+ -webkit-border-image: url(grayButton.png) 0 12 0 12;
149
+ color: #FFFFFF;
150
+ }
151
+
152
+ /************************************************************************************************/
153
+
154
+ body > ul > li {
155
+ position: relative;
156
+ margin: 0;
157
+ border-bottom: 1px solid #E0E0E0;
158
+ padding: 8px 0 8px 10px;
159
+ font-size: 20px;
160
+ font-weight: bold;
161
+ list-style: none;
162
+ }
163
+
164
+ body > ul > li.group {
165
+ position: relative;
166
+ top: -1px;
167
+ margin-bottom: -2px;
168
+ border-top: 1px solid #7d7d7d;
169
+ border-bottom: 1px solid #999999;
170
+ padding: 1px 10px;
171
+ background: url(listGroup.png) repeat-x;
172
+ font-size: 17px;
173
+ font-weight: bold;
174
+ text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
175
+ color: #FFFFFF;
176
+ }
177
+
178
+ body > ul > li.group:first-child {
179
+ top: 0;
180
+ border-top: none;
181
+ }
182
+
183
+ body > ul > li > a {
184
+ display: block;
185
+ margin: -8px 0 -8px -10px;
186
+ padding: 8px 32px 8px 10px;
187
+ text-decoration: none;
188
+ color: inherit;
189
+ background: url(listArrow.png) no-repeat right center;
190
+ }
191
+
192
+ a[target="_replace"] {
193
+ box-sizing: border-box;
194
+ -webkit-box-sizing: border-box;
195
+ padding-top: 25px;
196
+ padding-bottom: 25px;
197
+ font-size: 18px;
198
+ color: cornflowerblue;
199
+ background-color: #FFFFFF;
200
+ background-image: none;
201
+ }
202
+
203
+ /************************************************************************************************/
204
+
205
+ body > .dialog {
206
+ top: 0;
207
+ width: 100%;
208
+ min-height: 417px;
209
+ z-index: 2;
210
+ background: rgba(0, 0, 0, 0.8);
211
+ padding: 0;
212
+ text-align: right;
213
+ }
214
+
215
+ .dialog > fieldset {
216
+ box-sizing: border-box;
217
+ -webkit-box-sizing: border-box;
218
+ width: 100%;
219
+ margin: 0;
220
+ border: none;
221
+ border-top: 1px solid #6d84a2;
222
+ padding: 10px 6px;
223
+ background: url(toolbar.png) #7388a5 repeat-x;
224
+ }
225
+
226
+ .dialog > fieldset > h1 {
227
+ margin: 0 10px 0 10px;
228
+ padding: 0;
229
+ font-size: 20px;
230
+ font-weight: bold;
231
+ color: #FFFFFF;
232
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
233
+ text-align: center;
234
+ }
235
+
236
+ .dialog > fieldset > label {
237
+ position: absolute;
238
+ margin: 16px 0 0 6px;
239
+ font-size: 14px;
240
+ color: #999999;
241
+ }
242
+
243
+ input:not(input[type|=radio]):not(input[type|=checkbox]) {
244
+ box-sizing: border-box;
245
+ -webkit-box-sizing: border-box;
246
+ width: 100%;
247
+ margin: 8px 0 0 0;
248
+ padding: 6px 6px 6px 44px;
249
+ font-size: 16px;
250
+ font-weight: normal;
251
+ }
252
+
253
+ /************************************************************************************************/
254
+
255
+ body > .panel {
256
+ box-sizing: border-box;
257
+ -moz-box-sizing: border-box;
258
+ -webkit-box-sizing: border-box;
259
+ padding: 10px;
260
+ background: #c8c8c8 url(pinstripes.png);
261
+ }
262
+
263
+ .panel > fieldset {
264
+ position: relative;
265
+ margin: 0 0 20px 0;
266
+ padding: 0;
267
+ background: #FFFFFF;
268
+ -webkit-border-radius: 10px;
269
+ -moz-border-radius: 10px;
270
+ border: 1px solid #999999;
271
+ text-align: right;
272
+ font-size: 16px;
273
+ }
274
+
275
+ .row {
276
+ position: relative;
277
+ min-height: 42px;
278
+ border-bottom: 1px solid #999999;
279
+ -webkit-border-radius: 0;
280
+ text-align: right;
281
+ }
282
+
283
+ fieldset > .row:last-child {
284
+ border-bottom: none !important;
285
+ }
286
+
287
+ .row > input:not(input[type|=radio]):not(input[type|=checkbox]) {
288
+ box-sizing: border-box;
289
+ -moz-box-sizing: border-box;
290
+ -webkit-box-sizing: border-box;
291
+ margin: 0;
292
+ border: none;
293
+ padding: 12px 10px 0 110px;
294
+ height: 42px;
295
+ background: none;
296
+ }
297
+ .row > input[type|=radio], .row > input[type|=checkbox] {
298
+ margin: 7px 7px 0 0;
299
+ height: 25px;
300
+ width: 25px;
301
+ }
302
+
303
+ .row > label {
304
+ position: absolute;
305
+ margin: 0 0 0 14px;
306
+ line-height: 42px;
307
+ font-weight: bold;
308
+ }
309
+
310
+ .row > span {
311
+ position: absolute;
312
+ padding: 12px 10px 0 110px;
313
+ margin: 0;
314
+ }
315
+
316
+ .row > .toggle {
317
+ position: absolute;
318
+ top: 6px;
319
+ right: 6px;
320
+ width: 100px;
321
+ height: 28px;
322
+ }
323
+
324
+ .toggle {
325
+ border: 1px solid #888888;
326
+ -webkit-border-radius: 6px;
327
+ background: #FFFFFF url(toggle.png) repeat-x;
328
+ font-size: 19px;
329
+ font-weight: bold;
330
+ line-height: 30px;
331
+ }
332
+
333
+ .toggle[toggled="true"] {
334
+ border: 1px solid #143fae;
335
+ background: #194fdb url(toggleOn.png) repeat-x;
336
+ }
337
+
338
+ .toggleOn {
339
+ display: none;
340
+ position: absolute;
341
+ width: 60px;
342
+ text-align: center;
343
+ left: 0;
344
+ top: 0;
345
+ color: #FFFFFF;
346
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
347
+ }
348
+
349
+ .toggleOff {
350
+ position: absolute;
351
+ width: 60px;
352
+ text-align: center;
353
+ right: 0;
354
+ top: 0;
355
+ color: #666666;
356
+ }
357
+
358
+ .toggle[toggled="true"] > .toggleOn {
359
+ display: block;
360
+ }
361
+
362
+ .toggle[toggled="true"] > .toggleOff {
363
+ display: none;
364
+ }
365
+
366
+ .thumb {
367
+ position: absolute;
368
+ top: -1px;
369
+ left: -1px;
370
+ width: 40px;
371
+ height: 28px;
372
+ border: 1px solid #888888;
373
+ -webkit-border-radius: 6px;
374
+ background: #ffffff url(thumb.png) repeat-x;
375
+ }
376
+
377
+ .toggle[toggled="true"] > .thumb {
378
+ left: auto;
379
+ right: -1px;
380
+ }
381
+
382
+ .panel > h2 {
383
+ margin: 0 0 8px 14px;
384
+ font-size: inherit;
385
+ font-weight: bold;
386
+ color: #4d4d70;
387
+ text-shadow: rgba(255, 255, 255, 0.75) 2px 2px 0;
388
+ }
389
+
390
+ /************************************************************************************************/
391
+
392
+ #preloader {
393
+ display: none;
394
+ background-image: url(loading.gif), url(selection.png),
395
+ url(blueButton.png), url(listArrowSel.png), url(listGroup.png);
396
+ }