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,2 @@
1
+ load_script! 'all_once'
2
+ load_script! 'common/reset'
@@ -0,0 +1,6 @@
1
+ load_script! 'default'
2
+ load_script! 'elements/buttons'
3
+ load_script! 'elements/dialogs'
4
+ load_script! 'elements/inputs'
5
+ load_script! 'elements/lists'
6
+ load_script! 'elements/trigger'
@@ -0,0 +1,2 @@
1
+ add_step! (RubyApp::Elements::Mobile::Document::LoadedEvent) { |event| event.assert_exists_link('Features') }
2
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.tap_link('Features') }
@@ -0,0 +1,4 @@
1
+ add_step! RubyApp::Elements::Mobile::Document::LoadedEvent do |event|
2
+ self.reset_script!
3
+ event.refresh_browser
4
+ end
@@ -0,0 +1,3 @@
1
+ add_step! (RubyApp::Elements::Mobile::Document::LoadedEvent) { |event| event.assert_exists_link('Features') }
2
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('Information') }
3
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.refresh_browser }
@@ -0,0 +1,14 @@
1
+ load_script! 'common/features'
2
+
3
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_link('Buttons') }
4
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.tap_link('Buttons') }
5
+
6
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_link('Button') }
7
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.tap_link('Button') }
8
+
9
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You are on this page.') }
10
+
11
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.tap_link('Back') }
12
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.tap_link('Back') }
13
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.tap_link('Back') }
14
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.refresh_browser }
@@ -0,0 +1,77 @@
1
+ load_script! 'common/features'
2
+
3
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
4
+ event.assert_exists_link('Dialogs')
5
+ event.tap_link('Dialogs')
6
+ end
7
+
8
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
9
+ event.assert_exists_link('Acknowledgement')
10
+ event.tap_link('Acknowledgement')
11
+ end
12
+
13
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
14
+ event.assert_exists_text('Acknowledge this.')
15
+ event.assert_exists_link('OK')
16
+ event.tap_link('OK')
17
+ end
18
+
19
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
20
+ event.assert_exists_link('Acknowledgement')
21
+ event.assert_exists_link('Confirmation')
22
+ event.tap_link('Confirmation')
23
+ end
24
+
25
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
26
+ event.assert_exists_text('Do you confirm this?')
27
+ event.assert_exists_link('Yes')
28
+ event.assert_exists_link('No')
29
+ event.tap_link('Yes')
30
+ end
31
+
32
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
33
+ event.assert_exists_text('You responded true.')
34
+ event.assert_exists_link('OK')
35
+ event.tap_link('OK')
36
+ end
37
+
38
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
39
+ event.assert_exists_link('Confirmation')
40
+ event.tap_link('Confirmation')
41
+ end
42
+
43
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
44
+ event.assert_exists_text('Do you confirm this?')
45
+ event.tap_link('No')
46
+ end
47
+
48
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
49
+ event.assert_exists_text('You responded false.')
50
+ event.assert_exists_link('OK')
51
+ event.tap_link('OK')
52
+ end
53
+
54
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
55
+ event.assert_exists_link('Confirmation')
56
+ event.assert_exists_link('Exception')
57
+ event.tap_link('Exception')
58
+ end
59
+
60
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
61
+ event.assert_exists_text('The assertion false failed')
62
+ event.assert_exists_link('Close')
63
+ event.tap_link('Close')
64
+ end
65
+
66
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
67
+ event.assert_exists_link('Exception')
68
+ event.tap_link('Back')
69
+ end
70
+
71
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
72
+ event.tap_link('Back')
73
+ end
74
+
75
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
76
+ event.refresh_browser
77
+ end
@@ -0,0 +1,89 @@
1
+ load_script! 'common/features'
2
+
3
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
4
+ event.assert_exists_link('Inputs')
5
+ event.tap_link('Inputs')
6
+ end
7
+
8
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
9
+ event.assert_exists_input('Simple Input')
10
+ event.update_input('Simple Input', 'value')
11
+ end
12
+
13
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
14
+ event.assert_exists_text('You input value.')
15
+ event.assert_exists_link('OK')
16
+ event.tap_link('OK')
17
+ end
18
+
19
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
20
+ event.assert_exists_input('Simple Input')
21
+ event.assert_exists_input('Duration Input')
22
+ event.update_input('Duration Input', '2h 3m')
23
+ end
24
+
25
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
26
+ event.assert_exists_text('You input 7380.')
27
+ event.assert_exists_link('OK')
28
+ event.tap_link('OK')
29
+ end
30
+
31
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
32
+ event.assert_exists_input('Duration Input', '2 hrs 3 mins')
33
+ event.assert_exists_input('Email Input')
34
+ event.update_input('Email Input', 'value')
35
+ end
36
+
37
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
38
+ event.assert_exists_text('You input value.')
39
+ event.assert_exists_link('OK')
40
+ event.tap_link('OK')
41
+ end
42
+
43
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
44
+ event.assert_exists_input('Email Input')
45
+ event.assert_exists_input('Multiline Input')
46
+ event.update_input('Multiline Input', 'value')
47
+ end
48
+
49
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
50
+ event.assert_exists_text('You input value.')
51
+ event.assert_exists_link('OK')
52
+ event.tap_link('OK')
53
+ end
54
+
55
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
56
+ event.assert_exists_input('Multiline Input')
57
+ event.assert_exists_input('Toggle Input', 'false')
58
+ event.update_input('Toggle Input', 'true')
59
+ end
60
+
61
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
62
+ event.assert_exists_text('You input true.')
63
+ event.assert_exists_link('OK')
64
+ event.tap_link('OK')
65
+ end
66
+
67
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
68
+ event.assert_exists_input('Toggle Input', 'true')
69
+ event.update_input('Toggle Input', 'false')
70
+ end
71
+
72
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
73
+ event.assert_exists_text('You input false.')
74
+ event.assert_exists_link('OK')
75
+ event.tap_link('OK')
76
+ end
77
+
78
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
79
+ event.assert_exists_input('Toggle Input')
80
+ event.tap_link('Back')
81
+ end
82
+
83
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
84
+ event.tap_link('Back')
85
+ end
86
+
87
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
88
+ event.refresh_browser
89
+ end
@@ -0,0 +1,41 @@
1
+ load_script! 'common/features'
2
+
3
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
4
+ event.assert_exists_link('Lists')
5
+ event.tap_link('Lists')
6
+ end
7
+
8
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
9
+ event.assert_exists_link('Item 01')
10
+ event.tap_link('Item 01')
11
+ end
12
+
13
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
14
+ event.assert_exists_text('You clicked Item 01.')
15
+ event.assert_exists_link('OK')
16
+ event.tap_link('OK')
17
+ end
18
+
19
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
20
+ event.assert_exists_link('Item 11')
21
+ event.tap_link('Item 11')
22
+ end
23
+
24
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
25
+ event.assert_exists_text('You clicked Item 11.')
26
+ event.assert_exists_link('OK')
27
+ event.tap_link('OK')
28
+ end
29
+
30
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
31
+ event.assert_exists_link('Item 11')
32
+ event.tap_link('Back')
33
+ end
34
+
35
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
36
+ event.tap_link('Back')
37
+ end
38
+
39
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
40
+ event.refresh_browser
41
+ end
@@ -0,0 +1,18 @@
1
+ load_script! 'common/features'
2
+
3
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
4
+ event.assert_exists_link('Trigger')
5
+ event.tap_link('Trigger')
6
+ end
7
+
8
+ add_step! RubyApp::Element::TriggeredEvent do |event|
9
+ event.tap_link('Back')
10
+ end
11
+
12
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
13
+ event.tap_link('Back')
14
+ end
15
+
16
+ add_step! RubyApp::Elements::Mobile::Page::ShownEvent do |event|
17
+ event.refresh_browser
18
+ end
@@ -1,7 +1,12 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'facets/string/interpolate'
1
5
  require 'securerandom'
2
6
  require 'thread'
3
7
 
4
8
  module RubyApp
9
+ require 'ruby_app/log'
5
10
  require 'ruby_app/mixins'
6
11
 
7
12
  class Session
@@ -19,44 +24,36 @@ module RubyApp
19
24
 
20
25
  end
21
26
 
22
- attr_reader :session_id, :expires, :pages, :data
27
+ attr_reader :session_id
28
+ attr_reader :expires
29
+
30
+ attr_reader :documents
31
+ attr_reader :data
32
+
23
33
  attr_accessor :identity
24
34
 
25
- def initialize(page = nil)
35
+ def initialize(document = nil)
26
36
  @session_id = RubyApp::Session.generate_session_id(self)
27
37
  @expires = Time.now + RubyApp::Session.configuration.expires
28
- @pages = []
29
- @dialogs = []
30
- @data = {}
31
- @identity = nil
32
38
 
33
- require 'ruby_app/elements/pages/default_page'
34
- @pages.push(page || RubyApp::Elements::Pages::DefaultPage.new)
39
+ @documents = []
40
+ @data = {}
35
41
 
36
- end
42
+ @identity = nil
37
43
 
38
- def show_dialog(event, dialog, &block)
44
+ @steps = []
45
+ @steps_index = 0
39
46
 
40
- @dialogs.push(dialog)
47
+ require 'ruby_app/elements/mobile/default/default_document'
48
+ @documents.push(document || RubyApp::Elements::Mobile::Default::DefaultDocument.new)
41
49
 
42
- if block_given? and block.arity == 1
43
- dialog.shown do |element, _event|
44
- yield _event
45
- _event.hide_dialog(element)
46
- end
47
- end
48
- dialog.hidden do |element, _event|
49
- if block_given? and block.arity == 2
50
- yield _event, dialog.response
51
- end
52
- @dialogs.delete(dialog)
53
- end
54
-
55
- event.show_dialog(dialog)
50
+ end
56
51
 
52
+ def document
53
+ return @documents.last
57
54
  end
58
55
 
59
- def reset!
56
+ def reset_expiry!
60
57
  @expires = Time.now + RubyApp::Session.configuration.expires
61
58
  end
62
59
 
@@ -70,6 +67,50 @@ module RubyApp
70
67
  end
71
68
  end
72
69
 
70
+ def load_script!(path)
71
+ _path = File.join(String.interpolate { RubyApp::Session.configuration.scripts.path }, "#{path}.rb")
72
+ Kernel.eval(File.read(_path), self.send(:binding), _path)
73
+ end
74
+
75
+ def add_step!(_class, &block)
76
+ caller = Kernel.caller.first.split(':')
77
+ @steps.push({:_class => _class,
78
+ :file => caller[0].gsub(String.interpolate { RubyApp::Session.configuration.scripts.path }, '').gsub(/^\//, ''),
79
+ :line => caller[1].to_i,
80
+ :block => block})
81
+ end
82
+
83
+ def process_event!(event)
84
+
85
+ event.process!
86
+
87
+ if RubyApp::Session.configuration.scripts.enabled
88
+ step = @steps[@steps_index]
89
+ if step
90
+ begin
91
+ if event.is_a?(step._class)
92
+ @steps_index += 1
93
+ RubyApp::Log.duration(RubyApp::Log::INFO, "STEP #{step.file}:#{step.line}") do
94
+ step.block.call(event)
95
+ end
96
+ if @steps_index == @steps.length
97
+ RubyApp::Log.info("STEP Completed #{@steps.length} steps")
98
+ end
99
+ end
100
+ rescue Exception => exception
101
+ RubyApp::Log.info("STEP Exception occurred at #{step.file}:#{step.line}")
102
+ @steps_index = @steps.length
103
+ raise
104
+ end
105
+ end
106
+ end
107
+
108
+ end
109
+
110
+ def reset_script!
111
+ @steps_index = 0
112
+ end
113
+
73
114
  def self.sessions
74
115
  return @@_sessions ||= {}
75
116
  end
@@ -84,7 +125,7 @@ module RubyApp
84
125
  session = RubyApp::Session.sessions[session_id]
85
126
  if session
86
127
  unless session.expired?
87
- session.reset!
128
+ session.reset_expiry!
88
129
  return session
89
130
  else
90
131
  session.quit!
@@ -96,10 +137,10 @@ module RubyApp
96
137
  end
97
138
 
98
139
  def self.generate_session_id(session)
99
- session_id = SecureRandom.hex
140
+ session_id = "id_#{SecureRandom.hex(RubyApp::Session.configuration.length)}"
100
141
  RubyApp::Session.lock_sessions do
101
142
  while RubyApp::Session.get_session(session_id)
102
- session_id = SecureRandom.hex
143
+ session_id = "id_#{SecureRandom.hex(RubyApp::Session.configuration.length)}"
103
144
  end
104
145
  RubyApp::Session.sessions.store(session_id, session)
105
146
  return session_id
@@ -110,8 +151,13 @@ module RubyApp
110
151
  Thread.current[:_session]
111
152
  end
112
153
 
113
- def self.load!(session_id = nil)
114
- Thread.current[:_session] = RubyApp::Session.get_session(session_id) || Kernel.eval(RubyApp::Session.configuration._class).new
154
+ def self.load!(session_id = nil, script_path = nil)
155
+ session = RubyApp::Session.get_session(session_id)
156
+ unless session
157
+ session = Kernel.eval(RubyApp::Session.configuration._class).new
158
+ session.load_script!(script_path) if script_path
159
+ end
160
+ Thread.current[:_session] = session
115
161
  end
116
162
 
117
163
  def self.unload!
@@ -123,20 +169,16 @@ module RubyApp
123
169
  @@_thread = Thread.new do
124
170
  begin
125
171
  while true
126
- #RubyApp::Log.duration(RubyApp::Log.prefix(self, __method__)) do
127
- RubyApp::Session.sessions.values.each do |session|
128
- if session.expired?
129
- #RubyApp::Log.memory(RubyApp::Log.prefix(self, __method__)) do
130
- RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} session.quit! #{session.session_id.inspect}")
131
- session.quit!
132
- #end
133
- end
172
+ RubyApp::Session.sessions.values.each do |session|
173
+ if session.expired?
174
+ RubyApp::Log.debug("QUIT #{session.session_id.inspect}")
175
+ session.quit!
134
176
  end
135
- #end
177
+ end
136
178
  sleep(RubyApp::Session.configuration.interval)
137
179
  end
138
180
  rescue Exception => exception
139
- RubyApp::Log.exception(exception)
181
+ RubyApp::Log.exception(RubyApp::Log::ERROR, exception)
140
182
  end
141
183
  end
142
184
 
@@ -144,7 +186,7 @@ module RubyApp
144
186
  begin
145
187
  RubyApp::Session.stop_thread!
146
188
  rescue Exception => exception
147
- RubyApp::Log.exception(exception)
189
+ RubyApp::Log.exception(RubyApp::Log::ERROR, exception)
148
190
  end
149
191
  end
150
192
 
@@ -161,6 +203,23 @@ module RubyApp
161
203
  end
162
204
  end
163
205
 
206
+ def self.get_scripts(path = String.interpolate { RubyApp::Session.configuration.scripts.path })
207
+ scripts = []
208
+ Dir.new(path).each do |item|
209
+ unless item.start_with?('.')
210
+ _path = File.join(path, item)
211
+ if File.directory?(_path)
212
+ scripts += self.get_scripts(_path)
213
+ elsif _path =~ /\.rb/
214
+ name = _path.gsub(String.interpolate { RubyApp::Session.configuration.scripts.path }, '').gsub(/^\//, '').gsub(/\.rb/, '')
215
+ scripts.push({:name => name,
216
+ :url => "/quit?go=#{CGI.escape("/?script=#{name}")}"})
217
+ end
218
+ end
219
+ end
220
+ return scripts.sort { |a, b| a.name <=> b.name }
221
+ end
222
+
164
223
  end
165
224
 
166
225
  end