jinda-5 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
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,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 64a4689ae425a421a74c01f6137f6492232278eb774b3ef6b769b6c1fef791a5
4
+ data.tar.gz: 6164d22ed9d2ac772dcfdfe5714ef0eb3608770f5ffcdb2518c084fd53905d9c
5
+ SHA512:
6
+ metadata.gz: 24a9a1d69a9e802162bb312665f97af012031a82e5cf331a451fdae495d7d0128c5c1639ae2f5c0b64b65b87aad296d467e3e7bd0af2bb8aa798da009e069e12
7
+ data.tar.gz: fb26167fbec760bc175f06e378e8526db2f0d44ae304e9ab99fd31c77973d4e9737662ef861f42db648f93272288ca0ca129d9c287cf8920098d2a0df0aac123
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,177 @@
1
+ # Jinda-5
2
+ Rails Application Generator using Freemind
3
+ * [jinda](https://github.com/kul1/jinda)
4
+ -![Screen Shot 2019-09-07 at 1 00 03 PM](https://user-images.githubusercontent.com/3953832/64478408-f5feb500-d175-11e9-9d07-8b41f3c47924.png)
5
+
6
+ ## Additional Extension themes also available at
7
+ * [jinda_adminlte](https://github.com/kul1/jinda_adminlte)
8
+ - ![j18-screen](https://user-images.githubusercontent.com/3953832/34298172-faa7e962-e6e1-11e7-93e2-19dfd4ab42af.png)
9
+
10
+ * [jinda_adminbsb](https://github.com/kul1/jinda_adminbsb)
11
+ - ![jinda-bsb](https://user-images.githubusercontent.com/3953832/34320779-bb0980d2-e7c6-11e7-855c-fafc23487ba5.png)
12
+
13
+ ## Prerequisites
14
+
15
+ These versions works for sure but others may do.
16
+
17
+ * Ruby 2.5.0
18
+ * Rails 5.2.0
19
+ * MongoDB 6
20
+ * Freemind 1.0.1
21
+
22
+ ## Convention
23
+
24
+ * database is MongoDB
25
+ * images stored in upload directory, unset IMAGE_LOCATION in `initializer/jinda.rb` to use Cloudinary
26
+ * mail use Gmail SMTP, config in `config/application.rb`
27
+ * authentication use omniauth-identity
28
+
29
+ ## Sample Application
30
+ ### Screen shot install Jinda
31
+ * https://www.youtube.com/watch?v=XUXv7Yrskjk&feature=youtu.be
32
+ ### Sample Jinda in Docker
33
+
34
+ * https://github.com/kul1/b-255523-jd
35
+
36
+ Supposed we want to create ecommerce web site, first create a Rails
37
+ app without ActiveRecord
38
+
39
+ $ rails new YOURAPP -BOTJ
40
+
41
+ ## Add jinda to your Gemfile:
42
+
43
+ gem 'jinda-5', '~> 0.4.5'
44
+
45
+ For Development (most updated)
46
+
47
+ gem 'jinda', github:'kul1/jinda', branch: 'jinda-5'
48
+
49
+ depend on your operating system, you may need to uncomment
50
+
51
+ gem 'therubyracer', :platforms => :ruby
52
+
53
+ install gems
54
+
55
+ $ bundle
56
+
57
+ generate jinda application
58
+
59
+ $ rails generate jinda:install
60
+
61
+ Then run bundle again to install additional gems added by jinda
62
+
63
+ $ bundle
64
+
65
+ (or run all with "sh install.sh" )
66
+
67
+ configure mongoid, omniauth
68
+
69
+ $ rails generate jinda:config
70
+
71
+ Please make sure mongod is running then create admin user
72
+
73
+ $ rails jinda:seed
74
+
75
+ now the application is ready, start it as any Rails application
76
+
77
+ $ rails server
78
+
79
+ go to http://localhost:3000, click *Sign In* on the left menu, and enter user name `admin` and password `secret`
80
+
81
+ ![login](https://user-images.githubusercontent.com/3953832/41832924-d868f8f0-7813-11e8-93bb-19c0357cf604.png)
82
+
83
+ Now open file `app/jinda/index.mm` using Freemind
84
+
85
+ ![index mm](https://user-images.githubusercontent.com/3953832/34680350-7906fbe8-f45e-11e7-8df5-969b4c735c6e.png)
86
+
87
+ The 3 main branches are
88
+
89
+ * models - this defines all the models to use in the application
90
+ * services - this defines services which will be come the menu on the left of the screen. There will be 2 levels; the first sub branch is the main menu (modules) and the second sub branch is the sub menu (services)
91
+ * roles - this defines role for all users
92
+
93
+ ### models
94
+
95
+ Fiirst, we need to create some product so we click on models we'll see 2 models person and address. These are sample only. You can delete them or modify them however you want. We'll take a look at them first
96
+
97
+ ![models](https://user-images.githubusercontent.com/3953832/34681380-50b27dd6-f461-11e7-8472-3a14d76e0f16.png)
98
+
99
+ The first sub branch (e.g. person) is the model name. According to Rails convention, this should be a singular word. The next sub branch are columns in the database. Let's take a look at each:
100
+
101
+ * `fname` - this create a column (field) called fname which is a String by default
102
+ * `sex: integer` - this create a column called sex, it is integer so must be explicity defined. The next sub branch (1: male) is disregarded by Jinda so we can put whatever we want. Here I just put some reminder.
103
+ * `belongs_to :address` - here we have ![pen](https://cloud.githubusercontent.com/assets/3953832/25600038/3a4ffb66-2f0b-11e7-9f03-b875e550eefe.png)
104
+ icon. this means whatever text on this line will be added as is to the model Jinda generates. You use this to specify anything you want such as association, index, remarks in code, etc. according to mongoid gem. To draw the icon, rest mouse on the branch and hit &ltAlt-I&gt.
105
+ * `dob: date` - use any type that mongoid provides.
106
+ * `photo` - for file field, just use String here. Jinda will receive the binary file and store in file system or cloudinary then generate a url link to it.
107
+
108
+ In this example we just want a product model, so delete the person and address model and add a product branch like so
109
+
110
+ ![freemind1](https://user-images.githubusercontent.com/3953832/34680349-78f1eea6-f45e-11e7-8e43-50d9025bb449.png)
111
+
112
+ Save the mind map then run:
113
+
114
+ rake jinda:update
115
+
116
+ This will create file `app/models/product.rb`. In this file, note the comment lines `# jinda begin` and ` # jinda end`. Everything inside these comments will get overwritten when you change the models branch in the mind map so if you need to put anything inside here, use the mind map instead. You can add anything outside these comment lines which will be preserved when doing jinda:update.
117
+
118
+ ### services
119
+
120
+ Next we'll add some product into the database, we'll first take a look at the services branch, which already has 3 sub branches; users, admins, and devs. Unlike models person and address branches, these branches are actively used by the system so I recommend that you leave them alone. Let's open the users branch
121
+
122
+ ![image](https://cloud.githubusercontent.com/assets/3953832/25599895/ecf46466-2f09-11e7-82aa-81ade6b9cd83.png)
123
+
124
+ The text `users:User` on the sub branch has these implications:
125
+
126
+ * `users` correspond to `app/controllers/users_controller.rb` which already exist when you do rails generate jinda:install. New branch will create new controller if not exist. In Jinda term, this will be called module.
127
+ * `User` will create entry in main menu on the left of the screen. You don't see it in the screenshot above because it's controlled by the sub branch `role:m` which means this menu only available for login member. If you already signed in as admin, you should see it now.
128
+
129
+ The next sub branches has the following:
130
+
131
+ * `role: m` - means that this module (menu) is available only to user who has role m (if you open the role branch now will see that role m is member). All registered user has role m by default. User who is not log on would not be able to access this module.
132
+ * `link:info: /users` - means that this is a link, the format is link: *submenu label* : *url* where submenu label is the text to show in the submenu and url is the link to go to, in this case, it woud go to http://localhost:3000/users which will perform index action of UsersController.
133
+ * `user:edit` the branch that do not start with role:, rule:, nor link: will be a Jinda service. You will then specify the sequence of the execution as in this example there are 3 sub branches - enter_user, update_user, and rule:login? Let's take a look at them:
134
+
135
+ * `enter_user:edit` - the first step is to display a form to input user information, this is accompanied by icon ![image](https://cloud.githubusercontent.com/assets/3953832/25599946/47c32cf6-2f0a-11e7-80a8-2c02c6294c9a.png)
136
+ which means user interface screen. and will correspond to a view file `app/views/users/user/enter_user.html.erb` where `/users` comes from the module name (the sub branch of services), `/user` comes from the service name (the sub branch of users), and `enter_user.html.erb` comes from the first part of this branch. The `edit` after the colon is just a description of this step. This branch also has sub branch `rule:login? && own_xmain?` which specify rule for this step that the user must be login and can continue this task if he is the one who started it. *task* in here means each instance of service.
137
+ * `update_user` - this icon ![image](https://cloud.githubusercontent.com/assets/3953832/25599976/87b69ad2-2f0a-11e7-9aba-1bd4e9546d3e.png) means to execute method update_user within `users_controller.rb`
138
+
139
+ Armed with this knowledge, we are ready to add new product into our application like so:
140
+
141
+ ![add_enter](https://cloud.githubusercontent.com/assets/3953832/25600158/582d1fbe-2f0c-11e7-9bde-01a195a45b6c.png)
142
+
143
+
144
+ To generate controller and views we save this mind map and run
145
+
146
+ rake jinda:update
147
+
148
+ open file `app/views/products/add/enter.html.erb` you'll see some sample view already in there but commented. edit the file so it look like this
149
+
150
+
151
+ ![product_enter](https://cloud.githubusercontent.com/assets/3953832/25600363/e5cc8282-2f0d-11e7-81f7-273c9bdc1a63.png)
152
+
153
+
154
+ Note that we do not specify form_tag and submit_tag, these will be supplied by Jinda.
155
+
156
+ then open file `app/controllers/products_controller.rb` and add `create` method as follow. The method name has to be correspond to the ![bookmark](http://songrit.googlecode.com/files/bookmark.png) branch.
157
+
158
+ ![products_controller](http://songrit.googlecode.com/files/products_controller.png)
159
+
160
+ ## Testing
161
+
162
+ run following command:
163
+
164
+ rails generate jinda:rspec
165
+ guard init
166
+ guard
167
+
168
+ ![rspec](https://user-images.githubusercontent.com/3953832/34680352-7931d426-f45e-11e7-9f40-8b85b94c61bf.png)
169
+
170
+
171
+ ## Contributing
172
+
173
+ 1. Fork it
174
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
175
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
176
+ 4. Push to the branch (`git push origin my-new-feature`)
177
+ 5. Create new Pull Request
@@ -0,0 +1,3 @@
1
+ task :console do
2
+ exec 'irb -r jinda -I ./lib'
3
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "jinda"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Generate Jinda Rails Application
@@ -0,0 +1,108 @@
1
+ module Jinda
2
+ module Generators
3
+ class ConfigGenerator < Rails::Generators::Base
4
+ def self.source_root
5
+ File.dirname(__FILE__) + "/templates"
6
+ end
7
+ desc "Backup Files"
8
+ def backup_files
9
+ st=" "
10
+ # inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv "omniauth.rb", "omniauth.rb.bak") : (puts "new omniauth.rb created")}
11
+ # inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv "mongoid.rb", "omniauth.rb.bak") : (puts "new mongoid.rb created")}
12
+ (File.file? ".env") ? (FileUtils.mv ".env", ".env-bak") : (puts "backup .env")
13
+ end
14
+ desc "gen_image_store"
15
+ def gen_image_store
16
+ # FileUtils.cp "cloudinary.yml","config/cloudinary.yml"
17
+ # FileUtils.cp "dot.env",".env"
18
+ # FileUtils.cp "dot.rspec",".rspec"
19
+ empty_directory "upload" # create upload directory just in case
20
+ end
21
+ desc "Set up omniauth config"
22
+ def setup_omniauth
23
+ # gem 'bcrypt-ruby', '~> 3.0.0'
24
+ # gem 'omniauth-identity'
25
+ initializer "omniauth.rb" do
26
+ %q{
27
+ Rails.application.config.middleware.use OmniAuth::Builder do
28
+ provider :identity,
29
+ :fields => [:code, :email],
30
+ :on_failed_registration=> lambda { |env|
31
+ IdentitiesController.action(:new).call(env)
32
+ }
33
+ provider :facebook, ENV['FACEBOOK_API'], ENV['FACEBOOK_KEY']
34
+ provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
35
+ end
36
+
37
+ # https://stackoverflow.com/questions/11461084/handle-omniautherror-invalid-credentials-for-identity-login
38
+ OmniAuth.config.on_failure = Proc.new { |env|
39
+ OmniAuth::FailureEndpoint.new(env).redirect_to_failure
40
+ }
41
+
42
+ }
43
+ end
44
+ end
45
+
46
+ # gem 'ckeditor', github: 'galetahub/ckeditor'
47
+ # rails generate ckeditor:install --orm=mongoid --backend=paperclip
48
+ desc "Set up setup_ckeditor config"
49
+ def setup_ckeditor
50
+ initializer "ckeditor.rb" do
51
+ %q{# gem 'ckeditor', github: 'galetahub/ckeditor'
52
+ Ckeditor.setup do |config|
53
+ require 'ckeditor/orm/mongoid'
54
+ end
55
+ }
56
+ end
57
+ end
58
+
59
+ desc "Set up mongoid config"
60
+ def setup_mongoid
61
+ generate "mongoid:config"
62
+ inject_into_file 'config/mongoid.yml', :after => ' # raise_not_found_error: true' do
63
+ "\n raise_not_found_error: false"
64
+ end
65
+
66
+ inject_into_file 'config/mongoid.yml', :after => ' # belongs_to_required_by_default: true' do
67
+ "\n belongs_to_required_by_default: false"
68
+ end
69
+ inject_into_file 'config/mongoid.yml', :after => ' # app_name: MyApplicationName' do
70
+ "\n\nproduction:" +
71
+ "\n clients:" +
72
+ "\n default:" +
73
+ "\n uri: <%= ENV['MONGODB_URI'] %>" +
74
+ "\n options:" +
75
+ "\n raise_not_found_error: false" +
76
+ "\n belongs_to_required_by_default: false\n"
77
+ end
78
+ end
79
+
80
+ def finish
81
+ puts " configured omniauth.\n"
82
+ puts " configured setup_ckeditor.\n"
83
+ puts " configured Mongoid.\n"
84
+ puts "\n"
85
+ puts " To set user/password as admin/secret run:\n"
86
+ puts "-----------------------------------------\n"
87
+ puts "rails jinda:seed\n"
88
+ puts "-----------------------------------------\n"
89
+ puts " To test with rspec run:"
90
+ puts "-----------------------------------------\n"
91
+ puts "rspec\n"
92
+ puts "-----------------------------------------\n"
93
+ puts " To config rspec run:"
94
+ puts "rails g jinda:rspec\n"
95
+ puts "run $chromediver for Capybara & Chrome\n"
96
+ puts "-----------------------------------------\n"
97
+ puts " To config minitest run:"
98
+ puts "-----------------------------------------\n"
99
+ puts "rails g jinda:minitest\n"
100
+ puts "-----------------------------------------\n"
101
+ puts " To login with facebook"
102
+ puts "-----------------------------------------\n"
103
+ puts "Please config. in .env or restore from .env-bak \n"
104
+ puts "-----------------------------------------\n"
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,206 @@
1
+ module Jinda
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ desc "Install jinda component to existing Rails app "
5
+ def self.source_root
6
+ File.dirname(__FILE__) + "/templates"
7
+ end
8
+
9
+ def setup_gems
10
+ gem 'maruku', '~> 0.7.3'
11
+ gem 'rouge'
12
+ gem 'normalize-rails'
13
+ gem 'font-awesome-rails'
14
+ gem 'font-awesome-sass'
15
+ gem 'ckeditor', github: 'galetahub/ckeditor'
16
+ gem 'mongoid-paperclip', require: 'mongoid_paperclip'
17
+ gem 'meta-tags'
18
+ gem 'jquery-turbolinks'
19
+ gem 'mongo', '2.11.3'
20
+ gem 'bson', '4.4.2'
21
+ gem 'mongoid', '7.1.0.rc0'
22
+ gem 'nokogiri' # use for jinda/doc
23
+ gem 'haml'
24
+ gem 'haml-rails'
25
+ gem 'mail'
26
+ gem 'prawn'
27
+ gem 'redcarpet'
28
+ gem 'bcrypt'
29
+ gem 'omniauth-oauth2', '1.6.0'
30
+ gem 'omniauth-identity', '~> 1.1.1'
31
+ gem 'omniauth-facebook', '6.0.0'
32
+ gem 'omniauth-google-oauth2', '0.8.0'
33
+ gem 'dotenv-rails'
34
+ gem 'cloudinary'
35
+ gem 'kaminari', '1.2.0'
36
+ gem 'kaminari-mongoid', '1.0.1'
37
+ gem 'jquery-rails', '4.3.5'
38
+ gem_group :development, :test do
39
+ gem 'rspec'
40
+ gem 'rspec-rails'
41
+ gem 'better_errors'
42
+ gem 'binding_of_caller'
43
+ gem 'pry-byebug'
44
+ gem 'factory_bot_rails'
45
+ gem 'database_cleaner'
46
+ gem 'guard'
47
+ gem 'guard-rspec'
48
+ gem 'guard-minitest'
49
+ gem 'capybara'
50
+ gem 'selenium-webdriver'
51
+ gem 'rb-fsevent'
52
+ gem 'valid_attribute'
53
+ gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
54
+ end
55
+ end
56
+
57
+ def setup_app
58
+ # inside("public") { run "FileUtils.mv index.html index.html.bak" }
59
+ inside("db") {(File.file? "seeds.rb") ? (FileUtils.mv "seeds.rb", "seeds.rb.bak") : ( say "no seeds.rb", :green)}
60
+ inside("app/views/layouts") {(File.file? "application.html.erb") ? (FileUtils.mv 'application.html.erb', 'application.html.erb.bak') : ( say "no app/views/layout/ application.html.erb", :blue )}
61
+ inside("app/controllers") {(File.file? "application_controller.rb") ? (FileUtils.mv 'application_controller.rb', 'application_controller.rb.bak' ) : ( say "no app/controller/application_controller.rb, :blue ")}
62
+ inside("app/helpers") {(File.file? "application_helper.rb") ? (FileUtils.mv 'application_helper.rb', 'application_helper.rb.bak') : ( say "no app/helpers/application_helper.rb", :blue)}
63
+ inside("app/assets/javascripts") {(File.file? 'application.js') ? (FileUtils.mv 'application.js', 'application.js.bak') : ( say "no application.js", :blue)}
64
+ inside("app/assets/stylesheets") {(File.file? "application.css") ? (FileUtils.mv 'application.css', 'application.css.bak') : ( say "no application.css", :blue)}
65
+ inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv 'omniauth.rb', 'omniauth.rb.bak') : (say "no omniauth.rb", :blue)}
66
+ # inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv 'mongoid.rb', 'mongoid.rb.bak') : (say "no mongoid.rb")}
67
+ # inside("config/initializers") {(File.file? "ckeditor.rb") ? (FileUtils.mv 'ckeditor.rb ckeditor.rb.bak') : (say "no ckeditor.rb ")}
68
+ inside("app/assets/config") {(File.file? "manifest.js") ? (FileUtils.mv "manifest.js", "manifest.js-rails") : (puts "backup to manifest.js-rails")}
69
+ directory "app"
70
+ directory "spec"
71
+ directory "db"
72
+ directory "config"
73
+ directory "dot"
74
+ #
75
+ # CHECK IF EXISTING CODE THEN REQUIRED MANUAL MIGRATION
76
+ # If no javascripts.js or css (New application), then can use javascript.js or css from org files.
77
+ # inside("app/assets/javascripts") {(File.file? "application.js") ? ( say "Please include application-org.js in application.js", :red) : (FileUtils.mv 'application-org.js', 'application.js')}
78
+ # inside("app/assets/stylesheets") {(File.file? "application.css") ? ( say "Please include application-org.css in application.css", :red) : (FileUtils.mv 'application-org.css', 'application.css')}
79
+ # inside("app/assets/stylesheets") {(File.file? "application.css.scss") ? ( say "Please include application-org.css.scss in application.css.scss", :red) : (FileUtils.mv 'application-org.css.scss', 'application.css.scss')}
80
+ inside("app/controllers") {(File.file? "application_controller.rb") ? ( say "Pleas merge existing jinda_org/application_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/application_controller.rb', 'application_controller.rb')}
81
+ inside("app/controllers") {(File.file? "admins_controller.rb") ? ( say "Please merge existing jinda_org/admins_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/admins_controller.rb', 'admins_controller.rb')}
82
+ inside("app/controllers") {(File.file? "articles_controller.rb") ? ( say "Please merge existing jinda_org/articles_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/articles_controller.rb', 'articles_controller.rb')}
83
+ inside("app/controllers") {(File.file? "comments_controller.rb") ? ( say "Please merge existing jinda_org/comments_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/comments_controller.rb', 'comments_controller.rb')}
84
+ inside("app/controllers") {(File.file? "identities_controller.rb") ? ( say "Please merge existing jinda_org/identities_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/identities_controller.rb', 'identities_controller.rb')}
85
+ inside("app/controllers") {(File.file? "jinda_controller.rb") ? ( say "Please merge existing jinda_org/jinda_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/jinda_controller.rb', 'jinda_controller.rb')}
86
+ inside("app/controllers") {(File.file? "password_resets_controller.rb") ? ( say "Please merge existing jinda_org/password_resets_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/password_resets_controller.rb', 'password_resets_controller.rb')}
87
+ inside("app/controllers") {(File.file? "password_resets.rb") ? ( say "Please merge existing jinda_org/password_resets.rb after this installation", :red) : (FileUtils.mv 'jinda_org/password_resets.rb', 'password_resets.rb')}
88
+ inside("app/controllers") {(File.file? "sessions_controller.rb") ? ( say "Please merge existing jinda_org/sessions_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sessions_controller.rb', 'sessions_controller.rb')}
89
+ inside("app/controllers") {(File.file? "users_controller.rb") ? ( say "Please merge existing jinda_org/users_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/users_controller.rb', 'users_controller.rb')}
90
+ inside("app/controllers") {(File.file? "sitemap_controller.rb") ? ( say "Please merge existing jinda_org/sitemap_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/sitemap_controller.rb', 'sitemap_controller.rb')}
91
+ inside("app/controllers") {(File.file? "notes_controller.rb") ? ( say "Please merge existing jinda_org/notes_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/notes_controller.rb', 'notes_controller.rb')}
92
+ end
93
+ # routes created each line as reversed order button up in routes
94
+
95
+ def setup_routes
96
+ route "root :to => 'jinda#index'"
97
+ route "mount Ckeditor::Engine => '/ckeditor'"
98
+ route "resources :users"
99
+ route "resources :identities"
100
+ route "resources :sessions"
101
+ route "resources :password_resets"
102
+ route "post '/auth/:provider/callback' => 'sessions#create'"
103
+ route "get '/auth/:provider/callback' => 'sessions#create'"
104
+ route "get '/auth/failure' => 'sessions#failure'"
105
+ route "get '/logout' => 'sessions#destroy', :as => 'logout'"
106
+ route "get ':controller(/:action(/:id))(.:format)'"
107
+ route "post ':controller(/:action(/:id))(.:format)'"
108
+ end
109
+
110
+ def setup_env
111
+ FileUtils.mv "README.md", "README.md.bak"
112
+ create_file 'README.md', ''
113
+ # FileUtils.mv 'install.sh', 'install.sh'
114
+ # inject_into_file 'config/application.rb', :after => 'require "active_resource/railtie"' do
115
+ # inject_into_file 'config/application.rb', :after => 'require "rails"' do
116
+ # "\nrequire 'rexml/document'\n"+
117
+ # "\nrequire 'mongoid/railtie'\n"
118
+ # end
119
+ application do
120
+ %q{
121
+ # Jinda default
122
+ config.generators do |g|
123
+ g.orm :mongoid
124
+ g.template_engine :haml
125
+ g.test_framework :rspec
126
+ g.integration_tool :rspec
127
+ end
128
+
129
+ # config time zone
130
+ # config.time_zone = "Central Time (US & Canada)"
131
+
132
+ # gmail config
133
+ # config.action_mailer.delivery_method = :smtp
134
+ # config.action_mailer.smtp_settings = {
135
+ # :address => "smtp.gmail.com",
136
+ # :port => 587,
137
+ # :user_name => 'user@gmail.com',
138
+ # :password => 'secret',
139
+ # :authentication => 'plain',
140
+ # :enable_starttls_auto => true }
141
+ # config.action_mailer.raise_delivery_errors = true
142
+ # config.action_mailer.perform_deliveries = true
143
+ }
144
+ end
145
+ initializer "jinda.rb" do
146
+ %q{# encoding: utf-8
147
+ MM = "#{Rails.root}/app/jinda/index.mm"
148
+ DEFAULT_TITLE = 'Jinda'
149
+ DEFAULT_HEADER = 'Jinda'
150
+ DEFAULT_DESCRIPTION = 'Rails Application Generator'
151
+ DEFAULT_KEYWORDS = %w[Jinda Rails ruby Generator, Prateep Kul]
152
+ GMAP = false
153
+ # ADSENSE = true
154
+ NEXT = "Next >"
155
+ # comment IMAGE_LOCATION to use cloudinary (specify params in config/cloudinary.yml)
156
+ IMAGE_LOCATION = "upload"
157
+ # for debugging
158
+ # DONT_SEND_MAIL = true
159
+ }
160
+ end
161
+
162
+ initializer "mongoid.rb" do
163
+ %q{# encoding: utf-8
164
+ #
165
+ # Mongoid 6 follows the new pattern of AR5 requiring a belongs_to relation to always require its parent
166
+ # belongs_to` will now trigger a validation error by default if the association is not present.
167
+ # You can turn this off on a per-association basis with `optional: true`.
168
+ # (Note this new default only applies to new Rails apps that will be generated with
169
+ # `config.active_record.belongs_to_required_by_default = true` in initializer.)
170
+ #
171
+ Mongoid::Config.belongs_to_required_by_default = false
172
+ }
173
+ end
174
+
175
+ inject_into_file 'config/environment.rb', :after => "initialize!" do
176
+ "\n\n# hack to fix cloudinary error https://github.com/archiloque/rest-client/issues/141" +
177
+ "\nclass Hash\n remove_method :read\nrescue\nend"
178
+ end
179
+ inject_into_file 'config/environments/development.rb', :after => 'config.action_mailer.raise_delivery_errors = false' do
180
+ "\n config.action_mailer.default_url_options = { :host => 'localhost:3000' }"
181
+ end
182
+ inject_into_file 'config/environments/production.rb', :after => 'config.assets.compile = false' do
183
+ "\n config.assets.compile = true"
184
+ end
185
+ inject_into_file 'config/initializers/assets.rb', :after => '# Precompile additional assets.
186
+ ' do
187
+ "Rails.application.config.assets.precompile += %w( sarabun.css )" +
188
+ "\nRails.application.config.assets.precompile += %w( disable_enter_key.js )\n"
189
+ end
190
+ end
191
+
192
+ def finish
193
+ say "\n"
194
+ say "Jinda gem ready for next configuration install.\n"
195
+ say " (or short cut with sh install.sh)\n"
196
+ say "Normally you will use the following command:\n"
197
+ say "----------------------------------------\n"
198
+ say "bundle install\n"
199
+ say "rails generate jinda:config\n"
200
+ say "rake jinda:seed\n"
201
+ say
202
+ say "----------------------------------------\n"
203
+ end
204
+ end
205
+ end
206
+ end