jinda-5 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +177 -0
  4. data/Rakefile +3 -0
  5. data/bin/console +14 -0
  6. data/bin/setup +8 -0
  7. data/lib/generators/jinda/USAGE +2 -0
  8. data/lib/generators/jinda/config_generator.rb +108 -0
  9. data/lib/generators/jinda/install_generator.rb +206 -0
  10. data/lib/generators/jinda/minitest_generator.rb +30 -0
  11. data/lib/generators/jinda/rspec_generator.rb +30 -0
  12. data/lib/generators/jinda/templates/README.md +173 -0
  13. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  14. data/lib/generators/jinda/templates/app/assets/images/4dcity-old.ico +0 -0
  15. data/lib/generators/jinda/templates/app/assets/images/4dcity.ico +0 -0
  16. data/lib/generators/jinda/templates/app/assets/images/account.png +0 -0
  17. data/lib/generators/jinda/templates/app/assets/images/add.png +0 -0
  18. data/lib/generators/jinda/templates/app/assets/images/ajax-loader-circle.gif +0 -0
  19. data/lib/generators/jinda/templates/app/assets/images/ajax-loader.gif +0 -0
  20. data/lib/generators/jinda/templates/app/assets/images/anchor.png +0 -0
  21. data/lib/generators/jinda/templates/app/assets/images/application_double.png +0 -0
  22. data/lib/generators/jinda/templates/app/assets/images/application_form_edit.png +0 -0
  23. data/lib/generators/jinda/templates/app/assets/images/arrow_left.png +0 -0
  24. data/lib/generators/jinda/templates/app/assets/images/arrow_right.png +0 -0
  25. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_left.png +0 -0
  26. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_right.png +0 -0
  27. data/lib/generators/jinda/templates/app/assets/images/calendar.png +0 -0
  28. data/lib/generators/jinda/templates/app/assets/images/cancel.png +0 -0
  29. data/lib/generators/jinda/templates/app/assets/images/chart_bar.png +0 -0
  30. data/lib/generators/jinda/templates/app/assets/images/clock.png +0 -0
  31. data/lib/generators/jinda/templates/app/assets/images/cog.png +0 -0
  32. data/lib/generators/jinda/templates/app/assets/images/control_fastforward.png +0 -0
  33. data/lib/generators/jinda/templates/app/assets/images/control_play.png +0 -0
  34. data/lib/generators/jinda/templates/app/assets/images/cross.png +0 -0
  35. data/lib/generators/jinda/templates/app/assets/images/delete.png +0 -0
  36. data/lib/generators/jinda/templates/app/assets/images/external-link.png +0 -0
  37. data/lib/generators/jinda/templates/app/assets/images/facebook-continue-button.png +0 -0
  38. data/lib/generators/jinda/templates/app/assets/images/facebooksmall.png +0 -0
  39. data/lib/generators/jinda/templates/app/assets/images/favicon.ico +0 -0
  40. data/lib/generators/jinda/templates/app/assets/images/freemind(mm).png +0 -0
  41. data/lib/generators/jinda/templates/app/assets/images/google-continue-button.png +0 -0
  42. data/lib/generators/jinda/templates/app/assets/images/help.png +0 -0
  43. data/lib/generators/jinda/templates/app/assets/images/highway-menu.png +0 -0
  44. data/lib/generators/jinda/templates/app/assets/images/highway.png +0 -0
  45. data/lib/generators/jinda/templates/app/assets/images/house.png +0 -0
  46. data/lib/generators/jinda/templates/app/assets/images/icons-18-black.png +0 -0
  47. data/lib/generators/jinda/templates/app/assets/images/icons-18-white.png +0 -0
  48. data/lib/generators/jinda/templates/app/assets/images/icons-36-black.png +0 -0
  49. data/lib/generators/jinda/templates/app/assets/images/icons-36-white.png +0 -0
  50. data/lib/generators/jinda/templates/app/assets/images/logo.png +0 -0
  51. data/lib/generators/jinda/templates/app/assets/images/logo_jinda.png +0 -0
  52. data/lib/generators/jinda/templates/app/assets/images/logout.png +0 -0
  53. data/lib/generators/jinda/templates/app/assets/images/new.gif +0 -0
  54. data/lib/generators/jinda/templates/app/assets/images/new.png +0 -0
  55. data/lib/generators/jinda/templates/app/assets/images/page.png +0 -0
  56. data/lib/generators/jinda/templates/app/assets/images/page_attach.png +0 -0
  57. data/lib/generators/jinda/templates/app/assets/images/page_green.png +0 -0
  58. data/lib/generators/jinda/templates/app/assets/images/page_output.png +0 -0
  59. data/lib/generators/jinda/templates/app/assets/images/page_pdf.png +0 -0
  60. data/lib/generators/jinda/templates/app/assets/images/pencil.png +0 -0
  61. data/lib/generators/jinda/templates/app/assets/images/printer.png +0 -0
  62. data/lib/generators/jinda/templates/app/assets/images/refresh.png +0 -0
  63. data/lib/generators/jinda/templates/app/assets/images/report.png +0 -0
  64. data/lib/generators/jinda/templates/app/assets/images/rssmall.png +0 -0
  65. data/lib/generators/jinda/templates/app/assets/images/tick.png +0 -0
  66. data/lib/generators/jinda/templates/app/assets/images/twittersmall.png +0 -0
  67. data/lib/generators/jinda/templates/app/assets/images/user.png +0 -0
  68. data/lib/generators/jinda/templates/app/assets/images/user_admin_gear.png +0 -0
  69. data/lib/generators/jinda/templates/app/assets/images/view_code.png +0 -0
  70. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +24 -0
  71. data/lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm +28 -0
  72. data/lib/generators/jinda/templates/app/assets/javascripts/cable.js +13 -0
  73. data/lib/generators/jinda/templates/app/assets/javascripts/disable_enter_key.js-org +10 -0
  74. data/lib/generators/jinda/templates/app/assets/javascripts/iscroll-wrapper.js +32 -0
  75. data/lib/generators/jinda/templates/app/assets/javascripts/iscroll.js +1084 -0
  76. data/lib/generators/jinda/templates/app/assets/javascripts/jinda.js +14 -0
  77. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile-1.2.1.js +9272 -0
  78. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.datebox.js +1778 -0
  79. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.splitview.js +695 -0
  80. data/lib/generators/jinda/templates/app/assets/stylesheets/app.scss +84 -0
  81. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +34 -0
  82. data/lib/generators/jinda/templates/app/assets/stylesheets/articles.scss +84 -0
  83. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  84. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  85. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  86. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  87. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  88. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  89. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  90. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  91. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  92. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew.css +47 -0
  93. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  94. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  95. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  96. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  97. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  98. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  99. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  100. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  101. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  102. data/lib/generators/jinda/templates/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  103. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_black.png +0 -0
  104. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_blue.png +0 -0
  105. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_red.png +0 -0
  106. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-black.png +0 -0
  107. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-white.png +0 -0
  108. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-black.png +0 -0
  109. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-white.png +0 -0
  110. data/lib/generators/jinda/templates/app/assets/stylesheets/images/indicator.gif +0 -0
  111. data/lib/generators/jinda/templates/app/assets/stylesheets/jinda.css +52 -0
  112. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile-1.2.1.css +2339 -0
  113. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.datebox.css +65 -0
  114. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +122 -0
  115. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.splitview.css +128 -0
  116. data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.css +1516 -0
  117. data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.min.css +11 -0
  118. data/lib/generators/jinda/templates/app/assets/stylesheets/sarabun.css +37 -0
  119. data/lib/generators/jinda/templates/app/assets/stylesheets/social.scss +133 -0
  120. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +4 -0
  121. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +4 -0
  122. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +81 -0
  123. data/lib/generators/jinda/templates/app/controllers/ctrs_controller.rb-gem-test +2 -0
  124. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +6 -0
  125. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +42 -0
  126. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +81 -0
  127. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +17 -0
  128. data/lib/generators/jinda/templates/app/controllers/jinda_org/devs_controller.rb +2 -0
  129. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +5 -0
  130. data/lib/generators/jinda/templates/app/controllers/jinda_org/jinda_controller.rb +579 -0
  131. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +86 -0
  132. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +28 -0
  133. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +34 -0
  134. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +43 -0
  135. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +12 -0
  136. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +34 -0
  137. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  138. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +33 -0
  139. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  140. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  141. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  142. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  143. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  144. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  145. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  146. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  147. data/lib/generators/jinda/templates/app/jinda/index.mm +306 -0
  148. data/lib/generators/jinda/templates/app/jinda/template/linkview.haml +21 -0
  149. data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +27 -0
  150. data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +4 -0
  151. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +7 -0
  152. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +10 -0
  153. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +15 -0
  154. data/lib/generators/jinda/templates/app/models/address.rb +14 -0
  155. data/lib/generators/jinda/templates/app/models/article.rb +14 -0
  156. data/lib/generators/jinda/templates/app/models/ckeditor/asset.rb +5 -0
  157. data/lib/generators/jinda/templates/app/models/ckeditor/attachment_file.rb +13 -0
  158. data/lib/generators/jinda/templates/app/models/ckeditor/picture.rb +14 -0
  159. data/lib/generators/jinda/templates/app/models/comment.rb +11 -0
  160. data/lib/generators/jinda/templates/app/models/identity.rb +18 -0
  161. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +22 -0
  162. data/lib/generators/jinda/templates/app/models/jinda/module.rb +11 -0
  163. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +14 -0
  164. data/lib/generators/jinda/templates/app/models/jinda/role.rb +8 -0
  165. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +24 -0
  166. data/lib/generators/jinda/templates/app/models/jinda/service.rb +17 -0
  167. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +38 -0
  168. data/lib/generators/jinda/templates/app/models/note.rb +22 -0
  169. data/lib/generators/jinda/templates/app/models/param.rb +41 -0
  170. data/lib/generators/jinda/templates/app/models/person.rb +14 -0
  171. data/lib/generators/jinda/templates/app/models/user.rb +66 -0
  172. data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +241 -0
  173. data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +7 -0
  174. data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +4 -0
  175. data/lib/generators/jinda/templates/app/views/api/v1/note.haml +0 -0
  176. data/lib/generators/jinda/templates/app/views/articles/edit.haml +12 -0
  177. data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +13 -0
  178. data/lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb +12 -0
  179. data/lib/generators/jinda/templates/app/views/articles/index.haml +23 -0
  180. data/lib/generators/jinda/templates/app/views/articles/my.haml +20 -0
  181. data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +14 -0
  182. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +24 -0
  183. data/lib/generators/jinda/templates/app/views/articles/xedit_article/edit_article.html.erb +13 -0
  184. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +23 -0
  185. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +23 -0
  186. data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +23 -0
  187. data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +6 -0
  188. data/lib/generators/jinda/templates/app/views/identities/new.html.erb +32 -0
  189. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +10 -0
  190. data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +26 -0
  191. data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +44 -0
  192. data/lib/generators/jinda/templates/app/views/jinda/_model.md +5 -0
  193. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +9 -0
  194. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +5 -0
  195. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +24 -0
  196. data/lib/generators/jinda/templates/app/views/jinda/_service.md +24 -0
  197. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +13 -0
  198. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +37 -0
  199. data/lib/generators/jinda/templates/app/views/jinda/doc.md +36 -0
  200. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +22 -0
  201. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +27 -0
  202. data/lib/generators/jinda/templates/app/views/jinda/help.haml +20 -0
  203. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +43 -0
  204. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +22 -0
  205. data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +18 -0
  206. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +1 -0
  207. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +42 -0
  208. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +38 -0
  209. data/lib/generators/jinda/templates/app/views/jinda/search.haml +20 -0
  210. data/lib/generators/jinda/templates/app/views/jinda/status.haml +61 -0
  211. data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +9 -0
  212. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +13 -0
  213. data/lib/generators/jinda/templates/app/views/layouts/_meta_tags.html.erb +5 -0
  214. data/lib/generators/jinda/templates/app/views/layouts/_metatag.html.erb +19 -0
  215. data/lib/generators/jinda/templates/app/views/layouts/application.haml +4 -0
  216. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +7 -0
  217. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +147 -0
  218. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +47 -0
  219. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +34 -0
  220. data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +123 -0
  221. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +155 -0
  222. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +47 -0
  223. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +9 -0
  224. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +41 -0
  225. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +16 -0
  226. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +4 -0
  227. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +13 -0
  228. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +3 -0
  229. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +1 -0
  230. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +1 -0
  231. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +13 -0
  232. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +31 -0
  233. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +22 -0
  234. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +22 -0
  235. data/lib/generators/jinda/templates/app/views/new.html.erb +7 -0
  236. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.html.haml +7 -0
  237. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.text.haml +8 -0
  238. data/lib/generators/jinda/templates/app/views/notes/delete/select_note.html.erb +14 -0
  239. data/lib/generators/jinda/templates/app/views/notes/edit/edit_note.html.erb +10 -0
  240. data/lib/generators/jinda/templates/app/views/notes/edit/select_note.html.erb +14 -0
  241. data/lib/generators/jinda/templates/app/views/notes/index.haml +71 -0
  242. data/lib/generators/jinda/templates/app/views/notes/mail/display_mail.html.erb +20 -0
  243. data/lib/generators/jinda/templates/app/views/notes/mail/select_note.html.erb +19 -0
  244. data/lib/generators/jinda/templates/app/views/notes/mail/show.html.haml +13 -0
  245. data/lib/generators/jinda/templates/app/views/notes/my.haml +21 -0
  246. data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +13 -0
  247. data/lib/generators/jinda/templates/app/views/notes/show.haml +10 -0
  248. data/lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb +10 -0
  249. data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +21 -0
  250. data/lib/generators/jinda/templates/app/views/password_resets/new.html.erb +7 -0
  251. data/lib/generators/jinda/templates/app/views/sessions/new.html.erb +20 -0
  252. data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +10 -0
  253. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +3 -0
  254. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +3 -0
  255. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +3 -0
  256. data/lib/generators/jinda/templates/app/views/users/index.haml +13 -0
  257. data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +6 -0
  258. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +8 -0
  259. data/lib/generators/jinda/templates/config/cloudinary.yml +9 -0
  260. data/lib/generators/jinda/templates/db/seeds.rb +6 -0
  261. data/lib/generators/jinda/templates/dot/dot.env +2 -0
  262. data/lib/generators/jinda/templates/jinda.yml +10 -0
  263. data/lib/generators/jinda/templates/public/404.html +67 -0
  264. data/lib/generators/jinda/templates/public/422.html +67 -0
  265. data/lib/generators/jinda/templates/public/500.html +66 -0
  266. data/lib/generators/jinda/templates/public/assets/images/logo.png +0 -0
  267. data/lib/generators/jinda/templates/public/favicon.ico +0 -0
  268. data/lib/generators/jinda/templates/public/robots.txt +3 -0
  269. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +23 -0
  270. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +14 -0
  271. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +19 -0
  272. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +96 -0
  273. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +23 -0
  274. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +24 -0
  275. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +9 -0
  276. data/lib/generators/jinda/templates/spec/models/note_spec.rb +41 -0
  277. data/lib/generators/jinda/templates/spec/models/user_spec.rb +12 -0
  278. data/lib/generators/jinda/templates/spec/rails_helper.rb +44 -0
  279. data/lib/generators/jinda/templates/spec/spec_helper.rb +77 -0
  280. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +20 -0
  281. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +12 -0
  282. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +38 -0
  283. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +8 -0
  284. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +14 -0
  285. data/lib/generators/jinda/templates/test/application_system_test_case.rb +5 -0
  286. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +42 -0
  287. data/lib/generators/jinda/templates/test/test_helper.rb +6 -0
  288. data/lib/jinda.rb +6 -0
  289. data/lib/jinda/ template/view.html.erb +25 -0
  290. data/lib/jinda/app/jinda/template/view.html.erb +27 -0
  291. data/lib/jinda/gemhelpers.rb +50 -0
  292. data/lib/jinda/helpers.rb +853 -0
  293. data/lib/jinda/railtie.rb +18 -0
  294. data/lib/jinda/version.rb +3 -0
  295. data/lib/tasks/jinda.rake +33 -0
  296. metadata +405 -0
@@ -0,0 +1,24 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe NoteMailer do
4
+
5
+
6
+ describe 'gmail' do
7
+
8
+ let(:mail) {NoteMailer.gmail("Test Body", "receiver@email.com", "Test title", "from@example.com")}
9
+
10
+
11
+ it 'renders the subject' do
12
+ expect(mail.subject).to eql('Test title')
13
+ end
14
+
15
+ it 'renders the receiver email' do
16
+ expect(mail.to).to eql(['receiver@email.com'])
17
+ end
18
+
19
+ it 'renders the sender email' do
20
+ expect(mail.from).to eql(['from@example.com'])
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,9 @@
1
+ # Preview all emails at http://localhost:3000/rails/mailers/note
2
+ class NotePreview < ActionMailer::Preview
3
+
4
+ # Preview this email at http://localhost:3000/rails/mailers/note/gmail
5
+ def gmail
6
+ NoteMailer.gmail
7
+ end
8
+
9
+ end
@@ -0,0 +1,41 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe Note, type: :model do
4
+ describe "Required only title (Maximum 30)" do
5
+
6
+ it "valid with both title and body" do
7
+ before_count = Note.count
8
+ Note.create(title: "dddd", body: "body")
9
+ expect(Note.count).not_to eq(before_count)
10
+ end
11
+
12
+ it "valid with only title" do
13
+ before_count = Note.count
14
+ Note.create(title: "Title")
15
+ expect(Note.count).not_to eq(before_count)
16
+ end
17
+
18
+ it "invalid with only body" do
19
+ before_count = Note.count
20
+ Note.new(body: "body")
21
+ expect(Note.count).to eq(before_count)
22
+ end
23
+
24
+ it "invalid body length more than 1000" do
25
+ before_count = Note.count
26
+ title_max = "x"*30
27
+ body_max = "y"*1001
28
+ Note.create(title: title_max, body: body_max)
29
+ expect(Note.count).to eq(before_count)
30
+ end
31
+ end
32
+
33
+ describe "title data blank" do
34
+ it "auto fill from body" do
35
+ note = Note.create(:title => "", :body => "Body content")
36
+ note.title.should == "Body content"
37
+ end
38
+ end
39
+
40
+ end
41
+
@@ -0,0 +1,12 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe "User", :type => :model do
4
+ it "prevents duplicates " do
5
+ user1 = create(:user, code: 'abc', email: 'test@email.com')
6
+ user2 = build(:user, code: 'abc', email: 'test@email.com')
7
+
8
+ user1.should be_valid
9
+ #user2.should be_valid
10
+ user2.should_not have_valid(:code)
11
+ end
12
+ end
@@ -0,0 +1,44 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV['RAILS_ENV'] ||= 'test'
3
+ require File.expand_path('../../config/environment', __FILE__)
4
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # Add this at top of file
5
+ # Prevent database truncation if the environment is production
6
+ abort("The Rails environment is running in production mode!") if Rails.env.production?
7
+ require 'rspec/rails'
8
+ require 'spec_helper'
9
+ require 'support/factory_bot'
10
+ Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
11
+
12
+ RSpec.configure do |config|
13
+
14
+ # Add create_and_sign_in_user
15
+ config.include AuthenticationHelper, type: :controller
16
+
17
+ # To include RequestSpecHelper
18
+ config.include RequestSpecHelper, type: :request
19
+
20
+ # config.infer_spec_type_from_file_location!
21
+
22
+ # Filter lines from Rails gems in backtraces.
23
+ config.filter_rails_from_backtrace!
24
+ # arbitrary gems may also be filtered via:
25
+ # config.filter_gems_from_backtrace("gem name")
26
+
27
+
28
+
29
+ # Added to make factorybot work
30
+ FactoryBot.allow_class_lookup = false
31
+ config.use_transactional_fixtures = false
32
+ config.include FactoryBot::Syntax::Methods
33
+ config.before do
34
+ FactoryBot.find_definitions
35
+ end
36
+ # configure shoulda matchers to use rspec as the test framework and full matcher libraries for rails
37
+ Shoulda::Matchers.configure do |config|
38
+ config.integrate do |with|
39
+ with.test_framework :rspec
40
+ with.library :rails
41
+ end
42
+ end
43
+
44
+ end
@@ -0,0 +1,77 @@
1
+ # https://www.natashatherobot.com/rails-test-omniauth-sessions-controller/
2
+ # spec_helper.rb
3
+ require 'rubygems'
4
+ require 'capybara/rspec'
5
+ # Set up the mock
6
+ require 'support/omniauth_macros'
7
+ require 'valid_attribute'
8
+
9
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
+ RSpec.configure do |config|
11
+ # config.include SpecTestHelper, :type => :controller
12
+ config.expect_with :rspec do |expectations|
13
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
14
+ expectations.syntax = [:expect, :should]
15
+ end
16
+ config.mock_with :rspec do |mocks|
17
+ mocks.verify_partial_doubles = true
18
+ end
19
+ config.shared_context_metadata_behavior = :apply_to_host_groups
20
+
21
+ # https://github.com/DatabaseCleaner/database_cleaner #
22
+ # config.use_transactional_fixtures = false
23
+ # https://stackoverflow.com/questions/15148585/undefined-method-visit-when-using-rspec-and-capybara-in-rails
24
+ config.include Capybara::DSL
25
+
26
+ # https://stackoverflow.com/questions/21445164/set-chrome-as-default-browser-for-rspec-capybara/30551595
27
+ Capybara.register_driver :chrome do |app|
28
+ Capybara::Selenium::Driver.new(app, :browser => :chrome)
29
+ end
30
+ Capybara.javascript_driver = :chrome
31
+
32
+ config.before(:suite) do
33
+ if config.use_transactional_fixtures?
34
+ raise(<<-MSG)
35
+ Delete line `config.use_transactional_fixtures = true` from rails_helper.rb
36
+ (or set it to false) to prevent uncommitted transactions being used in
37
+ JavaScript-dependent specs.
38
+
39
+ During testing, the app-under-test that the browser driver connects to
40
+ uses a different database connection to the database connection used by
41
+ the spec. The app's database connection would not be able to access
42
+ uncommitted transaction data setup over the spec's database connection.
43
+ MSG
44
+ end
45
+ DatabaseCleaner.clean_with(:truncation)
46
+ end
47
+
48
+ config.before(:each, :js => true) do
49
+ #DatabaseCleaner.strategy = :transaction
50
+ DatabaseCleaner.strategy = :truncation
51
+ end
52
+
53
+ config.before(:each, type: :feature) do
54
+ # :rack_test driver's Rack app under test shares database connection
55
+ # with the specs, so continue to use transaction strategy for speed.
56
+ driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test
57
+
58
+ unless driver_shares_db_connection_with_specs
59
+ # Driver is probably for an external browser with an app
60
+ # under test that does *not* share a database connection with the
61
+ # specs, so use truncation strategy.
62
+ # DatabaseCleaner.strategy = :truncation
63
+ DatabaseCleaner[:mongoid].strategy = :truncation
64
+
65
+ end
66
+ end
67
+
68
+ config.before(:each) do
69
+ DatabaseCleaner.start
70
+ end
71
+
72
+ config.append_after(:each) do
73
+ DatabaseCleaner.clean
74
+ end
75
+ # https://github.com/DatabaseCleaner/database_cleaner #
76
+
77
+ end
@@ -0,0 +1,20 @@
1
+ module AuthenticationHelper
2
+ # controller return 1. Session 2. Cookies ==> user.id
3
+ def sign_in(user)
4
+ @user = user
5
+ current_ma_user
6
+ end
7
+
8
+ def create_and_sign_in_user
9
+ user = FactoryBot.create(:user)
10
+ sign_in(user)
11
+ return user
12
+ end
13
+ # from Jinda::Helpers
14
+ def current_ma_user
15
+ @user ||= User.where(:auth_token => user.auth_token)
16
+ return @user
17
+ end
18
+
19
+ end
20
+
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :user, class: 'User' do
3
+ code {Faker::Name.unique.name}
4
+ email {Faker::Internet.email}
5
+ role {"Admin"}
6
+ end
7
+ factory :note, class: 'Note' do
8
+ title { Faker::Lorem.sentence[0..29] }
9
+ body { Faker::Lorem.sentence[0..999] }
10
+ user { User.first }
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ # in spec/support/omniauth_macro.rb
2
+ module OmniauthMacros
3
+ require 'omniauth'
4
+ #To enable all request to OmniAuth short circuited to use below mock authentication hash the /auth/provider will redirect immediately to /auth/provider/call back
5
+ # https://github.com/omniauth/omniauth/wiki/Integration-Testing
6
+ OmniAuth.config.test_mode = true
7
+
8
+ omniauth_hash = { 'provider' => 'google_oauth2',
9
+ 'uid' => '105362273761620533373',
10
+ 'info' => {
11
+ 'name' => 'Kulsoft',
12
+ 'email' => 'kulsoft.net@gmail.com',
13
+ 'nickname' => 'kulsoft'
14
+ },
15
+ 'extra' => {'raw_info' =>
16
+ { 'location' => 'San Francisco',
17
+ 'gravatar_id' => '123456789'
18
+ }
19
+ }
20
+ }
21
+ OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
22
+
23
+ omniauth_hash = { 'provider' => 'facebook',
24
+ 'uid' => '105362273761620533373',
25
+ 'info' => {
26
+ 'name' => 'Peter Colling',
27
+ 'email' => '1.0@kul.asia',
28
+ 'nickname' => 'Peter C'
29
+ },
30
+ 'extra' => {'raw_info' =>
31
+ {'location' => 'LA',
32
+ 'gravatar_id' => '13'
33
+ }
34
+ }
35
+ }
36
+ OmniAuth.config.add_mock(:facebook, omniauth_hash)
37
+ end
38
+
@@ -0,0 +1,8 @@
1
+ #request_spec_helper.rb
2
+
3
+ module RequestSpecHelper
4
+ # Parse JSON response to ruby hash
5
+ def json
6
+ JSON.parse(response.body)
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ let login_as_admin
2
+
3
+ describe 'articles/_article.html.erb' do
4
+ context 'when the article has a url' do
5
+ it 'display the url' do
6
+ assign(:article, Article.build(:article, url: 'http://localhost:3000/jinda/init?s=articles:new_article'))
7
+
8
+ render
9
+
10
+ expect(rendered).to have_link 'Article', href: 'http://localhost:3000/jinda/init?s=articles:new_article'
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,5 @@
1
+ require "test_helper"
2
+
3
+ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
4
+ driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
5
+ end
@@ -0,0 +1,42 @@
1
+ require 'test_helper'
2
+ class RegistrationRoutesTest < ActionController::TestCase
3
+
4
+ test 'register user form route' do
5
+ assert_routing '/identities/new', {controller: 'identities', action: 'new'}
6
+ #assert_routing({path: '/identities/new', method: 'post'},{controller: 'identities', action: 'new'})
7
+ end
8
+ test 'Admin Jinda Pending' do
9
+ assert_routing '/jinda/new', {controller: 'jinda', action: 'new'}
10
+ end
11
+ test 'Admin Jinda Pending redirecting to action pending' do
12
+ assert_routing '/jinda/pending', {controller: 'jinda', action: 'pending'}
13
+ #assert_routing {'/jinda/pending', method: 'post'},{controller: 'jinda', action: 'index'})
14
+ end
15
+ test 'jinda action init' do
16
+ assert_routing '/jinda/init', {controller: 'jinda', action:'init'}
17
+ end
18
+ test 'jinda action run' do
19
+ assert_routing '/jinda/run', {controller: 'jinda', action:'run'}
20
+ end
21
+ test 'jinda action run_form' do
22
+ assert_routing '/jinda/run_form', {controller: 'jinda', action:'run_form'}
23
+ end
24
+ test 'jinda action end_form' do
25
+ assert_routing '/jinda/end_form', {controller: 'jinda', action:'end_form'}
26
+ end
27
+ test 'post jinda action end_form' do
28
+ assert_routing({ path:'/jinda/end_form',method: :post},{controller: 'jinda', action:'end_form'})
29
+ end
30
+ test 'jinda action run_do' do
31
+ assert_routing '/jinda/run_do', {controller: 'jinda', action:'run_do'}
32
+ end
33
+ # test "redirect_to(:action=>\'run_#{@runseq.action}\', :id=>@xmain.id)" do
34
+ # assert_select 'title', "Welcome to Rails Testing Guide"
35
+ # end
36
+
37
+
38
+
39
+
40
+
41
+
42
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path('../../config/environment', __FILE__)
2
+ require 'rails/test_help'
3
+
4
+ class ActiveSupport::TestCase
5
+ # Add more helper methods to be used by all tests here...
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'jinda/version'
2
+ require 'jinda/railtie'
3
+
4
+ module Jinda
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,25 @@
1
+ <%
2
+ doc = Jinda::Doc.new :issue_on=> Date.today, :process_at => Time.now
3
+ %>
4
+ <%= fields_for doc do |f| %>
5
+
6
+ <%= f.select :x, [["SELECTION 1", 1], ["SELECTION 2", 2], ["SELECTION 3", 3]] %>
7
+
8
+
9
+ <%= f.label :x, "Reference number" %>
10
+ <%= f.text_field :x %>
11
+ <!--div>
12
+ <%= f.label :w, "Confidential" , :class=>"ui-input-text" %>
13
+ <%= f.select :w, [['normal',0],['secret',1],['top secret',2]],{},"data-native-menu"=>"false" %>
14
+ </div-->
15
+ <%= f.label :issue_on, "Dated" %>
16
+ <%= f.date_field :issue_on, "blackDays"=>[0,6] %>
17
+ <%= f.label :dscan, "Attached document" %>
18
+ <%= f.file_field :dscan %>
19
+ <% end %>
20
+ <%= label_tag :z, "Ungroup field" %>
21
+ <%= text_field_tag :z %>
22
+ <!--div>
23
+ <%= label_tag :yes, "Logic field", :class=>"ui-input-text" %>
24
+ <%= select_tag :yes, options_for_select([['Yes', 'y'], ['No', 'n']],'y'), 'data-role'=>"slider" %>
25
+ </div-->
@@ -0,0 +1,27 @@
1
+ <%
2
+ doc = Jinda::Doc.new :issue_on=> Date.today, :process_at => Time.now
3
+ %>
4
+ <%= fields_for doc do |f| %>
5
+
6
+ <%= f.select :x, [["SELECTION 1", 1], ["SELECTION 2", 2], ["SELECTION 3", 3]] %>
7
+
8
+
9
+ <%= f.label :x, "Reference number" %>
10
+ <%= f.text_field :x %>
11
+ <!--div>
12
+ <%= f.label :w, "Confidential" , :class=>"ui-input-text" %>
13
+ <%= f.select :w, [['normal',0],['secret',1],['top secret',2]],{},"data-native-menu"=>"false" %>
14
+ </div-->
15
+ <%= f.label :issue_on, "Dated" %>
16
+ <%= f.date_field :issue_on, "blackDays"=>[0,6] %>
17
+ <%= f.label :y, "Summary" %>
18
+ <%= f.text_area :summary, :cols=>50, :rows=>6 %>
19
+ <%= f.label :dscan, "Attached document" %>
20
+ <%= f.file_field :dscan %>
21
+ <% end %>
22
+ <%= label_tag :z, "Ungroup field" %>
23
+ <%= text_field_tag :z %>
24
+ <!--div>
25
+ <%= label_tag :yes, "Logic field", :class=>"ui-input-text" %>
26
+ <%= select_tag :yes, options_for_select([['Yes', 'y'], ['No', 'n']],'y'), 'data-role'=>"slider" %>
27
+ </div-->
@@ -0,0 +1,50 @@
1
+ # This GemHelpers is to make helper able to be test in gem (not in rails)
2
+ module Jinda
3
+ module GemHelpers
4
+ require 'jinda/helpers'
5
+ include Jinda::Helpers
6
+ require 'pry'
7
+ # Find gem root
8
+ spec = Gem::Specification.find_by_name("jinda")
9
+ $gem_root = spec.gem_dir
10
+
11
+ def controller_exists?(modul)
12
+ File.exists? $gem_root + "/lib/generators/jinda/templates/app/controllers/#{modul}_controller.rb"
13
+ end
14
+
15
+ #
16
+ # Mock generate controller for test
17
+ # Otherwise test will call rails g controller
18
+ #
19
+ def process_controllers
20
+ process_services
21
+ modules= Jinda::Module.all
22
+ modules.each do |m|
23
+ next if controller_exists?(m.code)
24
+ puts " Rails generate controller #{m.code}"
25
+ end
26
+ end
27
+
28
+ def gen_view_file_exist?(dir)
29
+ gdir = $gem_root + "/spec/temp/" + dir
30
+ File.exists?(gdir)
31
+ end
32
+
33
+ def gen_view_mkdir(dir,t)
34
+ gdir = $gem_root + "/spec/temp/" + dir
35
+ Dir.mkdir(gdir)
36
+ t << "create directory #{gdir}"
37
+ end
38
+
39
+ def gen_view_createfile(sv,f,t)
40
+ gsv = $gem_root + "/lib/generators/jinda/templates/" + sv
41
+ gf = $gem_root + "/spec/temp/" + f
42
+ FileUtils.cp gsv,gf
43
+ # FileUtils.cp "app/jinda/template/linkview.haml",f
44
+ t << "create file #{gf}"
45
+ end
46
+
47
+
48
+ end
49
+ end
50
+