RubyApp 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (419) hide show
  1. data/.gitignore +3 -3
  2. data/Gemfile.lock +4 -50
  3. data/lib/ruby_app/application.rb +3 -0
  4. data/lib/ruby_app/configuration.yml +23 -14
  5. data/lib/ruby_app/element.rb +125 -36
  6. data/lib/ruby_app/elements.rb +28 -49
  7. data/lib/ruby_app/elements/mobile/button.rb +23 -0
  8. data/lib/ruby_app/elements/mobile/click.js.haml +9 -0
  9. data/lib/ruby_app/elements/mobile/click.rb +48 -0
  10. data/lib/ruby_app/elements/mobile/default/.cache/default_document.css +33 -0
  11. data/lib/ruby_app/elements/mobile/default/.cache/default_document.js +191 -0
  12. data/lib/ruby_app/elements/mobile/default/default_document.css.haml +2 -0
  13. data/lib/ruby_app/elements/mobile/default/default_document.js.haml +2 -0
  14. data/lib/ruby_app/elements/mobile/default/default_document.rb +30 -0
  15. data/lib/ruby_app/elements/mobile/default/default_page.css.haml +6 -0
  16. data/lib/ruby_app/elements/mobile/default/default_page.html.haml +12 -0
  17. data/lib/ruby_app/elements/mobile/default/default_page.js.haml +5 -0
  18. data/lib/ruby_app/elements/mobile/default/default_page.rb +39 -0
  19. data/lib/ruby_app/elements/mobile/default/features/authentications/default_page.css.haml +3 -0
  20. data/lib/ruby_app/elements/mobile/default/features/authentications/default_page.html.haml +20 -0
  21. data/lib/ruby_app/elements/mobile/default/features/authentications/default_page.js.haml +3 -0
  22. data/lib/ruby_app/elements/mobile/default/features/authentications/default_page.rb +61 -0
  23. data/lib/ruby_app/elements/mobile/default/features/buttons_page.css.haml +4 -0
  24. data/lib/ruby_app/elements/mobile/default/features/buttons_page.html.haml +11 -0
  25. data/lib/ruby_app/elements/mobile/default/features/buttons_page.js.haml +4 -0
  26. data/lib/ruby_app/elements/mobile/default/features/buttons_page.rb +41 -0
  27. data/lib/ruby_app/elements/mobile/default/features/default_page.css.haml +9 -0
  28. data/lib/ruby_app/elements/mobile/default/features/default_page.html.haml +21 -0
  29. data/lib/ruby_app/elements/mobile/default/features/default_page.js.haml +9 -0
  30. data/lib/ruby_app/elements/mobile/default/features/default_page.rb +59 -0
  31. data/lib/ruby_app/elements/mobile/default/features/dialogs_page.css.haml +6 -0
  32. data/lib/ruby_app/elements/mobile/default/features/dialogs_page.html.haml +15 -0
  33. data/lib/ruby_app/elements/mobile/default/features/dialogs_page.js.haml +6 -0
  34. data/lib/ruby_app/elements/mobile/default/features/dialogs_page.rb +59 -0
  35. data/lib/ruby_app/elements/mobile/default/features/inputs_page.css.haml +8 -0
  36. data/lib/ruby_app/elements/mobile/default/features/inputs_page.html.haml +23 -0
  37. data/lib/ruby_app/elements/mobile/default/features/inputs_page.js.haml +8 -0
  38. data/lib/ruby_app/elements/mobile/default/features/inputs_page.rb +65 -0
  39. data/lib/ruby_app/elements/mobile/default/features/lists_page.css.haml +5 -0
  40. data/lib/ruby_app/elements/mobile/default/features/lists_page.html.haml +10 -0
  41. data/lib/ruby_app/elements/mobile/default/features/lists_page.js.haml +5 -0
  42. data/lib/ruby_app/elements/mobile/default/features/lists_page.rb +59 -0
  43. data/lib/ruby_app/elements/mobile/default/features/navigated_page.css.haml +2 -0
  44. data/lib/ruby_app/elements/mobile/default/features/navigated_page.html.haml +9 -0
  45. data/lib/ruby_app/elements/mobile/default/features/navigated_page.js.haml +2 -0
  46. data/lib/ruby_app/elements/mobile/default/features/navigated_page.rb +34 -0
  47. data/lib/ruby_app/elements/mobile/default/features/trigger_page.css.haml +2 -0
  48. data/lib/ruby_app/elements/mobile/default/features/trigger_page.html.haml +9 -0
  49. data/lib/ruby_app/elements/mobile/default/features/trigger_page.js.haml +2 -0
  50. data/lib/ruby_app/elements/mobile/default/features/trigger_page.rb +45 -0
  51. data/lib/ruby_app/elements/mobile/dialog.css.haml +5 -0
  52. data/lib/ruby_app/elements/mobile/dialog.html.haml +2 -0
  53. data/lib/ruby_app/elements/mobile/dialog.js.haml +11 -0
  54. data/lib/ruby_app/elements/mobile/dialog.rb +34 -0
  55. data/lib/ruby_app/elements/mobile/dialogs/acknowledgement_dialog.html.haml +12 -0
  56. data/lib/ruby_app/elements/mobile/dialogs/acknowledgement_dialog.rb +38 -0
  57. data/lib/ruby_app/elements/mobile/dialogs/confirmation_dialog.html.haml +14 -0
  58. data/lib/ruby_app/elements/mobile/dialogs/confirmation_dialog.rb +42 -0
  59. data/lib/ruby_app/elements/mobile/dialogs/exception_dialog.html.haml +12 -0
  60. data/lib/ruby_app/elements/mobile/dialogs/exception_dialog.rb +43 -0
  61. data/lib/ruby_app/elements/mobile/dialogs/response_dialog.css.haml +12 -0
  62. data/lib/ruby_app/elements/mobile/dialogs/response_dialog.rb +42 -0
  63. data/lib/ruby_app/elements/mobile/document.html.haml +22 -0
  64. data/lib/ruby_app/elements/mobile/document.js.haml +131 -0
  65. data/lib/ruby_app/elements/mobile/document.rb +55 -0
  66. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/google_authentication_document.css +0 -0
  67. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/google_authentication_document.js +129 -0
  68. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/my_open_id_authentication_document.css +0 -0
  69. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/my_open_id_authentication_document.js +129 -0
  70. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/yahoo_authentication_document.css +0 -0
  71. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/.cache/yahoo_authentication_document.js +129 -0
  72. data/lib/ruby_app/elements/{pages/authentication/open_id/base/base_authentication_page.rb → mobile/documents/authentication/open_id/authentication_document.rb} +17 -13
  73. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/ax_authentication_document.rb +55 -0
  74. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/email_authentication_document.rb +39 -0
  75. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/google_authentication_document.rb +34 -0
  76. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/my_open_id_authentication_document.rb +34 -0
  77. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/sreg_authentication_document.rb +55 -0
  78. data/lib/ruby_app/elements/mobile/documents/authentication/open_id/yahoo_authentication_document.rb +34 -0
  79. data/lib/ruby_app/elements/mobile/documents/mail_document.html.haml +9 -0
  80. data/lib/ruby_app/elements/mobile/documents/mail_document.rb +26 -0
  81. data/lib/ruby_app/elements/mobile/documents/quit_document.html.haml +4 -0
  82. data/lib/ruby_app/elements/mobile/documents/quit_document.rb +28 -0
  83. data/lib/ruby_app/elements/mobile/input.html.haml +3 -0
  84. data/lib/ruby_app/elements/mobile/input.js.haml +9 -0
  85. data/lib/ruby_app/elements/mobile/input.rb +63 -0
  86. data/lib/ruby_app/elements/mobile/inputs/duration_input.rb +47 -0
  87. data/lib/ruby_app/elements/mobile/inputs/email_input.rb +27 -0
  88. data/lib/ruby_app/elements/{inputs → mobile/inputs}/multiline_input.html.haml +0 -0
  89. data/lib/ruby_app/elements/mobile/inputs/multiline_input.js.haml +9 -0
  90. data/lib/ruby_app/elements/mobile/inputs/multiline_input.rb +28 -0
  91. data/lib/ruby_app/elements/mobile/inputs/toggle_input.html.haml +7 -0
  92. data/lib/ruby_app/elements/mobile/inputs/toggle_input.js.haml +9 -0
  93. data/lib/ruby_app/elements/mobile/inputs/toggle_input.rb +42 -0
  94. data/lib/ruby_app/elements/{link.html.haml → mobile/link.html.haml} +2 -2
  95. data/lib/ruby_app/elements/{dialogs/yes_no_dialog.rb → mobile/link.rb} +4 -3
  96. data/lib/ruby_app/elements/mobile/list.html.haml +7 -0
  97. data/lib/ruby_app/elements/mobile/list.js.haml +9 -0
  98. data/lib/ruby_app/elements/{navigation/page_link.rb → mobile/list.rb} +21 -16
  99. data/lib/ruby_app/elements/mobile/lists/select.html.haml +7 -0
  100. data/lib/ruby_app/elements/mobile/lists/select.rb +43 -0
  101. data/lib/ruby_app/elements/mobile/navigation/back_button.html.haml +1 -0
  102. data/lib/ruby_app/elements/mobile/navigation/back_button.rb +26 -0
  103. data/lib/ruby_app/elements/mobile/navigation/hide_button.rb +33 -0
  104. data/lib/ruby_app/elements/mobile/navigation/navigation_button.rb +30 -0
  105. data/lib/ruby_app/elements/mobile/navigation/navigation_link.rb +33 -0
  106. data/lib/ruby_app/elements/mobile/navigation/navigation_list.rb +30 -0
  107. data/lib/ruby_app/elements/mobile/navigation/page_button.rb +36 -0
  108. data/lib/ruby_app/elements/mobile/page.css.haml +8 -0
  109. data/lib/ruby_app/elements/mobile/page.html.haml +2 -0
  110. data/lib/ruby_app/elements/mobile/page.js.haml +14 -0
  111. data/lib/ruby_app/elements/mobile/page.rb +88 -0
  112. data/lib/ruby_app/elements/mobile/pages/information/document_page.css.haml +4 -0
  113. data/lib/ruby_app/elements/mobile/pages/information/document_page.html.haml +29 -0
  114. data/lib/ruby_app/elements/mobile/pages/information/document_page.js.haml +4 -0
  115. data/lib/ruby_app/elements/mobile/pages/information/document_page.rb +43 -0
  116. data/lib/ruby_app/elements/mobile/pages/information/documents_list.html.haml +6 -0
  117. data/lib/ruby_app/elements/mobile/pages/information/documents_list.rb +31 -0
  118. data/lib/ruby_app/elements/mobile/pages/information/documents_page.css.haml +4 -0
  119. data/lib/ruby_app/elements/mobile/pages/information/documents_page.html.haml +10 -0
  120. data/lib/ruby_app/elements/mobile/pages/information/documents_page.js.haml +4 -0
  121. data/lib/ruby_app/elements/mobile/pages/information/documents_page.rb +43 -0
  122. data/lib/ruby_app/elements/mobile/pages/information/information_list.css.haml +10 -0
  123. data/lib/ruby_app/elements/mobile/pages/information/information_list.rb +30 -0
  124. data/lib/ruby_app/elements/mobile/pages/information/page_page.css.haml +2 -0
  125. data/lib/ruby_app/elements/mobile/pages/information/page_page.html.haml +22 -0
  126. data/lib/ruby_app/elements/mobile/pages/information/page_page.js.haml +2 -0
  127. data/lib/ruby_app/elements/mobile/pages/information/page_page.rb +36 -0
  128. data/lib/ruby_app/elements/mobile/pages/information/pages_list.html.haml +6 -0
  129. data/lib/ruby_app/elements/mobile/pages/information/pages_list.rb +31 -0
  130. data/lib/ruby_app/elements/mobile/pages/information/pages_page.css.haml +4 -0
  131. data/lib/ruby_app/elements/mobile/pages/information/pages_page.html.haml +10 -0
  132. data/lib/ruby_app/elements/mobile/pages/information/pages_page.js.haml +4 -0
  133. data/lib/ruby_app/elements/mobile/pages/information/pages_page.rb +43 -0
  134. data/lib/ruby_app/elements/mobile/pages/information/scripts_list.html.haml +6 -0
  135. data/lib/ruby_app/elements/mobile/pages/information/scripts_list.rb +31 -0
  136. data/lib/ruby_app/elements/mobile/pages/information/scripts_page.css.haml +3 -0
  137. data/lib/ruby_app/elements/mobile/pages/information/scripts_page.html.haml +10 -0
  138. data/lib/ruby_app/elements/mobile/pages/information/scripts_page.js.haml +3 -0
  139. data/lib/ruby_app/elements/mobile/pages/information/scripts_page.rb +40 -0
  140. data/lib/ruby_app/elements/mobile/pages/information/session_page.css.haml +4 -0
  141. data/lib/ruby_app/elements/mobile/pages/information/session_page.html.haml +44 -0
  142. data/lib/ruby_app/elements/mobile/pages/information/session_page.js.haml +4 -0
  143. data/lib/ruby_app/elements/mobile/pages/information/session_page.rb +43 -0
  144. data/lib/ruby_app/elements/mobile/pages/information/sessions_list.html.haml +6 -0
  145. data/lib/ruby_app/elements/mobile/pages/information/sessions_list.rb +31 -0
  146. data/lib/ruby_app/elements/mobile/pages/information/sessions_page.css.haml +4 -0
  147. data/lib/ruby_app/elements/mobile/pages/information/sessions_page.html.haml +10 -0
  148. data/lib/ruby_app/elements/mobile/pages/information/sessions_page.js.haml +4 -0
  149. data/lib/ruby_app/elements/mobile/pages/information/sessions_page.rb +41 -0
  150. data/lib/ruby_app/elements/mobile/pages/information_page.css.haml +5 -0
  151. data/lib/ruby_app/elements/mobile/pages/information_page.html.haml +55 -0
  152. data/lib/ruby_app/elements/mobile/pages/information_page.js.haml +5 -0
  153. data/lib/ruby_app/elements/mobile/pages/information_page.rb +45 -0
  154. data/lib/ruby_app/elements/mobile/platforms/ios/document.html.haml +32 -0
  155. data/lib/ruby_app/elements/mobile/platforms/ios/document.rb +33 -0
  156. data/lib/ruby_app/exception.rb +13 -0
  157. data/lib/ruby_app/exceptions.rb +3 -1
  158. data/lib/ruby_app/exceptions/assert_failed_exception.rb +16 -0
  159. data/lib/ruby_app/exceptions/element_invalid_exception.rb +16 -0
  160. data/lib/ruby_app/exceptions/session_invalid_exception.rb +3 -6
  161. data/lib/ruby_app/log.rb +13 -14
  162. data/lib/ruby_app/mixins.rb +4 -0
  163. data/lib/ruby_app/mixins/array_extension.rb +19 -0
  164. data/lib/ruby_app/mixins/class_extension.rb +19 -0
  165. data/lib/ruby_app/mixins/render_mixin.rb +16 -10
  166. data/lib/ruby_app/mixins/string_extension.rb +19 -0
  167. data/lib/ruby_app/mixins/template_mixin.haml +1 -0
  168. data/lib/ruby_app/mixins/template_mixin.rb +6 -2
  169. data/lib/ruby_app/rack/application.rb +1 -1
  170. data/lib/ruby_app/rack/duration.rb +1 -1
  171. data/lib/ruby_app/rack/memory.rb +1 -1
  172. data/lib/ruby_app/rack/request.rb +5 -2
  173. data/lib/ruby_app/rack/route.rb +40 -16
  174. data/lib/ruby_app/rack/session.rb +1 -1
  175. data/lib/ruby_app/request.rb +0 -4
  176. data/lib/ruby_app/resources/{themes/mobile/base/base_page/icon.png → elements/mobile/platforms/ios/apple-touch-icon.png} +0 -0
  177. data/lib/ruby_app/resources/{themes/mobile/base/base_page/icon.psd → elements/mobile/platforms/ios/apple-touch-icon.psd} +0 -0
  178. data/lib/ruby_app/resources/{themes/mobile/base/base_page/start.png → elements/mobile/platforms/ios/apple-touch-startup-image.png} +0 -0
  179. data/lib/ruby_app/resources/{themes/mobile/base/base_page/start.psd → elements/mobile/platforms/ios/apple-touch-startup-image.psd} +0 -0
  180. data/lib/ruby_app/resources/{themes/mobile/base/base_page → elements/mobile/platforms/ios}/manifest +0 -0
  181. data/lib/ruby_app/response.rb +11 -6
  182. data/lib/ruby_app/scripts/all_continuous.rb +2 -0
  183. data/lib/ruby_app/scripts/all_once.rb +6 -0
  184. data/lib/ruby_app/scripts/common/features.rb +2 -0
  185. data/lib/ruby_app/scripts/common/reset.rb +4 -0
  186. data/lib/ruby_app/scripts/default.rb +3 -0
  187. data/lib/ruby_app/scripts/elements/buttons.rb +14 -0
  188. data/lib/ruby_app/scripts/elements/dialogs.rb +77 -0
  189. data/lib/ruby_app/scripts/elements/inputs.rb +89 -0
  190. data/lib/ruby_app/scripts/elements/lists.rb +41 -0
  191. data/lib/ruby_app/scripts/elements/trigger.rb +18 -0
  192. data/lib/ruby_app/session.rb +101 -42
  193. data/lib/ruby_app/templates/application/configuration.yml +23 -0
  194. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/documents/default_document.css.haml +2 -0
  195. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/documents/default_document.js.haml +2 -0
  196. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/documents/default_document.rb +30 -0
  197. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.css.haml +2 -8
  198. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.html.haml +7 -2
  199. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.js.haml +3 -0
  200. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.rb +9 -1
  201. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/session.rb +2 -2
  202. data/lib/ruby_app/templates/application/scripts/default.rb +1 -0
  203. data/lib/ruby_app/templates/application/translations/en.yml +1 -0
  204. data/lib/ruby_app/translations/en.yml +22 -208
  205. data/lib/ruby_app/version.rb +1 -1
  206. data/rakefile +11 -26
  207. data/ruby_app.gemspec +3 -8
  208. metadata +187 -306
  209. data/features/default.feature +0 -6
  210. data/features/elements/button.feature +0 -9
  211. data/features/elements/dialog.feature +0 -63
  212. data/features/elements/input.feature +0 -60
  213. data/features/elements/link.feature +0 -9
  214. data/features/elements/list.feature +0 -19
  215. data/features/elements/markdown.feature +0 -9
  216. data/features/elements/page.feature +0 -23
  217. data/features/step_definitions/default_macros.rb +0 -13
  218. data/features/step_definitions/default_steps.rb +0 -54
  219. data/features/support/env.rb +0 -18
  220. data/lib/ruby_app/elements/base/base_dialog.css.haml +0 -9
  221. data/lib/ruby_app/elements/base/base_dialog.html.haml +0 -4
  222. data/lib/ruby_app/elements/base/base_dialog.rb +0 -64
  223. data/lib/ruby_app/elements/base/base_mail.html.haml +0 -15
  224. data/lib/ruby_app/elements/base/base_mail.rb +0 -36
  225. data/lib/ruby_app/elements/base/base_page.css.haml +0 -31
  226. data/lib/ruby_app/elements/base/base_page.html.haml +0 -44
  227. data/lib/ruby_app/elements/base/base_page.js.haml +0 -188
  228. data/lib/ruby_app/elements/base/base_page.rb +0 -84
  229. data/lib/ruby_app/elements/button.html.haml +0 -4
  230. data/lib/ruby_app/elements/button.rb +0 -18
  231. data/lib/ruby_app/elements/calendars/base/base_month.css.haml +0 -8
  232. data/lib/ruby_app/elements/calendars/base/base_month.html.haml +0 -42
  233. data/lib/ruby_app/elements/calendars/base/base_month.js.haml +0 -18
  234. data/lib/ruby_app/elements/calendars/base/base_month.rb +0 -102
  235. data/lib/ruby_app/elements/calendars/month.rb +0 -27
  236. data/lib/ruby_app/elements/click.js.haml +0 -10
  237. data/lib/ruby_app/elements/click.rb +0 -44
  238. data/lib/ruby_app/elements/dialog.rb +0 -23
  239. data/lib/ruby_app/elements/dialogs/acknowledgement_dialog.html.haml +0 -8
  240. data/lib/ruby_app/elements/dialogs/acknowledgement_dialog.rb +0 -26
  241. data/lib/ruby_app/elements/dialogs/base/base_close_dialog.css.haml +0 -11
  242. data/lib/ruby_app/elements/dialogs/base/base_close_dialog.html.haml +0 -6
  243. data/lib/ruby_app/elements/dialogs/base/base_close_dialog.js.haml +0 -2
  244. data/lib/ruby_app/elements/dialogs/base/base_close_dialog.rb +0 -33
  245. data/lib/ruby_app/elements/dialogs/base/base_ok_dialog.css.haml +0 -11
  246. data/lib/ruby_app/elements/dialogs/base/base_ok_dialog.html.haml +0 -6
  247. data/lib/ruby_app/elements/dialogs/base/base_ok_dialog.js.haml +0 -2
  248. data/lib/ruby_app/elements/dialogs/base/base_ok_dialog.rb +0 -33
  249. data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.css.haml +0 -15
  250. data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.html.haml +0 -8
  251. data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.js.haml +0 -2
  252. data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.rb +0 -40
  253. data/lib/ruby_app/elements/dialogs/blank_dialog.html.haml +0 -9
  254. data/lib/ruby_app/elements/dialogs/blank_dialog.rb +0 -22
  255. data/lib/ruby_app/elements/dialogs/calendars/month_dialog.css.haml +0 -19
  256. data/lib/ruby_app/elements/dialogs/calendars/month_dialog.html.haml +0 -18
  257. data/lib/ruby_app/elements/dialogs/calendars/month_dialog.js.haml +0 -3
  258. data/lib/ruby_app/elements/dialogs/calendars/month_dialog.rb +0 -50
  259. data/lib/ruby_app/elements/dialogs/close_dialog.rb +0 -22
  260. data/lib/ruby_app/elements/dialogs/confirmation_dialog.html.haml +0 -8
  261. data/lib/ruby_app/elements/dialogs/confirmation_dialog.rb +0 -26
  262. data/lib/ruby_app/elements/dialogs/exception_dialog.html.haml +0 -8
  263. data/lib/ruby_app/elements/dialogs/exception_dialog.rb +0 -33
  264. data/lib/ruby_app/elements/dialogs/message_dialog.html.haml +0 -8
  265. data/lib/ruby_app/elements/dialogs/message_dialog.rb +0 -26
  266. data/lib/ruby_app/elements/dialogs/ok_dialog.rb +0 -22
  267. data/lib/ruby_app/elements/exception_element.html.haml +0 -7
  268. data/lib/ruby_app/elements/exception_element.rb +0 -19
  269. data/lib/ruby_app/elements/input.html.haml +0 -3
  270. data/lib/ruby_app/elements/input.js.haml +0 -10
  271. data/lib/ruby_app/elements/input.rb +0 -56
  272. data/lib/ruby_app/elements/inputs/duration_input.rb +0 -43
  273. data/lib/ruby_app/elements/inputs/email_input.html.haml +0 -3
  274. data/lib/ruby_app/elements/inputs/email_input.js.haml +0 -10
  275. data/lib/ruby_app/elements/inputs/email_input.rb +0 -24
  276. data/lib/ruby_app/elements/inputs/multiline_input.js.haml +0 -10
  277. data/lib/ruby_app/elements/inputs/multiline_input.rb +0 -24
  278. data/lib/ruby_app/elements/inputs/toggle_input.html.haml +0 -3
  279. data/lib/ruby_app/elements/inputs/toggle_input.js.haml +0 -10
  280. data/lib/ruby_app/elements/inputs/toggle_input.rb +0 -31
  281. data/lib/ruby_app/elements/link.rb +0 -19
  282. data/lib/ruby_app/elements/list.html.haml +0 -9
  283. data/lib/ruby_app/elements/list.js.haml +0 -10
  284. data/lib/ruby_app/elements/list.rb +0 -55
  285. data/lib/ruby_app/elements/lists/select.html.haml +0 -14
  286. data/lib/ruby_app/elements/lists/select.js.haml +0 -10
  287. data/lib/ruby_app/elements/lists/select.rb +0 -38
  288. data/lib/ruby_app/elements/mail.rb +0 -18
  289. data/lib/ruby_app/elements/markdown.html.haml +0 -5
  290. data/lib/ruby_app/elements/markdown.js.haml +0 -10
  291. data/lib/ruby_app/elements/markdown.rb +0 -51
  292. data/lib/ruby_app/elements/navigation/back_button.html.haml +0 -2
  293. data/lib/ruby_app/elements/navigation/back_button.rb +0 -29
  294. data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.html.haml +0 -17
  295. data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.js.haml +0 -10
  296. data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb +0 -59
  297. data/lib/ruby_app/elements/navigation/breadcrumbs.rb +0 -22
  298. data/lib/ruby_app/elements/navigation/page_link.html.haml +0 -9
  299. data/lib/ruby_app/elements/navigation/page_link.js.haml +0 -10
  300. data/lib/ruby_app/elements/page.rb +0 -18
  301. data/lib/ruby_app/elements/pages/.cache/default_page.css +0 -37
  302. data/lib/ruby_app/elements/pages/.cache/default_page.js +0 -205
  303. data/lib/ruby_app/elements/pages/authentication/open_id/authentication_page.rb +0 -30
  304. data/lib/ruby_app/elements/pages/authentication/open_id/ax_authentication_page.rb +0 -51
  305. data/lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.html.haml +0 -3
  306. data/lib/ruby_app/elements/pages/authentication/open_id/email_authentication_page.rb +0 -35
  307. data/lib/ruby_app/elements/pages/authentication/open_id/google_authentication_page.rb +0 -30
  308. data/lib/ruby_app/elements/pages/authentication/open_id/my_open_id_authentication_page.rb +0 -30
  309. data/lib/ruby_app/elements/pages/authentication/open_id/sreg_authentication_page.rb +0 -51
  310. data/lib/ruby_app/elements/pages/authentication/open_id/yahoo_authentication_page.rb +0 -30
  311. data/lib/ruby_app/elements/pages/base/base_blank_page.css.haml +0 -18
  312. data/lib/ruby_app/elements/pages/base/base_blank_page.html.haml +0 -11
  313. data/lib/ruby_app/elements/pages/base/base_blank_page.js.haml +0 -3
  314. data/lib/ruby_app/elements/pages/base/base_blank_page.rb +0 -35
  315. data/lib/ruby_app/elements/pages/blank_page.rb +0 -22
  316. data/lib/ruby_app/elements/pages/default_page.css.haml +0 -2
  317. data/lib/ruby_app/elements/pages/default_page.html.haml +0 -6
  318. data/lib/ruby_app/elements/pages/default_page.js.haml +0 -2
  319. data/lib/ruby_app/elements/pages/default_page.rb +0 -39
  320. data/lib/ruby_app/elements/pages/quit_page.html.haml +0 -7
  321. data/lib/ruby_app/elements/pages/quit_page.rb +0 -23
  322. data/lib/ruby_app/elements/pages/settings_page.css.haml +0 -2
  323. data/lib/ruby_app/elements/pages/settings_page.html.haml +0 -5
  324. data/lib/ruby_app/elements/pages/settings_page.js.haml +0 -2
  325. data/lib/ruby_app/elements/pages/settings_page.rb +0 -38
  326. data/lib/ruby_app/elements/pages/test_pages.rb +0 -9
  327. data/lib/ruby_app/elements/pages/test_pages/.cache/button_test_page.css +0 -37
  328. data/lib/ruby_app/elements/pages/test_pages/.cache/button_test_page.js +0 -212
  329. data/lib/ruby_app/elements/pages/test_pages/.cache/default_test_page.css +0 -47
  330. data/lib/ruby_app/elements/pages/test_pages/.cache/default_test_page.js +0 -212
  331. data/lib/ruby_app/elements/pages/test_pages/.cache/dialog_test_page.css +0 -75
  332. data/lib/ruby_app/elements/pages/test_pages/.cache/dialog_test_page.js +0 -230
  333. data/lib/ruby_app/elements/pages/test_pages/.cache/input_test_page.css +0 -47
  334. data/lib/ruby_app/elements/pages/test_pages/.cache/input_test_page.js +0 -241
  335. data/lib/ruby_app/elements/pages/test_pages/.cache/link_test_page.css +0 -37
  336. data/lib/ruby_app/elements/pages/test_pages/.cache/link_test_page.js +0 -212
  337. data/lib/ruby_app/elements/pages/test_pages/.cache/linked_test_page.css +0 -37
  338. data/lib/ruby_app/elements/pages/test_pages/.cache/linked_test_page.js +0 -205
  339. data/lib/ruby_app/elements/pages/test_pages/.cache/list_test_page.css +0 -47
  340. data/lib/ruby_app/elements/pages/test_pages/.cache/list_test_page.js +0 -226
  341. data/lib/ruby_app/elements/pages/test_pages/.cache/markdown_test_page.css +0 -37
  342. data/lib/ruby_app/elements/pages/test_pages/.cache/markdown_test_page.js +0 -205
  343. data/lib/ruby_app/elements/pages/test_pages/.cache/test_page.css +0 -47
  344. data/lib/ruby_app/elements/pages/test_pages/.cache/test_page.js +0 -220
  345. data/lib/ruby_app/elements/pages/test_pages/button_test_page.css.haml +0 -3
  346. data/lib/ruby_app/elements/pages/test_pages/button_test_page.html.haml +0 -7
  347. data/lib/ruby_app/elements/pages/test_pages/button_test_page.js.haml +0 -3
  348. data/lib/ruby_app/elements/pages/test_pages/button_test_page.rb +0 -37
  349. data/lib/ruby_app/elements/pages/test_pages/default_test_page.css.haml +0 -3
  350. data/lib/ruby_app/elements/pages/test_pages/default_test_page.html.haml +0 -5
  351. data/lib/ruby_app/elements/pages/test_pages/default_test_page.js.haml +0 -3
  352. data/lib/ruby_app/elements/pages/test_pages/default_test_page.rb +0 -41
  353. data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.css.haml +0 -7
  354. data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.html.haml +0 -5
  355. data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.js.haml +0 -7
  356. data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.rb +0 -62
  357. data/lib/ruby_app/elements/pages/test_pages/input_test_page.css.haml +0 -8
  358. data/lib/ruby_app/elements/pages/test_pages/input_test_page.html.haml +0 -24
  359. data/lib/ruby_app/elements/pages/test_pages/input_test_page.js.haml +0 -8
  360. data/lib/ruby_app/elements/pages/test_pages/input_test_page.rb +0 -60
  361. data/lib/ruby_app/elements/pages/test_pages/link_test_page.css.haml +0 -3
  362. data/lib/ruby_app/elements/pages/test_pages/link_test_page.html.haml +0 -7
  363. data/lib/ruby_app/elements/pages/test_pages/link_test_page.js.haml +0 -3
  364. data/lib/ruby_app/elements/pages/test_pages/link_test_page.rb +0 -37
  365. data/lib/ruby_app/elements/pages/test_pages/linked_test_page.css.haml +0 -2
  366. data/lib/ruby_app/elements/pages/test_pages/linked_test_page.html.haml +0 -5
  367. data/lib/ruby_app/elements/pages/test_pages/linked_test_page.js.haml +0 -2
  368. data/lib/ruby_app/elements/pages/test_pages/linked_test_page.rb +0 -29
  369. data/lib/ruby_app/elements/pages/test_pages/list_test_page.css.haml +0 -5
  370. data/lib/ruby_app/elements/pages/test_pages/list_test_page.html.haml +0 -7
  371. data/lib/ruby_app/elements/pages/test_pages/list_test_page.js.haml +0 -5
  372. data/lib/ruby_app/elements/pages/test_pages/list_test_page.rb +0 -52
  373. data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.css.haml +0 -2
  374. data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.html.haml +0 -5
  375. data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.js.haml +0 -2
  376. data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.rb +0 -37
  377. data/lib/ruby_app/elements/pages/test_pages/test_page.css.haml +0 -5
  378. data/lib/ruby_app/elements/pages/test_pages/test_page.html.haml +0 -17
  379. data/lib/ruby_app/elements/pages/test_pages/test_page.js.haml +0 -5
  380. data/lib/ruby_app/elements/pages/test_pages/test_page.rb +0 -46
  381. data/lib/ruby_app/exceptions/base/base_exception.rb +0 -21
  382. data/lib/ruby_app/resources/elements/base/base_page.gif +0 -0
  383. data/lib/ruby_app/resources/scripts/jquery-1.7.1.min.js +0 -4
  384. data/lib/ruby_app/resources/themes/mobile/inputs/toggle.png +0 -0
  385. data/lib/ruby_app/resources/themes/mobile/lists/select.png +0 -0
  386. data/lib/ruby_app/resources/themes/mobile/lists/select.psd +0 -0
  387. data/lib/ruby_app/resources/themes/mobile/page.gif +0 -0
  388. data/lib/ruby_app/templates/application/spec/application_spec.rb +0 -17
  389. data/lib/ruby_app/templates/application/spec/request_spec.rb +0 -18
  390. data/lib/ruby_app/templates/application/spec/spec_helper.rb +0 -1
  391. data/lib/ruby_app/templates/application/spec/support/shared.rb +0 -43
  392. data/lib/ruby_app/themes/mobile.rb +0 -27
  393. data/lib/ruby_app/themes/mobile/base/base_page.html.haml +0 -52
  394. data/lib/ruby_app/themes/mobile/calendars/month.css.haml +0 -21
  395. data/lib/ruby_app/themes/mobile/colors.sass +0 -31
  396. data/lib/ruby_app/themes/mobile/dialog.css.haml +0 -17
  397. data/lib/ruby_app/themes/mobile/dialogs/blank_dialog.css.haml +0 -12
  398. data/lib/ruby_app/themes/mobile/dialogs/close_dialog.css.haml +0 -12
  399. data/lib/ruby_app/themes/mobile/dialogs/yes_no_dialog.css.haml +0 -14
  400. data/lib/ruby_app/themes/mobile/input.css.haml +0 -10
  401. data/lib/ruby_app/themes/mobile/inputs/toggle_input.css.haml +0 -16
  402. data/lib/ruby_app/themes/mobile/list.css.haml +0 -25
  403. data/lib/ruby_app/themes/mobile/lists/select.css.haml +0 -27
  404. data/lib/ruby_app/themes/mobile/mail.css.haml +0 -22
  405. data/lib/ruby_app/themes/mobile/markdown.css.haml +0 -11
  406. data/lib/ruby_app/themes/mobile/navigation/base/base_breadcrumbs.html.haml +0 -7
  407. data/lib/ruby_app/themes/mobile/page.css.haml +0 -30
  408. data/lib/ruby_app/themes/mobile/pages/authentication/open_id/authentication_page.css.haml +0 -13
  409. data/lib/ruby_app/themes/mobile/pages/base/base_blank_page.css.haml +0 -18
  410. data/lib/ruby_app/themes/mobile/pages/base/base_blank_page.html.haml +0 -13
  411. data/lib/ruby_app/themes/mobile/pages/blank_page.css.haml +0 -19
  412. data/spec/application_spec.rb +0 -17
  413. data/spec/elements/base_element.html.haml +0 -5
  414. data/spec/elements/container_element.html.haml +0 -6
  415. data/spec/elements/derived_element.html.haml +0 -5
  416. data/spec/elements/element_spec.rb +0 -101
  417. data/spec/request_spec.rb +0 -18
  418. data/spec/spec_helper.rb +0 -8
  419. data/spec/support/shared.rb +0 -37
@@ -0,0 +1,42 @@
1
+ module RubyApp
2
+
3
+ module Elements
4
+
5
+ module Mobile
6
+
7
+ module Dialogs
8
+ require 'ruby_app/elements/mobile/dialog'
9
+ require 'ruby_app/elements/mobile/navigation/hide_button'
10
+
11
+ class ResponseDialog < RubyApp::Elements::Mobile::Dialog
12
+
13
+ class CloseLink < RubyApp::Elements::Mobile::Navigation::HideButton
14
+
15
+ template_path(:all, File.dirname(__FILE__))
16
+
17
+ def initialize
18
+ super
19
+ self.attributes.merge!('data-inline' => true)
20
+ self.options.merge!(:transition => 'pop')
21
+ end
22
+
23
+ end
24
+
25
+ template_path(:all, File.dirname(__FILE__))
26
+
27
+ attr_reader :response
28
+
29
+ def initialize
30
+ super
31
+ @response = nil
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,22 @@
1
+ !!! 5
2
+ /
3
+ #{__FILE__}
4
+ %html{attributes}
5
+ %head
6
+ %meta{:name => :viewport,
7
+ :content => 'width=device-width, initial-scale=1'}
8
+ %link{:rel => 'stylesheet',
9
+ :href => 'http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css'}
10
+ %link{:rel => 'stylesheet',
11
+ :href => "/#{RubyApp::Language.locale.code}/document.css"}
12
+ %script{:src => 'http://code.jquery.com/jquery-1.7.1.js'}
13
+ %script{:src => 'http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.js'}
14
+ %script{:src => "/#{RubyApp::Language.locale.code}/document.js"}
15
+ %meta{:name => :session, :content => RubyApp::Session.session_id}
16
+ - RubyApp::Request.query.each do |name, value|
17
+ %meta{:name => name, :content => value}
18
+ %meta{:name => :locale, :content => RubyApp::Language.locale.code}
19
+ %meta{:name => :event_error_message, :content => RubyApp::Elements::Mobile::Document.translate.event_error_message}
20
+ %body
21
+ - self.pages.reverse.each do |page|
22
+ = page.render(:html)
@@ -0,0 +1,131 @@
1
+ :plain
2
+ // #{__FILE__}
3
+ var RubyApp = new function() {
4
+ this.queueEvent = function(event) {
5
+ event.now = new Date().toString();
6
+ event.session = RubyApp.getData('session', null);
7
+ $(window).queue( function() {
8
+ RubyApp.log('RubyApp.queueEvent(...) DEQUEUE event.class=' + event._class);
9
+ request = $.ajax({type:'POST', url:location.href, data:event});
10
+ request
11
+ .success( function(event) {
12
+ $.each(event.statements, function(index, statement) {
13
+ RubyApp.log('RubyApp.queueEvent(...) EVAL statement="' + statement + '"')
14
+ eval(statement);
15
+ } );
16
+ } )
17
+ .error( function(request, message, exception) {
18
+ RubyApp.log('RubyApp.queueEvent(...) ERROR event.class=' + event._class +' message=' + message);
19
+ RubyApp.confirmRefreshBrowser(RubyApp.getData('event_error_message', null));
20
+ } )
21
+ .complete( function() {
22
+ $(window).dequeue();
23
+ } )
24
+ } );
25
+ },
26
+ this.showPage = function(id, options) {
27
+ $(window).clearQueue();
28
+ if ($('#' + id).length)
29
+ $.mobile.changePage($('#' + id), options);
30
+ else
31
+ {
32
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
33
+ request
34
+ .success( function(content) {
35
+ $('body').prepend(content);
36
+ $.mobile.changePage($('#' + id), options);
37
+ } );
38
+ }
39
+ },
40
+ this.removePage = function(id) {
41
+ $(document).on('pagehide.removePage', '#' + id, function(event) {
42
+ $(document).off('pagehide.removePage', '#' + id);
43
+ $(this).remove();
44
+ });
45
+ },
46
+ this.updateElement = function(id) {
47
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
48
+ request
49
+ .success( function(content) {
50
+ $('#' + id).replaceWith(content);
51
+ $('#' + id).parent().trigger('create');
52
+ } );
53
+ },
54
+ this.createTrigger = function(id, interval) {
55
+ RubyApp.destroyTrigger(id);
56
+ $('#' + id)[0]._trigger = window.setInterval( function() {
57
+ RubyApp.queueEvent({_class:'RubyApp::Element::TriggeredEvent', source:id});
58
+ }, interval );
59
+ },
60
+ this.destroyTrigger = function(id) {
61
+ if ($('#' + id)[0]._trigger != undefined) {
62
+ window.clearInterval($('#' + id)[0]._trigger);
63
+ $('#' + id)[0]._trigger = undefined;
64
+ }
65
+ },
66
+ this.refreshBrowser = function() {
67
+ $(window).clearQueue();
68
+ location.assign(location.href);
69
+ },
70
+ this.confirmRefreshBrowser = function(message) {
71
+ if (confirm(message))
72
+ RubyApp.refreshBrowser();
73
+ },
74
+ this.go = function(url) {
75
+ location.assign(url);
76
+ },
77
+ this.addClass = function(selector, _class) {
78
+ $(selector).addClass(_class);
79
+ },
80
+ this.removeClass = function(selector, _class) {
81
+ $(selector).removeClass(_class);
82
+ },
83
+ this.updateText = function(selector, value) {
84
+ $(selector).text(value);
85
+ },
86
+ this.updateValue = function(selector, value) {
87
+ $(selector).val(value);
88
+ },
89
+ this.updateValueFor = function(selector, value) {
90
+ var _for = $(selector).attr('for');
91
+ RubyApp.updateValue('#' + _for, value);
92
+ RubyApp.change('#' + _for, value);
93
+ },
94
+ this.setCookie = function(name, value, expires) {
95
+ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString();
96
+ },
97
+ this.tap = function(selector) {
98
+ $(selector).tap();
99
+ },
100
+ this.change = function(selector) {
101
+ $(selector).change();
102
+ },
103
+ this.assertExists = function(selector) {
104
+ RubyApp.assert('selector=' + selector, $(selector).length > 0);
105
+ },
106
+ this.assertExistsFor = function(selector) {
107
+ var _for = $(selector).attr('for');
108
+ RubyApp.assert('selector=' + selector + ', for=' + _for, $('#' + _for).length > 0);
109
+ },
110
+ this.assertExistsValueFor = function(selector, value) {
111
+ var _for = $(selector).attr('for');
112
+ var _value = $('#' + _for).val();
113
+ RubyApp.assert('selector=' + selector + ', for=' + _for + ', value=' + value, _value == value);
114
+ },
115
+ this.assert = function(name, value) {
116
+ RubyApp.queueEvent({_class:'RubyApp::Element::AssertedEvent', source:$('html').attr('id'), name:name, value:value});
117
+ },
118
+ this.getData = function(name, _default) {
119
+ var value = $('meta[name="' + name + '"]').attr('content');
120
+ return value == undefined ? _default : value;
121
+ },
122
+ this.log = function(message) {
123
+ console.log(message);
124
+ }
125
+ };
126
+
127
+ $(window).load(function() {
128
+ RubyApp.queueEvent({_class:'RubyApp::Elements::Mobile::Document::LoadedEvent', source:$('html').attr('id')});
129
+ });
130
+
131
+ = yield
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'ruby-event'
5
+
6
+ module RubyApp
7
+
8
+ module Elements
9
+
10
+ module Mobile
11
+ require 'ruby_app/element'
12
+
13
+ class Document < RubyApp::Element
14
+
15
+ class LoadedEvent < RubyApp::Element::Event
16
+
17
+ def initialize(data)
18
+ super(data)
19
+ end
20
+
21
+ end
22
+
23
+ template_path(:all, File.dirname(__FILE__))
24
+
25
+ attr_reader :pages
26
+
27
+ event :loaded
28
+
29
+ def initialize
30
+ super
31
+ @pages = []
32
+ end
33
+
34
+ def page
35
+ return @pages.last
36
+ end
37
+
38
+ protected
39
+
40
+ def on_event(event)
41
+ on_loaded(event) if event.is_a?(RubyApp::Elements::Mobile::Document::LoadedEvent)
42
+ super(event)
43
+ end
44
+
45
+ def on_loaded(event)
46
+ loaded(event)
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ end
54
+
55
+ end
@@ -0,0 +1,129 @@
1
+ // /Users/frank.ficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/document.js.haml
2
+ var RubyApp = new function() {
3
+ this.queueEvent = function(event) {
4
+ event.now = new Date().toString();
5
+ event.session = RubyApp.getData('session', null);
6
+ $(window).queue( function() {
7
+ RubyApp.log('RubyApp.queueEvent(...) DEQUEUE event.class=' + event._class);
8
+ request = $.ajax({type:'POST', url:location.href, data:event});
9
+ request
10
+ .success( function(event) {
11
+ $.each(event.statements, function(index, statement) {
12
+ RubyApp.log('RubyApp.queueEvent(...) EVAL statement="' + statement + '"')
13
+ eval(statement);
14
+ } );
15
+ } )
16
+ .error( function(request, message, exception) {
17
+ RubyApp.log('RubyApp.queueEvent(...) ERROR event.class=' + event._class +' message=' + message);
18
+ RubyApp.confirmRefreshBrowser(RubyApp.getData('event_error_message', null));
19
+ } )
20
+ .complete( function() {
21
+ $(window).dequeue();
22
+ } )
23
+ } );
24
+ },
25
+ this.showPage = function(id, options) {
26
+ $(window).clearQueue();
27
+ if ($('#' + id).length)
28
+ $.mobile.changePage($('#' + id), options);
29
+ else
30
+ {
31
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
32
+ request
33
+ .success( function(content) {
34
+ $('body').prepend(content);
35
+ $.mobile.changePage($('#' + id), options);
36
+ } );
37
+ }
38
+ },
39
+ this.removePage = function(id) {
40
+ $(document).on('pagehide.removePage', '#' + id, function(event) {
41
+ $(document).off('pagehide.removePage', '#' + id);
42
+ $(this).remove();
43
+ });
44
+ },
45
+ this.updateElement = function(id) {
46
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
47
+ request
48
+ .success( function(content) {
49
+ $('#' + id).replaceWith(content);
50
+ $('#' + id).parent().trigger('create');
51
+ } );
52
+ },
53
+ this.createTrigger = function(id, interval) {
54
+ RubyApp.destroyTrigger(id);
55
+ $('#' + id)[0]._trigger = window.setInterval( function() {
56
+ RubyApp.queueEvent({_class:'RubyApp::Element::TriggeredEvent', source:id});
57
+ }, interval );
58
+ },
59
+ this.destroyTrigger = function(id) {
60
+ if ($('#' + id)[0]._trigger != undefined) {
61
+ window.clearInterval($('#' + id)[0]._trigger);
62
+ $('#' + id)[0]._trigger = undefined;
63
+ }
64
+ },
65
+ this.refreshBrowser = function() {
66
+ $(window).clearQueue();
67
+ location.assign(location.href);
68
+ },
69
+ this.confirmRefreshBrowser = function(message) {
70
+ if (confirm(message))
71
+ RubyApp.refreshBrowser();
72
+ },
73
+ this.go = function(url) {
74
+ location.assign(url);
75
+ },
76
+ this.addClass = function(selector, _class) {
77
+ $(selector).addClass(_class);
78
+ },
79
+ this.removeClass = function(selector, _class) {
80
+ $(selector).removeClass(_class);
81
+ },
82
+ this.updateText = function(selector, value) {
83
+ $(selector).text(value);
84
+ },
85
+ this.updateValue = function(selector, value) {
86
+ $(selector).val(value);
87
+ },
88
+ this.updateValueFor = function(selector, value) {
89
+ var _for = $(selector).attr('for');
90
+ RubyApp.updateValue('#' + _for, value);
91
+ RubyApp.change('#' + _for, value);
92
+ },
93
+ this.setCookie = function(name, value, expires) {
94
+ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString();
95
+ },
96
+ this.tap = function(selector) {
97
+ $(selector).tap();
98
+ },
99
+ this.change = function(selector) {
100
+ $(selector).change();
101
+ },
102
+ this.assertExists = function(selector) {
103
+ RubyApp.assert('selector=' + selector, $(selector).length > 0);
104
+ },
105
+ this.assertExistsFor = function(selector) {
106
+ var _for = $(selector).attr('for');
107
+ RubyApp.assert('selector=' + selector + ', for=' + _for, $('#' + _for).length > 0);
108
+ },
109
+ this.assertExistsValueFor = function(selector, value) {
110
+ var _for = $(selector).attr('for');
111
+ var _value = $('#' + _for).val();
112
+ RubyApp.assert('selector=' + selector + ', for=' + _for + ', value=' + value, _value == value);
113
+ },
114
+ this.assert = function(name, value) {
115
+ RubyApp.queueEvent({_class:'RubyApp::Element::AssertedEvent', source:$('html').attr('id'), name:name, value:value});
116
+ },
117
+ this.getData = function(name, _default) {
118
+ var value = $('meta[name="' + name + '"]').attr('content');
119
+ return value == undefined ? _default : value;
120
+ },
121
+ this.log = function(message) {
122
+ console.log(message);
123
+ }
124
+ };
125
+
126
+ $(window).load(function() {
127
+ RubyApp.queueEvent({_class:'RubyApp::Elements::Mobile::Document::LoadedEvent', source:$('html').attr('id')});
128
+ });
129
+
@@ -0,0 +1,129 @@
1
+ // /Users/frank.ficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/document.js.haml
2
+ var RubyApp = new function() {
3
+ this.queueEvent = function(event) {
4
+ event.now = new Date().toString();
5
+ event.session = RubyApp.getData('session', null);
6
+ $(window).queue( function() {
7
+ RubyApp.log('RubyApp.queueEvent(...) DEQUEUE event.class=' + event._class);
8
+ request = $.ajax({type:'POST', url:location.href, data:event});
9
+ request
10
+ .success( function(event) {
11
+ $.each(event.statements, function(index, statement) {
12
+ RubyApp.log('RubyApp.queueEvent(...) EVAL statement="' + statement + '"')
13
+ eval(statement);
14
+ } );
15
+ } )
16
+ .error( function(request, message, exception) {
17
+ RubyApp.log('RubyApp.queueEvent(...) ERROR event.class=' + event._class +' message=' + message);
18
+ RubyApp.confirmRefreshBrowser(RubyApp.getData('event_error_message', null));
19
+ } )
20
+ .complete( function() {
21
+ $(window).dequeue();
22
+ } )
23
+ } );
24
+ },
25
+ this.showPage = function(id, options) {
26
+ $(window).clearQueue();
27
+ if ($('#' + id).length)
28
+ $.mobile.changePage($('#' + id), options);
29
+ else
30
+ {
31
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
32
+ request
33
+ .success( function(content) {
34
+ $('body').prepend(content);
35
+ $.mobile.changePage($('#' + id), options);
36
+ } );
37
+ }
38
+ },
39
+ this.removePage = function(id) {
40
+ $(document).on('pagehide.removePage', '#' + id, function(event) {
41
+ $(document).off('pagehide.removePage', '#' + id);
42
+ $(this).remove();
43
+ });
44
+ },
45
+ this.updateElement = function(id) {
46
+ request = $.ajax({type:'GET', url:'/' + RubyApp.getData('locale', 'en') + '/elements/' + id + '.html'});
47
+ request
48
+ .success( function(content) {
49
+ $('#' + id).replaceWith(content);
50
+ $('#' + id).parent().trigger('create');
51
+ } );
52
+ },
53
+ this.createTrigger = function(id, interval) {
54
+ RubyApp.destroyTrigger(id);
55
+ $('#' + id)[0]._trigger = window.setInterval( function() {
56
+ RubyApp.queueEvent({_class:'RubyApp::Element::TriggeredEvent', source:id});
57
+ }, interval );
58
+ },
59
+ this.destroyTrigger = function(id) {
60
+ if ($('#' + id)[0]._trigger != undefined) {
61
+ window.clearInterval($('#' + id)[0]._trigger);
62
+ $('#' + id)[0]._trigger = undefined;
63
+ }
64
+ },
65
+ this.refreshBrowser = function() {
66
+ $(window).clearQueue();
67
+ location.assign(location.href);
68
+ },
69
+ this.confirmRefreshBrowser = function(message) {
70
+ if (confirm(message))
71
+ RubyApp.refreshBrowser();
72
+ },
73
+ this.go = function(url) {
74
+ location.assign(url);
75
+ },
76
+ this.addClass = function(selector, _class) {
77
+ $(selector).addClass(_class);
78
+ },
79
+ this.removeClass = function(selector, _class) {
80
+ $(selector).removeClass(_class);
81
+ },
82
+ this.updateText = function(selector, value) {
83
+ $(selector).text(value);
84
+ },
85
+ this.updateValue = function(selector, value) {
86
+ $(selector).val(value);
87
+ },
88
+ this.updateValueFor = function(selector, value) {
89
+ var _for = $(selector).attr('for');
90
+ RubyApp.updateValue('#' + _for, value);
91
+ RubyApp.change('#' + _for, value);
92
+ },
93
+ this.setCookie = function(name, value, expires) {
94
+ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString();
95
+ },
96
+ this.tap = function(selector) {
97
+ $(selector).tap();
98
+ },
99
+ this.change = function(selector) {
100
+ $(selector).change();
101
+ },
102
+ this.assertExists = function(selector) {
103
+ RubyApp.assert('selector=' + selector, $(selector).length > 0);
104
+ },
105
+ this.assertExistsFor = function(selector) {
106
+ var _for = $(selector).attr('for');
107
+ RubyApp.assert('selector=' + selector + ', for=' + _for, $('#' + _for).length > 0);
108
+ },
109
+ this.assertExistsValueFor = function(selector, value) {
110
+ var _for = $(selector).attr('for');
111
+ var _value = $('#' + _for).val();
112
+ RubyApp.assert('selector=' + selector + ', for=' + _for + ', value=' + value, _value == value);
113
+ },
114
+ this.assert = function(name, value) {
115
+ RubyApp.queueEvent({_class:'RubyApp::Element::AssertedEvent', source:$('html').attr('id'), name:name, value:value});
116
+ },
117
+ this.getData = function(name, _default) {
118
+ var value = $('meta[name="' + name + '"]').attr('content');
119
+ return value == undefined ? _default : value;
120
+ },
121
+ this.log = function(message) {
122
+ console.log(message);
123
+ }
124
+ };
125
+
126
+ $(window).load(function() {
127
+ RubyApp.queueEvent({_class:'RubyApp::Elements::Mobile::Document::LoadedEvent', source:$('html').attr('id')});
128
+ });
129
+