jinda 0.7.7.4 → 1.0.0

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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -29
  3. data/Rakefile +103 -1
  4. data/app/assets/config/manifest.js +4 -1
  5. data/app/assets/javascripts/jinda_bootstrap.js +20 -0
  6. data/app/assets/stylesheets/_jinda_bootstrap_theme.scss +190 -0
  7. data/{lib/generators/jinda/templates/app/assets/stylesheets/jinda_jqm.css.scss → app/assets/stylesheets/jinda_bootstrap.css.scss} +12 -10
  8. data/app/config/routes.rb +38 -28
  9. data/app/controllers/concerns/jinda_general_concern.rb +86 -87
  10. data/app/controllers/concerns/jinda_run_concern.rb +184 -184
  11. data/app/controllers/jinda_controller.rb +23 -22
  12. data/bin/lint_modified +21 -0
  13. data/config/routes.rb +41 -22
  14. data/lib/generators/jinda/config_generator.rb +102 -81
  15. data/lib/generators/jinda/install_generator.rb +305 -148
  16. data/lib/generators/jinda/install_generator.rb.bak2 +268 -0
  17. data/lib/generators/jinda/installer/gems_install.rb +125 -127
  18. data/lib/generators/jinda/minitest_generator.rb +19 -18
  19. data/lib/generators/jinda/rspec_generator.rb +15 -14
  20. data/lib/generators/jinda/templates/DOCKER.md +188 -0
  21. data/lib/generators/jinda/templates/Dockerfile +15 -5
  22. data/lib/generators/jinda/templates/README.md +3 -3
  23. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  24. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
  25. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +2 -0
  26. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +2 -0
  27. data/{test/dummy → lib/generators/jinda/templates}/app/controllers/adminltes_controller.rb +1 -0
  28. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +80 -78
  29. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +4 -2
  30. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +11 -9
  31. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +40 -44
  32. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +10 -8
  33. data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +23 -24
  34. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +3 -1
  35. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +25 -27
  36. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +16 -18
  37. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +13 -14
  38. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +4 -4
  39. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +14 -14
  40. data/lib/generators/jinda/templates/app/controllers/mindmap_editor_controller.rb +74 -0
  41. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  42. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +21 -20
  43. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  44. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  45. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  46. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  47. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  48. data/lib/generators/jinda/templates/app/helpers/mindmap_editor_helper.rb +3 -0
  49. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  50. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  51. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  52. data/lib/generators/jinda/templates/app/jinda/index.mm +276 -298
  53. data/lib/generators/jinda/templates/app/jinda/template/index.mm +1 -0
  54. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +5 -3
  55. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +6 -4
  56. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +5 -5
  57. data/lib/generators/jinda/templates/app/models/address.rb +10 -8
  58. data/lib/generators/jinda/templates/app/models/article.rb +8 -6
  59. data/lib/generators/jinda/templates/app/models/comment.rb +10 -8
  60. data/lib/generators/jinda/templates/app/models/identity.rb +11 -10
  61. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -33
  62. data/lib/generators/jinda/templates/app/models/jinda/jinda_module.rb +15 -0
  63. data/lib/generators/jinda/templates/app/models/jinda/module.rb +14 -10
  64. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +15 -11
  65. data/lib/generators/jinda/templates/app/models/jinda/role.rb +11 -7
  66. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +23 -20
  67. data/lib/generators/jinda/templates/app/models/jinda/service.rb +19 -15
  68. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +42 -36
  69. data/lib/generators/jinda/templates/app/models/note.rb +14 -10
  70. data/lib/generators/jinda/templates/app/models/param.rb +23 -20
  71. data/lib/generators/jinda/templates/app/models/person.rb +9 -7
  72. data/lib/generators/jinda/templates/app/models/user.rb +42 -41
  73. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +2 -2
  74. data/lib/generators/jinda/templates/app/views/identities/new.html.haml +13 -0
  75. data/lib/generators/jinda/templates/app/views/jinda/_static_bootstrap.haml +23 -0
  76. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +15 -13
  77. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -2
  78. data/lib/generators/jinda/templates/app/views/layouts/application.haml +31 -4
  79. data/lib/generators/jinda/templates/app/views/layouts/lte/_header.haml +54 -0
  80. data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_sidebar.haml +1 -1
  81. data/lib/generators/jinda/templates/app/views/mindmap_editor/edit.html.haml +126 -0
  82. data/lib/generators/jinda/templates/app/views/mindmap_editor/save.html.haml +2 -0
  83. data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +13 -0
  84. data/lib/generators/jinda/templates/bin/lint_modified +21 -0
  85. data/lib/generators/jinda/templates/config/mongoid.yml +3 -3
  86. data/lib/generators/jinda/templates/config/mongoid.yml-docker +3 -3
  87. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +3 -3
  88. data/lib/generators/jinda/templates/docker-compose-mongodb.yml +13 -0
  89. data/lib/generators/jinda/templates/docker-compose-web.yml +36 -0
  90. data/lib/generators/jinda/templates/docker-compose.yml +10 -14
  91. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +15 -14
  92. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +9 -4
  93. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +4 -3
  94. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +82 -90
  95. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +12 -15
  96. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +5 -8
  97. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +3 -5
  98. data/lib/generators/jinda/templates/spec/models/note_spec.rb +36 -35
  99. data/lib/generators/jinda/templates/spec/models/user_spec.rb +10 -8
  100. data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -31
  101. data/lib/generators/jinda/templates/spec/spec_helper.rb +19 -17
  102. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +8 -7
  103. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +3 -1
  104. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +7 -5
  105. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +14 -19
  106. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +3 -1
  107. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  108. data/lib/generators/jinda/templates/test/application_system_test_case.rb +3 -1
  109. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +16 -21
  110. data/lib/generators/jinda/templates/test/test_helper.rb +7 -3
  111. data/lib/jinda/date_helpers.rb +50 -41
  112. data/lib/jinda/gem_helpers.rb +10 -8
  113. data/lib/jinda/gen_class.rb +14 -12
  114. data/lib/jinda/gen_controller.rb +9 -8
  115. data/lib/jinda/gen_freemind.rb +33 -32
  116. data/lib/jinda/gen_helpers.rb +146 -139
  117. data/lib/jinda/gen_models.rb +125 -131
  118. data/lib/jinda/gen_modules.rb +21 -16
  119. data/lib/jinda/gen_runseq.rb +71 -67
  120. data/lib/jinda/gen_services.rb +74 -80
  121. data/lib/jinda/gen_xmain.rb +38 -36
  122. data/lib/jinda/get_app.rb +31 -29
  123. data/lib/jinda/helpers.rb +4 -4
  124. data/lib/jinda/init_vars.rb +41 -36
  125. data/lib/jinda/mindmap_converter.rb +196 -0
  126. data/lib/jinda/railtie.rb +10 -2
  127. data/lib/jinda/rake_views.rb +61 -60
  128. data/lib/jinda/refresh.rb +67 -61
  129. data/lib/jinda/themes.rb +80 -60
  130. data/lib/jinda/version.rb +3 -1
  131. data/lib/jinda.rb +2 -0
  132. data/lib/tasks/jinda.rake +25 -22
  133. data/test/INTEGRATION_TEST_README.md +374 -0
  134. data/test/LOCAL_DEVELOPMENT.md +345 -0
  135. data/test/README.md +243 -0
  136. data/test/TEST_INFRASTRUCTURE.md +412 -0
  137. data/test/TEST_INSTALLATION_SH_FIXES.md +205 -0
  138. data/test/UNIT_TESTS_README.md +366 -0
  139. data/test/api_notes_controller_test.rb +231 -0
  140. data/test/dummy/DOCKER.md +188 -0
  141. data/test/dummy/Dockerfile +15 -7
  142. data/test/dummy/Gemfile +38 -29
  143. data/test/dummy/Gemfile.lock +671 -292
  144. data/test/dummy/app/assets/config/manifest.js +4 -0
  145. data/test/dummy/app/channels/application_cable/channel.rb +2 -0
  146. data/test/dummy/app/channels/application_cable/connection.rb +2 -0
  147. data/test/dummy/app/controllers/admins_controller.rb +4 -2
  148. data/test/dummy/app/controllers/api/v1/notes_controller.rb +80 -78
  149. data/test/dummy/app/controllers/application_controller.rb +11 -9
  150. data/test/dummy/app/controllers/articles_controller.rb +40 -44
  151. data/test/dummy/app/controllers/comments_controller.rb +10 -8
  152. data/test/dummy/app/controllers/ctrs_controller.rb +2 -0
  153. data/test/dummy/app/controllers/devs_controller.rb +2 -0
  154. data/test/dummy/app/controllers/docs_controller.rb +23 -24
  155. data/test/dummy/app/controllers/identities_controller.rb +3 -1
  156. data/test/dummy/app/controllers/mindmap_editor_controller.rb +74 -0
  157. data/test/dummy/app/controllers/notes_controller.rb +25 -27
  158. data/test/dummy/app/controllers/password_resets_controller.rb +16 -18
  159. data/test/dummy/app/controllers/sessions_controller.rb +13 -14
  160. data/test/dummy/app/controllers/sitemap_controller.rb +4 -4
  161. data/test/dummy/app/controllers/users_controller.rb +14 -14
  162. data/test/dummy/app/helpers/admins_helper.rb +2 -0
  163. data/test/dummy/app/helpers/application_helper.rb +21 -20
  164. data/test/dummy/app/helpers/articles_helper.rb +2 -0
  165. data/test/dummy/app/helpers/basic_helper.rb +2 -0
  166. data/test/dummy/app/helpers/comments_helper.rb +2 -0
  167. data/test/dummy/app/helpers/ctrs_helper.rb +2 -0
  168. data/test/dummy/app/helpers/devs_helper.rb +2 -0
  169. data/test/dummy/app/helpers/mindmap_editor_helper.rb +3 -0
  170. data/test/dummy/app/helpers/pictures_helper.rb +2 -0
  171. data/test/dummy/app/helpers/sitemap_helper.rb +2 -0
  172. data/test/dummy/app/helpers/users_helper.rb +2 -0
  173. data/test/dummy/app/jinda/index.mm +384 -486
  174. data/test/dummy/app/jinda/template/index.mm +1 -0
  175. data/test/dummy/app/mailers/application_mailer.rb +2 -2
  176. data/test/dummy/app/mailers/application_mailer.rb-org +4 -0
  177. data/test/dummy/app/mailers/jinda_mailer.rb +5 -3
  178. data/test/dummy/app/mailers/note_mailer.rb +6 -4
  179. data/test/dummy/app/mailers/user_mailer.rb +5 -5
  180. data/test/dummy/app/models/address.rb +2 -0
  181. data/test/dummy/app/models/article.rb +2 -0
  182. data/test/dummy/app/models/comment.rb +3 -2
  183. data/test/dummy/app/models/identity.rb +11 -10
  184. data/test/dummy/app/models/jinda/doc.rb +36 -33
  185. data/test/dummy/app/models/jinda/jinda_module.rb +15 -0
  186. data/test/dummy/app/models/jinda/module.rb +14 -10
  187. data/test/dummy/app/models/jinda/notice.rb +15 -11
  188. data/test/dummy/app/models/jinda/role.rb +11 -7
  189. data/test/dummy/app/models/jinda/runseq.rb +23 -20
  190. data/test/dummy/app/models/jinda/service.rb +19 -15
  191. data/test/dummy/app/models/jinda/xmain.rb +42 -36
  192. data/test/dummy/app/models/note.rb +3 -8
  193. data/test/dummy/app/models/param.rb +23 -20
  194. data/test/dummy/app/models/person.rb +2 -0
  195. data/test/dummy/app/models/picture.rb +11 -0
  196. data/test/dummy/app/models/user.rb +42 -41
  197. data/test/dummy/app/views/admins/index.haml +21 -0
  198. data/test/dummy/app/views/api/v1/notes/delete/select_note.html.erb +21 -0
  199. data/test/dummy/app/views/api/v1/notes/edit/edit_note.html.erb +21 -0
  200. data/test/dummy/app/views/api/v1/notes/index.haml +21 -0
  201. data/test/dummy/app/views/api/v1/notes/new/new_note.html.erb +21 -0
  202. data/test/dummy/app/views/articles/show.html.haml +2 -2
  203. data/test/dummy/app/views/devs/index.haml +21 -0
  204. data/test/dummy/app/views/jinda/feed.rss.builder +15 -13
  205. data/test/dummy/app/views/jinda/index.html.haml +3 -2
  206. data/test/dummy/app/views/layouts/application.haml +2 -2
  207. data/test/dummy/app/views/mindmap_editor/edit.html.haml +126 -0
  208. data/test/dummy/app/views/mindmap_editor/save.html.haml +2 -0
  209. data/test/dummy/bin/docker-entrypoint +3 -0
  210. data/test/dummy/bin/lint_modified +21 -0
  211. data/test/dummy/bin/setup +1 -1
  212. data/test/dummy/config/application.rb +7 -2
  213. data/test/dummy/config/boot.rb +2 -1
  214. data/test/dummy/config/cable.yml +1 -1
  215. data/test/dummy/config/credentials.yml.enc +1 -1
  216. data/test/dummy/config/environments/development.rb +7 -1
  217. data/test/dummy/config/environments/production.rb +30 -26
  218. data/test/dummy/config/environments/test.rb +12 -8
  219. data/test/dummy/config/initializers/content_security_policy.rb +2 -2
  220. data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -3
  221. data/test/dummy/config/initializers/mindmap_converter.rb +5 -0
  222. data/test/dummy/config/initializers/mongoid.rb +24 -9
  223. data/test/dummy/config/initializers/omniauth.rb +5 -0
  224. data/test/dummy/config/initializers/permissions_policy.rb +11 -9
  225. data/test/dummy/config/locales/en.yml +11 -13
  226. data/test/dummy/config/mongoid.yml +172 -53
  227. data/test/dummy/config/mongoid.yml-docker +3 -3
  228. data/test/dummy/config/mongoid.yml-localhost +3 -3
  229. data/test/dummy/config/puma.rb +21 -20
  230. data/test/dummy/config/routes.rb +7 -1
  231. data/test/dummy/docker-compose-mongodb.yml +13 -0
  232. data/test/dummy/docker-compose-web.yml +36 -0
  233. data/test/dummy/docker-compose.yml +10 -18
  234. data/test/dummy/log/development.log +5834 -2261
  235. data/test/dummy/spec/controllers/api/v1_get_index_spec.rb +15 -14
  236. data/test/dummy/spec/controllers/api/v1_get_my_spec.rb +9 -4
  237. data/test/dummy/spec/controllers/api/v1_post_spec.rb +4 -3
  238. data/test/dummy/spec/controllers/sessions_controller_spec.rb +82 -90
  239. data/test/dummy/spec/factories/pictures.rb +5 -0
  240. data/test/dummy/spec/features/userlogins_spec.rb +12 -15
  241. data/test/dummy/spec/mailers/note_spec.rb +5 -8
  242. data/test/dummy/spec/mailers/previews/note_preview.rb +3 -5
  243. data/test/dummy/spec/models/note_spec.rb +36 -35
  244. data/test/dummy/spec/models/picture_spec.rb +5 -0
  245. data/test/dummy/spec/models/user_spec.rb +10 -8
  246. data/test/dummy/spec/rails_helper.rb +29 -31
  247. data/test/dummy/spec/requests/ctrs_spec.rb +7 -0
  248. data/test/dummy/spec/requests/devs_spec.rb +7 -0
  249. data/test/dummy/spec/spec_helper.rb +19 -17
  250. data/test/dummy/spec/support/authentication_helper.rb +8 -7
  251. data/test/dummy/spec/support/databasecleaner.rb +3 -1
  252. data/test/dummy/spec/support/factory_bot.rb +7 -5
  253. data/test/dummy/spec/support/omniauth_macros.rb +14 -19
  254. data/test/dummy/spec/support/request_spec_helper.rb +3 -1
  255. data/test/dummy/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  256. data/test/generated_app_test.rb +261 -0
  257. data/test/installation_test.rb +368 -0
  258. data/test/integration_test.rb +398 -0
  259. data/test/jenkins_stage_test.rb +182 -0
  260. data/test/note_model_test.rb +224 -0
  261. data/test/note_validation_integration_test.rb +292 -0
  262. data/test/run_unit_tests.sh +91 -0
  263. data/test/test_helper.rb +8 -16
  264. metadata +188 -60
  265. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +0 -15
  266. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +0 -28
  267. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -10
  268. data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +0 -19
  269. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +0 -7
  270. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -147
  271. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -47
  272. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +0 -34
  273. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -155
  274. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -47
  275. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -9
  276. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -33
  277. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -16
  278. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -4
  279. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -13
  280. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -3
  281. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -1
  282. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -1
  283. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -13
  284. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -31
  285. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -22
  286. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -22
  287. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +0 -14
  288. data/test/dummy/Guardfile +0 -96
  289. data/test/dummy/app/controllers/application_controller.rb.bak +0 -2
  290. data/test/dummy/app/controllers/password_resets.rb +0 -28
  291. data/test/dummy/app/helpers/application_helper.rb.bak +0 -2
  292. data/test/dummy/app/views/identities/new-bak.html.haml +0 -32
  293. data/test/dummy/app/views/layouts/application.haml.bak +0 -4
  294. data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
  295. data/test/dummy/app/views/layouts/lte/_header.haml +0 -111
  296. data/test/dummy/app/views/layouts/lte/_rightbar.haml +0 -123
  297. data/test/dummy/app/views/sessions/new-bak.html.haml +0 -22
  298. data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
  299. data/test/dummy/tmp/development_secret.txt +0 -1
  300. data/test/integration/navigation_test.rb +0 -7
  301. data/test/jinda_test.rb +0 -7
  302. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/application.scss +0 -0
  303. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/jinda.scss +0 -0
  304. /data/lib/generators/jinda/templates/app/mailers/{application_mailer.rb → application_mailer.rb-org} +0 -0
  305. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard1.haml +0 -0
  306. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard2.haml +0 -0
  307. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_flash.haml +0 -0
  308. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_footer.haml +0 -0
  309. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu.haml +0 -0
  310. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu_mm.haml +0 -0
  311. /data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_rightbar.haml +0 -0
@@ -1,141 +1,148 @@
1
+ # frozen_string_literal: true
1
2
 
3
+ ########################################################################
4
+ # Methods to be overrided by gemhelp #
5
+ # for Rspec Test
6
+ ########################################################################
7
+ def gen_view_file_exist?(dir)
8
+ File.exist?(dir)
9
+ end
2
10
 
3
- ########################################################################
4
- # Methods to be overrided by gemhelp #
5
- # for Rspec Test
6
- ########################################################################
7
- def gen_view_file_exist?(dir)
8
- File.exists?(dir)
9
- end
10
-
11
- def gen_view_mkdir(dir,t)
12
- FileUtils.mkdir_p(dir) unless File.exists?(dir)
13
- t << "create directory #{dir}"
14
- end
15
-
16
- def gen_view_createfile(s,f,t)
17
- FileUtils.cp s,f
18
- # FileUtils.cp "app/jinda/template/linkview.haml",f
19
- t << "create file #{f}"
20
- end
21
- ########################################################################
22
-
23
- def controller_exists?(modul)
24
- File.exists? "#{Rails.root}/app/controllers/#{modul}_controller.rb"
25
- end
26
- def dup_hash(a)
27
- h = Hash.new(0)
28
- a.each do |aa|
29
- h[aa] += 1
30
- end
31
- return h
32
- end
33
- def login?
34
- ## To use remember me cookies then remove
35
- #session[:user_id] != nil
36
- current_ma_user != nil
37
- #cookies[:auth_token] != nil
38
- end
39
- def own_xmain?
40
- if $xmain
41
- return current_ma_user.id==$xvars['user_id']
42
- else
43
- # if eval on first step would return true so user can start service
44
- return true
45
- end
46
- end
47
- # return nil or value of opt: if provided
48
- def get_option_xml(opt, xml)
49
- if xml
50
- url=''
51
- xml.each_element('node') do |n|
52
- text= n.attributes['TEXT']
53
- # check if opt match from beginning of text
54
- url= text if text =~/^#{opt}/
55
- end
56
- return nil if url.blank?
57
- c, h= url.split(':', 2)
58
- opt= h ? h.strip : true
59
- else
60
- return nil
61
- end
62
- end
63
- def m_icon(node)
64
- mcons=[]
65
- node.each_element("icon") do |mn|
66
- mcons << mn.attributes["BUILTIN"]
67
- end
68
- ticon = mcons[0].to_s
69
- return ticon
70
- end
71
-
72
- # Option to unlisted in the menu_mm if icon 'button_cancel'
73
- def listed(node)
74
- icons=[]
75
- node.each_element("icon") do |nn|
76
- icons << nn.attributes["BUILTIN"]
77
- end
78
-
79
- return !icons.include?("button_cancel")
80
- end
81
- def ma_secured?(node)
82
- icons=[]
83
- node.each_element("icon") do |nn|
84
- icons << nn.attributes["BUILTIN"]
85
- end
86
- return icons.include?("password")
87
- end
88
- def ma_menu?
89
- icons=[]
90
- node.each_element("icon") do |mn|
91
- icons << mn.attributes["BUILTIN"]
92
- end
93
- return icons.include?("menu")
94
- end
95
-
96
- def freemind2action(s)
97
- case s.downcase
98
- #when 'bookmark' # Excellent
99
- # 'call'
100
- when 'bookmark' # Excellent
101
- 'do'
102
- when 'attach' # Look here
103
- 'form'
104
- when 'edit' # Refine
105
- 'pdf'
106
- when 'wizard' # Magic
107
- 'ws'
108
- when 'help' # Question
109
- 'if'
110
- when 'forward' # Forward
111
- # 'redirect'
112
- 'direct_to'
113
- when 'kaddressbook' #Phone
114
- 'invoke' # invoke new service along the way
115
- when 'idea' # output
116
- 'output'
117
- when 'list' # List
118
- 'list'
119
- when 'folder' # Folder
120
- 'folder'
121
- when 'mail'
122
- 'mail'
123
- # when 'xmag' # Tobe discussed
124
- when 'To be discusssed'
125
- 'search'
126
- end
127
- end
128
- def affirm(s)
129
- return s =~ /[y|yes|t|true]/i ? true : false
130
- end
131
- def negate(s)
132
- return s =~ /[n|no|f|false]/i ? true : false
133
- end
134
-
135
- # module FormBuilder
136
- # def date_field(method, options = {})
137
- # default= self.object.send(method) || Date.today
138
- # data_options= ({"mode"=>"calbox"}).merge(options)
139
- # %Q(<input name='#{self.object_name}[#{method}]' id='#{self.object_name}_#{method}' value='#{default.strftime("%F")}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>).html_safe
140
- # end
141
- # end
11
+ def gen_view_mkdir(dir, t)
12
+ FileUtils.mkdir_p(dir)
13
+ t << "create directory #{dir}"
14
+ end
15
+
16
+ def gen_view_createfile(s, f, t)
17
+ FileUtils.cp s, f
18
+ # FileUtils.cp "app/jinda/template/linkview.haml",f
19
+ t << "create file #{f}"
20
+ end
21
+ ########################################################################
22
+
23
+ def controller_exists?(modul)
24
+ File.exist? Rails.root.join("app/controllers/#{modul}_controller.rb").to_s
25
+ end
26
+
27
+ def dup_hash(a)
28
+ h = Hash.new(0)
29
+ a.each do |aa|
30
+ h[aa] += 1
31
+ end
32
+ h
33
+ end
34
+
35
+ def login?
36
+ ## To use remember me cookies then remove
37
+ # session[:user_id] != nil
38
+ current_ma_user != nil
39
+ # cookies[:auth_token] != nil
40
+ end
41
+
42
+ def own_xmain?
43
+ if $xmain
44
+ current_ma_user.id == $xvars['user_id']
45
+ else
46
+ # if eval on first step would return true so user can start service
47
+ true
48
+ end
49
+ end
50
+
51
+ # return nil or value of opt: if provided
52
+ def get_option_xml(opt, xml)
53
+ return unless xml
54
+
55
+ url = ''
56
+ xml.each_element('node') do |n|
57
+ text = n.attributes['TEXT']
58
+ # check if opt match from beginning of text
59
+ url = text if /^#{opt}/.match?(text)
60
+ end
61
+ return nil if url.blank?
62
+
63
+ _, h = url.split(':', 2)
64
+ opt = h ? h.strip : true
65
+ end
66
+
67
+ def m_icon(node)
68
+ mcons = []
69
+ node.each_element('icon') do |mn|
70
+ mcons << mn.attributes['BUILTIN']
71
+ end
72
+ mcons[0].to_s
73
+ end
74
+
75
+ # Option to unlisted in the menu_mm if icon 'button_cancel'
76
+ def listed(node)
77
+ icons = []
78
+ node.each_element('icon') do |nn|
79
+ icons << nn.attributes['BUILTIN']
80
+ end
81
+
82
+ icons.exclude?('button_cancel')
83
+ end
84
+
85
+ def ma_secured?(node)
86
+ icons = []
87
+ node.each_element('icon') do |nn|
88
+ icons << nn.attributes['BUILTIN']
89
+ end
90
+ icons.include?('password')
91
+ end
92
+
93
+ def ma_menu?
94
+ icons = []
95
+ node.each_element('icon') do |mn|
96
+ icons << mn.attributes['BUILTIN']
97
+ end
98
+ icons.include?('menu')
99
+ end
100
+
101
+ def freemind2action(s)
102
+ case s.downcase
103
+ # when 'bookmark' # Excellent
104
+ # 'call'
105
+ when 'bookmark' # Excellent
106
+ 'do'
107
+ when 'attach' # Look here
108
+ 'form'
109
+ when 'edit' # Refine
110
+ 'pdf'
111
+ when 'wizard' # Magic
112
+ 'ws'
113
+ when 'help' # Question
114
+ 'if'
115
+ when 'forward' # Forward
116
+ # 'redirect'
117
+ 'direct_to'
118
+ when 'kaddressbook' # Phone
119
+ 'invoke' # invoke new service along the way
120
+ when 'idea' # output
121
+ 'output'
122
+ when 'list' # List
123
+ 'list'
124
+ when 'folder' # Folder
125
+ 'folder'
126
+ when 'mail'
127
+ 'mail'
128
+ # when 'xmag' # Tobe discussed
129
+ when 'To be discusssed'
130
+ 'search'
131
+ end
132
+ end
133
+
134
+ def affirm(s)
135
+ /[y|estru]/i.match?(s) || false
136
+ end
137
+
138
+ def negate(s)
139
+ /[n|ofalse]/i.match?(s) || false
140
+ end
141
+
142
+ # module FormBuilder
143
+ # def date_field(method, options = {})
144
+ # default= self.object.send(method) || Date.today
145
+ # data_options= ({"mode"=>"calbox"}).merge(options)
146
+ # %Q(<input name='#{self.object_name}[#{method}]' id='#{self.object_name}_#{method}' value='#{default.strftime("%F")}' type='date' data-role='datebox' data-options='#{data_options.to_json}'>).html_safe
147
+ # end
148
+ # end
@@ -1,137 +1,131 @@
1
-
2
-
3
- def process_models
4
-
5
- # app= get_app
6
- # t= ["process models"]
7
- # xml map sample from index.mm
8
- # node @CREATED=1273819432637 @ID=ID_1098419600 @MODIFIED=1334737006485 @TEXT=Jinda
9
- # node @CREATED=1273819462973 @ID=ID_282419531 @MODIFIED=1493705904561 @POSITION=right @TEXT=services
10
- # node @CREATED=1273819465949 @FOLDED=true @ID=ID_855471610 @MODIFIED=1493768913078 @POSITION=right @TEXT=roles
11
- # node @CREATED=1273819456867 @ID=ID_1677010054 @MODIFIED=1493418874718 @POSITION=left @TEXT=models
12
- # node @CREATED=1292122118499 @FOLDED=true @ID=ID_1957754752 @MODIFIED=1493705885123 @TEXT=person
13
- # node @CREATED=1292122236285 @FOLDED=true @ID=ID_959987887 @MODIFIED=1493768919147 @TEXT=address
14
- # node @CREATED=1493418879485 @ID=ID_1995497233 @MODIFIED=1493718770637 @TEXT=article
15
- # node @CREATED=1493418915637 @ID=ID_429078131 @MODIFIED=1493418930081 @TEXT=comment
16
-
17
- models= @app.elements["//node[@TEXT='models']"] || REXML::Document.new
18
- models.each_element('node') do |model|
19
- # t << "= "+model.attributes["TEXT"]
20
- model_name= model.attributes["TEXT"]
21
- next if model_name.comment?
22
- model_code= name2code(model_name)
23
- model_file= "#{Rails.root}/app/models/#{model_code}.rb"
24
-
25
- if File.exists?(model_file)
26
- doc= File.read(model_file)
27
- else
28
- system("rails generate model #{model_code}")
29
- doc= File.read(model_file)
30
- end
31
-
32
- doc = add_utf8(doc)
33
- attr_hash= make_fields(model)
34
- doc = add_jinda(doc, attr_hash)
35
- # t << "modified: #{model_file}"
36
- File.open(model_file, "w") do |f|
37
- f.puts doc
38
- end
39
-
40
- end
41
-
42
- # puts t.join("\n")
1
+ # frozen_string_literal: true
2
+
3
+ def process_models
4
+ # app= get_app
5
+ # t= ["process models"]
6
+ # xml map sample from index.mm
7
+ # node @CREATED=1273819432637 @ID=ID_1098419600 @MODIFIED=1334737006485 @TEXT=Jinda
8
+ # node @CREATED=1273819462973 @ID=ID_282419531 @MODIFIED=1493705904561 @POSITION=right @TEXT=services
9
+ # node @CREATED=1273819465949 @FOLDED=true @ID=ID_855471610 @MODIFIED=1493768913078 @POSITION=right @TEXT=roles
10
+ # node @CREATED=1273819456867 @ID=ID_1677010054 @MODIFIED=1493418874718 @POSITION=left @TEXT=models
11
+ # node @CREATED=1292122118499 @FOLDED=true @ID=ID_1957754752 @MODIFIED=1493705885123 @TEXT=person
12
+ # node @CREATED=1292122236285 @FOLDED=true @ID=ID_959987887 @MODIFIED=1493768919147 @TEXT=address
13
+ # node @CREATED=1493418879485 @ID=ID_1995497233 @MODIFIED=1493718770637 @TEXT=article
14
+ # node @CREATED=1493418915637 @ID=ID_429078131 @MODIFIED=1493418930081 @TEXT=comment
15
+
16
+ models = @app.elements["//node[@TEXT='models']"] || REXML::Document.new
17
+ models.each_element('node') do |model|
18
+ # t << "= "+model.attributes["TEXT"]
19
+ model_name = model.attributes['TEXT']
20
+ next if model_name.comment?
21
+
22
+ model_code = name2code(model_name)
23
+ model_file = Rails.root.join("app/models/#{model_code}.rb").to_s
24
+
25
+ system("rails generate model #{model_code}") unless File.exist?(model_file)
26
+ doc = File.read(model_file)
27
+
28
+ doc = add_utf8(doc)
29
+ attr_hash = make_fields(model)
30
+ doc = add_jinda(doc, attr_hash)
31
+ # t << "modified: #{model_file}"
32
+ File.open(model_file, 'w') do |f|
33
+ f.puts doc
43
34
  end
44
-
45
- def add_jinda(doc, attr_hash)
46
- if doc =~ /#{@btext}/
47
- s1,s2,s3= doc.partition(/ #{@btext}.*#{@etext}\n/m)
48
- s2= ""
49
- else
50
- s1,s2,s3= doc.partition("include Mongoid::Document\n")
51
- end
52
- doc= s1+s2+ <<-EOT
35
+ end
36
+
37
+ # puts t.join("\n")
38
+ end
39
+
40
+ def add_jinda(doc, attr_hash)
41
+ if /#{@btext}/.match?(doc)
42
+ s1, _, s3 = doc.partition(/ #{@btext}.*#{@etext}\n/m)
43
+ s2 = ''
44
+ else
45
+ s1, s2, s3 = doc.partition("include Mongoid::Document\n")
46
+ end
47
+ doc = s1 + s2 + <<-EOT
53
48
  #{@btext}
54
49
  include Mongoid::Timestamps
55
- EOT
56
-
57
- attr_hash.each do |a|
58
- # doc+= "\n*****"+a.to_s+"\n"
59
- if a[:edit]
60
- doc += " #{a[:text]}\n"
61
- else
62
- # Fixed: Capitalize only first char
63
- # doc += " field :#{a[:code]}, :type => #{a[:type].capitalize}\n"
64
- a[:type][0] = a[:type][0].capitalize
65
- doc += " field :#{a[:code]}, :type => #{a[:type]}\n"
66
- end
67
- end
68
- doc += " #{@etext}\n"
69
- doc + s3
70
- end
71
-
72
- def add_utf8(doc)
73
- unless doc =~ /encoding\s*:\s*utf-8/
74
- doc.insert 0, "# encoding: utf-8\n"
75
- else
76
- doc
77
- end
78
- end
79
-
80
- # inspect all nodes that has attached file (2 cases) and replace relative path with absolute path
81
- def make_folders_absolute(f,tt)
82
- tt.elements.each("//node") do |nn|
83
- if nn.attributes['LINK']
84
- nn.attributes['LINK']= File.expand_path(File.dirname(f))+"/#{nn.attributes['LINK']}"
85
- end
86
- end
87
- end
88
-
89
- def name2code(s)
90
- # rather not ignore # symbol cause it could be comment
91
- code, name = s.split(':')
92
- code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
93
- end
94
-
95
- def model_exists?(model)
96
- File.exists? "#{Rails.root}/app/models/#{model}.rb"
50
+ EOT
51
+
52
+ attr_hash.each do |a|
53
+ # doc+= "\n*****"+a.to_s+"\n"
54
+ if a[:edit]
55
+ doc += " #{a[:text]}\n"
56
+ else
57
+ # Fixed: Capitalize only first char
58
+ # doc += " field :#{a[:code]}, :type => #{a[:type].capitalize}\n"
59
+ a[:type][0] = a[:type][0].capitalize
60
+ doc += " field :#{a[:code]}, :type => #{a[:type]}\n"
97
61
  end
98
-
99
- def make_fields(n)
100
- # s= field string used by generate model cli (old style jinda)
101
- s= ""
102
- # h= hash :code, :type, :edit, :text
103
- h= []
104
- n.each_element('node') do |nn|
105
- text = nn.attributes['TEXT']
106
- icon = nn.elements['icon']
107
- edit= (icon && icon.attribute('BUILTIN').value=="edit")
108
- next if text.comment? && !edit
109
-
110
- # sometimes freemind puts all fields inside a blank node
111
- unless text.empty?
112
- k,v= text.split(/:\s*/,2)
113
- v ||= 'string'
114
- v= 'float' if v=~/double/i
115
- s << " #{name2code(k.strip)}:#{v.strip} "
116
- h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit, :text=>text}
117
- else
118
- nn.each_element('node') do |nnn|
119
- icon = nnn.elements['icon']
120
- edit1= (icon && icon.attribute('BUILTIN').value=="edit")
121
- text1 = nnn.attributes['TEXT']
122
- next if text1 =~ /\#.*/
123
- k,v= text1.split(/:\s*/,2)
124
- v ||= 'string'
125
- v= 'float' if v=~/double/i
126
- s << " #{name2code(k.strip)}:#{v.strip} "
127
- h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit1, :text=>text1}
128
- end
129
- end
62
+ end
63
+ doc += " #{@etext}\n"
64
+ doc + s3
65
+ end
66
+
67
+ def add_utf8(doc)
68
+ if /encoding\s*:\s*utf-8/.match?(doc)
69
+ doc
70
+ else
71
+ doc.insert 0, "# encoding: utf-8\n"
72
+ end
73
+ end
74
+
75
+ # inspect all nodes that has attached file (2 cases) and replace relative path with absolute path
76
+ def make_folders_absolute(f, tt)
77
+ tt.elements.each('//node') do |nn|
78
+ nn.attributes['LINK'] = File.expand_path(File.dirname(f)) + "/#{nn.attributes['LINK']}" if nn.attributes['LINK']
79
+ end
80
+ end
81
+
82
+ def name2code(s)
83
+ # rather not ignore # symbol cause it could be comment
84
+ code, = s.split(':')
85
+ code.downcase.strip.tr(' ', '_').gsub(%r{[^#_/a-zA-Z0-9]}, '')
86
+ end
87
+
88
+ def model_exists?(model)
89
+ File.exist? Rails.root.join("app/models/#{model}.rb").to_s
90
+ end
91
+
92
+ def make_fields(n)
93
+ # s= field string used by generate model cli (old style jinda)
94
+ s = ''
95
+ # h= hash :code, :type, :edit, :text
96
+ h = []
97
+ n.each_element('node') do |nn|
98
+ text = nn.attributes['TEXT']
99
+ icon = nn.elements['icon']
100
+ edit = icon && icon.attribute('BUILTIN').value == 'edit'
101
+ next if text.comment? && !edit
102
+
103
+ # sometimes freemind puts all fields inside a blank node
104
+ if text.empty?
105
+ nn.each_element('node') do |nnn|
106
+ icon = nnn.elements['icon']
107
+ edit1 = icon && icon.attribute('BUILTIN').value == 'edit'
108
+ text1 = nnn.attributes['TEXT']
109
+ next if /\#.*/.match?(text1)
110
+
111
+ k, v = text1.split(/:\s*/, 2)
112
+ v ||= 'string'
113
+ v = 'float' if /double/i.match?(v)
114
+ s += " #{name2code(k.strip)}:#{v.strip} "
115
+ h << { code: name2code(k.strip), type: v.strip, edit: edit1, text: text1 }
130
116
  end
131
- # f
132
- h
117
+ else
118
+ k, v = text.split(/:\s*/, 2)
119
+ v ||= 'string'
120
+ v = 'float' if /double/i.match?(v)
121
+ s += " #{name2code(k.strip)}:#{v.strip} "
122
+ h << { code: name2code(k.strip), type: v.strip, edit: edit, text: text }
133
123
  end
134
-
135
- ########################################################################
136
- # END code from jinda.rake #
137
- ########################################################################
124
+ end
125
+ # f
126
+ h
127
+ end
128
+
129
+ ########################################################################
130
+ # END code from jinda.rake #
131
+ ########################################################################
@@ -1,16 +1,21 @@
1
- # ##########################################################################
2
- # Update module from Rails
3
- # ##########################################################################
4
- def gen_module_controller
5
- # find s_controller name in Jinda::Module
6
- # if found ..
7
- # else
8
- # create
9
- # end
10
- #
11
- # MM was defined in Rails: config/initializer/jinda.rb
12
- @prefix = "spec/temp/"
13
- @tdir = "#{@prefix}app/controllers/*_controller.rb"
14
- # dir_module_names = Dir.glob("#{@prefix}app/controllers/*_controller.rb").map { |path| (path.match(/(\w+)/); $1) }
15
- dir_module_names = Dir.glob(@tdir).map {|path| (path.match(/(\w+)_controller.rb/); $1)}
16
- end
1
+ # frozen_string_literal: true
2
+
3
+ # ##########################################################################
4
+ # Update module from Rails
5
+ # ##########################################################################
6
+ def gen_module_controller
7
+ # find s_controller name in Jinda::Module
8
+ # if found ..
9
+ # else
10
+ # create
11
+ # end
12
+ #
13
+ # MM was defined in Rails: config/initializer/jinda.rb
14
+ @prefix = 'spec/temp/'
15
+ @tdir = "#{@prefix}app/controllers/*_controller.rb"
16
+ # dir_module_names = Dir.glob("#{@prefix}app/controllers/*_controller.rb").map { |path| (path.match(/(\w+)/); $1) }
17
+ Dir.glob(@tdir).map do |path|
18
+ path =~ /(\w+)_controller.rb/
19
+ Regexp.last_match(1)
20
+ end
21
+ end