gfdnavi 1.3.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 (446) hide show
  1. data/ChangeLog +10949 -0
  2. data/LICENCE.txt +57 -0
  3. data/Makefile +18 -0
  4. data/TODO +132 -0
  5. data/app/controllers/analysis_controller.rb +700 -0
  6. data/app/controllers/application.rb +41 -0
  7. data/app/controllers/draw_method_controller.rb +172 -0
  8. data/app/controllers/explorer_controller.rb +197 -0
  9. data/app/controllers/finder_controller.rb +331 -0
  10. data/app/controllers/function_controller.rb +204 -0
  11. data/app/controllers/group_controller.rb +115 -0
  12. data/app/controllers/keyword_attributes_controller.rb +52 -0
  13. data/app/controllers/knowledge_controller.rb +928 -0
  14. data/app/controllers/nodes_controller.rb +515 -0
  15. data/app/controllers/search_controller.rb +341 -0
  16. data/app/controllers/user_controller.rb +337 -0
  17. data/app/helpers/analysis_helper.rb +2 -0
  18. data/app/helpers/application_helper.rb +105 -0
  19. data/app/helpers/description_helper.rb +2 -0
  20. data/app/helpers/function_helper.rb +2 -0
  21. data/app/helpers/group_helper.rb +2 -0
  22. data/app/helpers/search_helper.rb +3 -0
  23. data/app/helpers/user_helper.rb +2 -0
  24. data/app/helpers/work_flow_helper.rb +92 -0
  25. data/app/models/actual_file.rb +3 -0
  26. data/app/models/analysis.rb +715 -0
  27. data/app/models/analysis_history.rb +42 -0
  28. data/app/models/cross_array.rb +22 -0
  29. data/app/models/cross_result.rb +254 -0
  30. data/app/models/derived_spatial_attribute.rb +3 -0
  31. data/app/models/diagram_cache.rb +16 -0
  32. data/app/models/diagram_cache_datum.rb +4 -0
  33. data/app/models/diagram_cache_session.rb +8 -0
  34. data/app/models/directory.rb +21 -0
  35. data/app/models/draw_method.rb +48 -0
  36. data/app/models/draw_method_attribute.rb +8 -0
  37. data/app/models/draw_parameter.rb +12 -0
  38. data/app/models/explorer_query.rb +354 -0
  39. data/app/models/explorer_result.rb +312 -0
  40. data/app/models/function.rb +75 -0
  41. data/app/models/function_argument.rb +6 -0
  42. data/app/models/function_output.rb +4 -0
  43. data/app/models/group.rb +153 -0
  44. data/app/models/image.rb +20 -0
  45. data/app/models/keyword_attribute.rb +179 -0
  46. data/app/models/knowledge.rb +94 -0
  47. data/app/models/knowledge_backup.rb +32 -0
  48. data/app/models/knowledge_figure.rb +16 -0
  49. data/app/models/knowledge_figure_backup.rb +16 -0
  50. data/app/models/knowledge_parser.rb +392 -0
  51. data/app/models/node.rb +605 -0
  52. data/app/models/node_entity_abstract.rb +112 -0
  53. data/app/models/node_lineage.rb +6 -0
  54. data/app/models/node_relation.rb +4 -0
  55. data/app/models/path_node.rb +60 -0
  56. data/app/models/query.rb +193 -0
  57. data/app/models/query_history.rb +12 -0
  58. data/app/models/results.rb +48 -0
  59. data/app/models/sign_up_user.rb +25 -0
  60. data/app/models/spatial_and_time_attribute.rb +11 -0
  61. data/app/models/user.rb +115 -0
  62. data/app/models/user_mailer.rb +48 -0
  63. data/app/models/value_type.rb +3 -0
  64. data/app/models/variable.rb +70 -0
  65. data/app/models/virtual_node.rb +457 -0
  66. data/app/views/analysis/__help_analysis_tab.en.html +57 -0
  67. data/app/views/analysis/__help_draw_share.en.html +12 -0
  68. data/app/views/analysis/__help_draw_tab.en.html +6 -0
  69. data/app/views/analysis/_analysis_function_settings.rhtml +61 -0
  70. data/app/views/analysis/_analysis_settings.rhtml +28 -0
  71. data/app/views/analysis/_diagram.rhtml +70 -0
  72. data/app/views/analysis/_dimension_option.rhtml +59 -0
  73. data/app/views/analysis/_draw_general_settings.rhtml +217 -0
  74. data/app/views/analysis/_draw_settings.rhtml +73 -0
  75. data/app/views/analysis/_history.rhtml +19 -0
  76. data/app/views/analysis/_popular_diagrams.rhtml +42 -0
  77. data/app/views/analysis/_save_form.rhtml +44 -0
  78. data/app/views/analysis/_variables.rhtml +66 -0
  79. data/app/views/analysis/_variables_order.rhtml +56 -0
  80. data/app/views/analysis/index.rhtml +195 -0
  81. data/app/views/analysis/preview.rhtml +3 -0
  82. data/app/views/analysis/save.rhtml +73 -0
  83. data/app/views/analysis/show_diagram.rhtml +42 -0
  84. data/app/views/cross/_display_map.rhtml +201 -0
  85. data/app/views/cross/_result.rhtml +205 -0
  86. data/app/views/cross/_show_result_tree.rhtml +40 -0
  87. data/app/views/cross/_show_results.rhtml +80 -0
  88. data/app/views/cross/_style.rhtml +21 -0
  89. data/app/views/cross/index.rhtml +271 -0
  90. data/app/views/draw_method/_edit_form.rhtml +110 -0
  91. data/app/views/draw_method/create.rhtml +8 -0
  92. data/app/views/draw_method/details.rhtml +113 -0
  93. data/app/views/draw_method/edit.rhtml +8 -0
  94. data/app/views/draw_method/list.rhtml +80 -0
  95. data/app/views/explorer/_display_map.rhtml +199 -0
  96. data/app/views/explorer/_show_result_tree.rhtml +40 -0
  97. data/app/views/explorer/_show_results.rhtml +101 -0
  98. data/app/views/explorer/_style.rhtml +21 -0
  99. data/app/views/explorer/index.rhtml +214 -0
  100. data/app/views/finder/_children.html.erb +84 -0
  101. data/app/views/finder/_children_details.html.erb +74 -0
  102. data/app/views/finder/_children_details_tr.html.erb +196 -0
  103. data/app/views/finder/create_tree.html.erb +15 -0
  104. data/app/views/finder/flex.html.erb +52 -0
  105. data/app/views/finder/index.html.erb +47 -0
  106. data/app/views/finder/show_details.html.erb +3 -0
  107. data/app/views/finder/show_images.html.erb +3 -0
  108. data/app/views/function/_edit_form.rhtml +106 -0
  109. data/app/views/function/create.rhtml +8 -0
  110. data/app/views/function/details.rhtml +96 -0
  111. data/app/views/function/edit.rhtml +8 -0
  112. data/app/views/function/list.rhtml +80 -0
  113. data/app/views/group/add_member.rhtml +13 -0
  114. data/app/views/group/change_owner.rhtml +15 -0
  115. data/app/views/group/create.rhtml +11 -0
  116. data/app/views/group/delete_member.rhtml +14 -0
  117. data/app/views/group/list.rhtml +63 -0
  118. data/app/views/knowledge/_backup.rhtml +135 -0
  119. data/app/views/knowledge/_category.rhtml +58 -0
  120. data/app/views/knowledge/_category_list.rhtml +34 -0
  121. data/app/views/knowledge/_category_table.rhtml +23 -0
  122. data/app/views/knowledge/_comment.rhtml +64 -0
  123. data/app/views/knowledge/_comment_input_form.rhtml +19 -0
  124. data/app/views/knowledge/_comments.rhtml +84 -0
  125. data/app/views/knowledge/_form.rhtml +139 -0
  126. data/app/views/knowledge/_group_figure_form.rhtml +187 -0
  127. data/app/views/knowledge/_layout_figure.rhtml +61 -0
  128. data/app/views/knowledge/_layout_figures_in_a_row_above_text.rhtml +42 -0
  129. data/app/views/knowledge/_layout_figures_under_text.rhtml +45 -0
  130. data/app/views/knowledge/_layout_one_figure_above_text.rhtml +28 -0
  131. data/app/views/knowledge/_summary.rhtml +21 -0
  132. data/app/views/knowledge/edit.rhtml +37 -0
  133. data/app/views/knowledge/list.rhtml +287 -0
  134. data/app/views/knowledge/new.rhtml +23 -0
  135. data/app/views/knowledge/new_from_analysis.rhtml +21 -0
  136. data/app/views/knowledge/show.rhtml +196 -0
  137. data/app/views/layouts/gfdnavi.rhtml +105 -0
  138. data/app/views/nodes/_ancestors.html.erb +89 -0
  139. data/app/views/nodes/_description_methods_table.html.erb +75 -0
  140. data/app/views/nodes/_mode.html.erb +16 -0
  141. data/app/views/nodes/description.html.erb +181 -0
  142. data/app/views/nodes/description_methods.html.erb +1 -0
  143. data/app/views/nodes/edit.html.erb +73 -0
  144. data/app/views/nodes/index.html.erb +25 -0
  145. data/app/views/nodes/show.html.erb +20 -0
  146. data/app/views/search/_children_details_mapsearch.rhtml +68 -0
  147. data/app/views/search/_children_details_tr.rhtml +205 -0
  148. data/app/views/search/_show_grouplist.rhtml +74 -0
  149. data/app/views/search/_show_results.rhtml +43 -0
  150. data/app/views/search/_show_results_global.rhtml +36 -0
  151. data/app/views/search/_show_results_partial.rhtml +39 -0
  152. data/app/views/search/_show_results_partial_groupbyfile.rhtml +50 -0
  153. data/app/views/search/_show_variablelist.rhtml +28 -0
  154. data/app/views/search/mapsearch.rhtml +176 -0
  155. data/app/views/search/remapsearch.rjs +18 -0
  156. data/app/views/search/show_details.rhtml +3 -0
  157. data/app/views/user/add_user.rhtml +30 -0
  158. data/app/views/user/change_password.rhtml +25 -0
  159. data/app/views/user/edit.html.erb +50 -0
  160. data/app/views/user/index.rhtml +162 -0
  161. data/app/views/user/login.rhtml +41 -0
  162. data/app/views/user/logout.rhtml +4 -0
  163. data/app/views/user/signup.rhtml +36 -0
  164. data/app/views/user/signup_succeeded.rhtml +36 -0
  165. data/app/views/user_mailer/authorization_inform.rhtml +15 -0
  166. data/app/views/user_mailer/signup_accepted.rhtml +12 -0
  167. data/app/views/user_mailer/signup_confirm.rhtml +14 -0
  168. data/app/views/user_mailer/signup_inform.rhtml +13 -0
  169. data/app/views/user_mailer/signup_rejected.rhtml +11 -0
  170. data/app/views/work_flow/_push_wsdls.rhtml +55 -0
  171. data/app/views/work_flow/index.rhtml +46 -0
  172. data/config/database.yml.example +35 -0
  173. data/config/environment.rb +68 -0
  174. data/config/gfdnavi.yml.example +95 -0
  175. data/config/load_config.rb +151 -0
  176. data/config/routes.rb +35 -0
  177. data/consistency_checker.rb +129 -0
  178. data/data/gfdnavi_docs/how_to_draw_multiple_images.knlge +68 -0
  179. data/data/gfdnavi_docs/how_to_knowledge.knlge +138 -0
  180. data/data/gfdnavi_docs/how_to_write_document_about_Gfdnavi.knlge +30 -0
  181. data/data/samples/jmadata.SIGEN +8 -0
  182. data/data/samples/jmadata.yml +6 -0
  183. data/data/samples/jmadata/MSM-P/2006.nc.yml +2 -0
  184. data/data/samples/jmadata/MSM-P/2006.yml +17 -0
  185. data/data/samples/jmadata/MSM-P/2006/0101.nc +0 -0
  186. data/data/samples/jmadata/MSM-P/2006/0101.nc.yml +13 -0
  187. data/data/samples/jmadata/MSM-P/2006/0102.nc +0 -0
  188. data/data/samples/jmadata/MSM-P/2006/0103.nc +0 -0
  189. data/data/samples/jmadata/MSM-P/2006/0104.nc +0 -0
  190. data/data/samples/jmadata/MSM-P/2006/0105.nc +0 -0
  191. data/data/samples/jmadata/MSM-P/2006/010[1-3].nc.yml +2 -0
  192. data/data/samples/jmadata/MSM-P/2006/skip_data.rb +96 -0
  193. data/data/samples/jmadata/MSM-P/2006/skip_data.sh +6 -0
  194. data/data/samples/reanalysis.SIGEN +8 -0
  195. data/data/samples/reanalysis/era40.SIGEN +8 -0
  196. data/data/samples/reanalysis/era40.yml +2 -0
  197. data/data/samples/reanalysis/era40/t.jan.nc +0 -0
  198. data/data/samples/reanalysis/era40/t.jan.nc.yml +1 -0
  199. data/data/samples/reanalysis/ncep.SIGEN +9 -0
  200. data/data/samples/reanalysis/ncep/T.jan.100hPa.png +0 -0
  201. data/data/samples/reanalysis/ncep/T.jan.100hPa.png.yml +43 -0
  202. data/data/samples/reanalysis/ncep/T.jan.nc +0 -0
  203. data/data/samples/reanalysis/ncep/T.jan.zonal_mean.nc +0 -0
  204. data/data/samples/reanalysis/ncep/T.jan.zonal_mean.nc.yml +8 -0
  205. data/data/samples/reanalysis/ncep/T.jan_only_root.nc +0 -0
  206. data/data/samples/reanalysis/ncep/T.jan_only_root.nc.yml +4 -0
  207. data/data/samples/reanalysis/ncep/UV.jan.nc +0 -0
  208. data/data/samples/reanalysis/ncep/UV.jan.nc.yml +10 -0
  209. data/data/samples/reanalysis/ncep/UV.jan.nc.yml.ja +11 -0
  210. data/data/samples/sonde_operational.yml +5 -0
  211. data/data/samples/sonde_operational/std_plev.yml +12 -0
  212. data/data/samples/sonde_operational/std_plev/41256.spl.nc +0 -0
  213. data/data/samples/sonde_operational/std_plev/42410.spl.nc +0 -0
  214. data/data/samples/sonde_operational/std_plev/43333.spl.nc +0 -0
  215. data/data/samples/sonde_operational/std_plev/43346.spl.nc +0 -0
  216. data/data/samples/sonde_operational/std_plev/48698.spl.nc +0 -0
  217. data/data/samples/sonde_operational/std_plev/61641.spl.nc +0 -0
  218. data/data/samples/sonde_operational/std_plev/63741.spl.nc +0 -0
  219. data/data/samples/sonde_operational/std_plev/67083.spl.nc +0 -0
  220. data/data/samples/sonde_operational/std_plev/72261.spl.nc +0 -0
  221. data/data/samples/sonde_operational/std_plev/76805.spl.nc +0 -0
  222. data/data/samples/sonde_operational/std_plev/82193.spl.nc +0 -0
  223. data/data/samples/sonde_operational/std_plev/91165.spl.nc +0 -0
  224. data/data/samples/sonde_operational/std_plev/91610.spl.nc +0 -0
  225. data/data/samples/sonde_operational/std_plev/91948.spl.nc +0 -0
  226. data/data/samples/sonde_operational/std_plev/94294.spl.nc +0 -0
  227. data/db/NetCDFparser.rb +406 -0
  228. data/db/create_derived_spatial_attributes.sql +12 -0
  229. data/db/draw_methods/line.yml +6 -0
  230. data/db/draw_methods/scatter.yml +38 -0
  231. data/db/draw_methods/tone.yml +64 -0
  232. data/db/draw_methods/vector.yml +19 -0
  233. data/db/dump_db.rb +43 -0
  234. data/db/functions/additions.yml +10 -0
  235. data/db/functions/cut.yml +10 -0
  236. data/db/functions/division.yml +10 -0
  237. data/db/functions/mean.yml +28 -0
  238. data/db/functions/multiplication.yml +10 -0
  239. data/db/functions/stddev.yml +28 -0
  240. data/db/functions/subtraction.yml +10 -0
  241. data/db/migrate/001_initial_scheme.rb +289 -0
  242. data/db/migrate/002_add_open_id_authentication_tables.rb +20 -0
  243. data/db/register_directory_tree.rb +760 -0
  244. data/db/restore_db.rb +60 -0
  245. data/gfdnavi-install +828 -0
  246. data/install.rb +828 -0
  247. data/lib/activerecord_gfdnavi.rb +31 -0
  248. data/lib/basic_authorization.rb +50 -0
  249. data/lib/create_activeresources.rb +108 -0
  250. data/lib/execute_analysis.rb +472 -0
  251. data/lib/file_gfdnavi.rb +38 -0
  252. data/lib/gphys_gfdnavi.rb +81 -0
  253. data/lib/localdir.rb +110 -0
  254. data/lib/login_system.rb +110 -0
  255. data/lib/multibytes.rb +20 -0
  256. data/lib/narray_yaml.rb +58 -0
  257. data/lib/no_rdb_base.rb +40 -0
  258. data/lib/opendapdir.rb +171 -0
  259. data/lib/tar.rb +127 -0
  260. data/lib/tasks/clean.rake +65 -0
  261. data/lib/tasks/setup.rake +316 -0
  262. data/lib/tasks/update.rake +62 -0
  263. data/lib/vizshot_gfdnavi.rb +224 -0
  264. data/public/crossdomain.xml +4 -0
  265. data/public/flex/NodeTreeDescriptor.as +55 -0
  266. data/public/flex/TreeNode.as +253 -0
  267. data/public/flex/finder.mxml +304 -0
  268. data/public/flex/finder.swf +0 -0
  269. data/public/flex/gfdnavi.mxml +52 -0
  270. data/public/flex/gfdnavi.swf +0 -0
  271. data/public/images/Help_S-shots/dir_tree_with_add.jpg +0 -0
  272. data/public/images/analyze.gif +0 -0
  273. data/public/images/circle.gif +0 -0
  274. data/public/images/create_from_analysis_button.png +0 -0
  275. data/public/images/delete.png +0 -0
  276. data/public/images/down.png +0 -0
  277. data/public/images/drawbutton.gif +0 -0
  278. data/public/images/gfdnavi_home_logo.png +0 -0
  279. data/public/images/gfdnavi_logo_big.png +0 -0
  280. data/public/images/gfdnavi_logo_med.png +0 -0
  281. data/public/images/gfdnavi_logo_mini.png +0 -0
  282. data/public/images/gfdnavi_logo_nobg_big.png +0 -0
  283. data/public/images/gfdnavi_logo_nobg_med.png +0 -0
  284. data/public/images/gfdnavi_logo_nobg_small.png +0 -0
  285. data/public/images/gfdnavi_logo_small.png +0 -0
  286. data/public/images/gfdnavi_logo_xsmall.png +0 -0
  287. data/public/images/hbar.png +0 -0
  288. data/public/images/helpmark16.png +0 -0
  289. data/public/images/helpmark18.png +0 -0
  290. data/public/images/kikyu_g.gif +0 -0
  291. data/public/images/kikyu_r.gif +0 -0
  292. data/public/images/map_icon_g.gif +0 -0
  293. data/public/images/map_icon_r.gif +0 -0
  294. data/public/images/new_knowledge.png +0 -0
  295. data/public/images/openid.png +0 -0
  296. data/public/images/read_in_the_form.png +0 -0
  297. data/public/images/slider_f.gif +0 -0
  298. data/public/images/slider_f_red.gif +0 -0
  299. data/public/images/star1.gif +0 -0
  300. data/public/images/star2.gif +0 -0
  301. data/public/images/startanim.gif +0 -0
  302. data/public/images/stopanim.gif +0 -0
  303. data/public/images/tree/DL.png +0 -0
  304. data/public/images/tree/anal_viz.png +0 -0
  305. data/public/images/tree/analyze_visualize_checked_items.png +0 -0
  306. data/public/images/tree/binary.png +0 -0
  307. data/public/images/tree/details.png +0 -0
  308. data/public/images/tree/download_checked_items.png +0 -0
  309. data/public/images/tree/folder.png +0 -0
  310. data/public/images/tree/folder_close.gif +0 -0
  311. data/public/images/tree/image2.png +0 -0
  312. data/public/images/tree/knowledge.png +0 -0
  313. data/public/images/tree/knowledges.png +0 -0
  314. data/public/images/tree/last.gif +0 -0
  315. data/public/images/tree/last.png +0 -0
  316. data/public/images/tree/minus.gif +0 -0
  317. data/public/images/tree/minus_simple.gif +0 -0
  318. data/public/images/tree/none.gif +0 -0
  319. data/public/images/tree/none.png +0 -0
  320. data/public/images/tree/plus.gif +0 -0
  321. data/public/images/tree/plus_simple.gif +0 -0
  322. data/public/images/tree/show.png +0 -0
  323. data/public/images/tree/show_checked_items.png +0 -0
  324. data/public/images/tree/t.gif +0 -0
  325. data/public/images/tree/t.png +0 -0
  326. data/public/images/tree/tate.gif +0 -0
  327. data/public/images/tree/tate.png +0 -0
  328. data/public/images/up.png +0 -0
  329. data/public/images/vbar.png +0 -0
  330. data/public/images/white.bmp +0 -0
  331. data/public/images/x.gif +0 -0
  332. data/public/index.html +100 -0
  333. data/public/javascripts/AC_OETags.js +269 -0
  334. data/public/javascripts/analysis.js +751 -0
  335. data/public/javascripts/application.js +29 -0
  336. data/public/javascripts/directory_tree.js +102 -0
  337. data/public/javascripts/draw_method.js +83 -0
  338. data/public/javascripts/excanvas.js +704 -0
  339. data/public/javascripts/function.js +107 -0
  340. data/public/javascripts/gfdnavi.js +175 -0
  341. data/public/javascripts/knowledge.js +384 -0
  342. data/public/javascripts/mapsearch.js +313 -0
  343. data/public/javascripts/progress.js +42 -0
  344. data/public/javascripts/resizable_box.js +164 -0
  345. data/public/javascripts/slider.js +260 -0
  346. data/public/javascripts/tab.js +17 -0
  347. data/public/javascripts/work_flow.js +452 -0
  348. data/public/stylesheets/analysis.css +111 -0
  349. data/public/stylesheets/description.css +71 -0
  350. data/public/stylesheets/gfdnavi.css +141 -0
  351. data/public/stylesheets/knowledge.css +218 -0
  352. data/public/stylesheets/search.css +184 -0
  353. data/public/stylesheets/tree.css +45 -0
  354. data/public/stylesheets/tree_for_ie.css +3 -0
  355. data/public/stylesheets/work_flow.css +78 -0
  356. data/script/cleaner +11 -0
  357. data/script/server_ssl +131 -0
  358. data/test/fixtures/diagram_cache_data.yml +5 -0
  359. data/test/fixtures/diagram_cache_sessions.yml +6 -0
  360. data/test/fixtures/diagram_caches.yml +6 -0
  361. data/test/fixtures/directories.yml +57 -0
  362. data/test/fixtures/draw_parameters.yml +6 -0
  363. data/test/fixtures/function_arguments.yml +15 -0
  364. data/test/fixtures/function_outputs.yml +15 -0
  365. data/test/fixtures/functions.yml +29 -0
  366. data/test/fixtures/group_members.yml +33 -0
  367. data/test/fixtures/groups.yml +25 -0
  368. data/test/fixtures/images.yml +12 -0
  369. data/test/fixtures/keyword_attributes.yml +73 -0
  370. data/test/fixtures/knowledges.yml +10 -0
  371. data/test/fixtures/node_relations.yml +11 -0
  372. data/test/fixtures/nodes.yml +298 -0
  373. data/test/fixtures/sign_up_users.yml +8 -0
  374. data/test/fixtures/spatial_and_time_attributes.yml +29 -0
  375. data/test/fixtures/user_mailer/authorization_inform +11 -0
  376. data/test/fixtures/user_mailer/signup_accepted +10 -0
  377. data/test/fixtures/user_mailer/signup_confirm +17 -0
  378. data/test/fixtures/user_mailer/signup_inform +10 -0
  379. data/test/fixtures/user_mailer/signup_rejected +9 -0
  380. data/test/fixtures/users.yml +31 -0
  381. data/test/fixtures/value_types.yml +10 -0
  382. data/test/fixtures/variables.yml +17 -0
  383. data/test/functional/analysis_controller_test.rb +169 -0
  384. data/test/functional/description_controller_test.rb +18 -0
  385. data/test/functional/function_controller_test.rb +18 -0
  386. data/test/functional/group_controller_test.rb +18 -0
  387. data/test/functional/search_controller_test.rb +83 -0
  388. data/test/functional/user_controller_test.rb +77 -0
  389. data/test/functional/webservice_analysis_api_test.rb +12 -0
  390. data/test/functional/work_flow_controller_test.rb +18 -0
  391. data/test/test_helper.rb +28 -0
  392. data/test/unit/diagram_cache_datum_test.rb +10 -0
  393. data/test/unit/diagram_cache_session_test.rb +10 -0
  394. data/test/unit/diagram_cache_test.rb +10 -0
  395. data/test/unit/directory_test.rb +49 -0
  396. data/test/unit/draw_parameter_test.rb +10 -0
  397. data/test/unit/function_argument_test.rb +10 -0
  398. data/test/unit/function_output_test.rb +10 -0
  399. data/test/unit/function_test.rb +10 -0
  400. data/test/unit/group_test.rb +48 -0
  401. data/test/unit/image_test.rb +13 -0
  402. data/test/unit/keyword_attribute_test.rb +33 -0
  403. data/test/unit/knowledge_test.rb +13 -0
  404. data/test/unit/node_relation_test.rb +20 -0
  405. data/test/unit/node_test.rb +85 -0
  406. data/test/unit/sign_up_user_test.rb +20 -0
  407. data/test/unit/spatial_and_time_attribute_test.rb +29 -0
  408. data/test/unit/user_mailer_test.rb +101 -0
  409. data/test/unit/user_test.rb +134 -0
  410. data/test/unit/value_type_test.rb +10 -0
  411. data/test/unit/variable_test.rb +35 -0
  412. data/vendor/plugins/acts_as_list/README +23 -0
  413. data/vendor/plugins/acts_as_list/init.rb +3 -0
  414. data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +256 -0
  415. data/vendor/plugins/acts_as_list/test/list_test.rb +332 -0
  416. data/vendor/plugins/acts_as_tree/README +26 -0
  417. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  418. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  419. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  420. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  421. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  422. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  423. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  424. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  425. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  426. data/vendor/plugins/will_paginate/CHANGELOG +92 -0
  427. data/vendor/plugins/will_paginate/LICENSE +18 -0
  428. data/vendor/plugins/will_paginate/README.rdoc +131 -0
  429. data/vendor/plugins/will_paginate/Rakefile +62 -0
  430. data/vendor/plugins/will_paginate/examples/apple-circle.gif +0 -0
  431. data/vendor/plugins/will_paginate/examples/index.haml +69 -0
  432. data/vendor/plugins/will_paginate/examples/index.html +92 -0
  433. data/vendor/plugins/will_paginate/examples/pagination.css +90 -0
  434. data/vendor/plugins/will_paginate/examples/pagination.sass +91 -0
  435. data/vendor/plugins/will_paginate/init.rb +1 -0
  436. data/vendor/plugins/will_paginate/lib/will_paginate.rb +86 -0
  437. data/vendor/plugins/will_paginate/lib/will_paginate/array.rb +16 -0
  438. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +145 -0
  439. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +32 -0
  440. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +247 -0
  441. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope.rb +132 -0
  442. data/vendor/plugins/will_paginate/lib/will_paginate/named_scope_patch.rb +39 -0
  443. data/vendor/plugins/will_paginate/lib/will_paginate/version.rb +9 -0
  444. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +373 -0
  445. data/vendor/plugins/will_paginate/will_paginate.gemspec +21 -0
  446. metadata +586 -0
@@ -0,0 +1,42 @@
1
+ require "analysis"
2
+ class AnalysisHistory < Array
3
+ MAX_LENGTH = 10
4
+ def push(analysis)
5
+ raise("Analysis is expected") unless Analysis === analysis
6
+ case Analysis::ACTION_TYPE[analysis.action_type]
7
+ when "draw"
8
+ dl = "Draw: "
9
+ if analysis.draw_method.nvars >= 2
10
+ dl += analysis.draw_variables_order.collect{|ary| "["+ary.collect{|i| analysis.variables[i].name}.join(",")+"]" }.join(",")
11
+ else
12
+ dl += analysis.variables.collect{|v| v.name}.join(",")
13
+ end
14
+ dl += " " + analysis.diagram_label
15
+ when "analysis"
16
+ dl = "Analysis: "
17
+ if analysis.function.nvars > 1
18
+ dl += analysis.function_variables_order.collect{|i| analysis.variables[i].name }.join(",")
19
+ else
20
+ dl += analysis.variables[0].name
21
+ end
22
+ dl += ", " + analysis.function.name
23
+ arg = analysis.function_arguments
24
+ if analysis.function.function_arguments.length > 0
25
+ dl += "(" + analysis.function_arguments.join(",") + ")"
26
+ end
27
+ end
28
+ delete_if{|a| a[1] == dl}
29
+ super( [analysis,dl] )
30
+ @offset = 0 if !@offset
31
+ if length >= MAX_LENGTH + 1
32
+ shift
33
+ @offset += 1
34
+ end
35
+ self
36
+ end
37
+
38
+ def offset
39
+ @offset || 0
40
+ end
41
+
42
+ end
@@ -0,0 +1,22 @@
1
+ require "activerecord_gfdnavi"
2
+
3
+ class CrossArray
4
+ #attr_accessor :keynames
5
+ attr_accessor :name,:keyvalue , :cnt
6
+
7
+ def initialize(id)
8
+ #@keynames = Array.new
9
+ #@resulttree=PathNode.new
10
+ #@resulttree.path="/"
11
+ #@resultids = Array.new
12
+ #@nodes=Array.new
13
+ #@qsetid=qsetid
14
+ #puts "aa"
15
+ @id=id
16
+ @name=Array.new
17
+ #@name.push(name)
18
+ #puts @name
19
+ @keyvalue=Array.new
20
+ @cnt=Array.new
21
+ end
22
+ end
@@ -0,0 +1,254 @@
1
+ require "activerecord_gfdnavi"
2
+
3
+ class CrossResult
4
+ attr_accessor :id, :keynames, :qsetid, :resulttree, :resultids, :nodes
5
+ def initialize(qsetid)
6
+ @keynames = Array.new
7
+ @resulttree=PathNode.new
8
+ @resulttree.path="/"
9
+ @resultids = Array.new
10
+ @nodes=Array.new
11
+ @qsetid=qsetid
12
+ end
13
+ def reset_resulttree
14
+ @resulttree=PathNode.new
15
+ @resulttree.path="/"
16
+ end
17
+
18
+ def put_results(nodes)
19
+ @resultids.clear
20
+ @nodes.clear
21
+ @nodes = nodes
22
+
23
+ @nodes.each{ |res|
24
+ @resultids.push(res.id)
25
+ }
26
+ @resultids.uniq!
27
+ end
28
+
29
+ def resultlist(p)
30
+ reset_resulttree
31
+ dir=Array.new
32
+ res=Array.new
33
+ @nodes.each{ |n|
34
+ if n.node_type==0 then
35
+ dir.push n
36
+ else
37
+ res.push n
38
+ end
39
+ }
40
+
41
+ res.each{ |r|
42
+ flg=0
43
+ dir.each{ |d|
44
+ if r.path=~/#{d.path}/ then
45
+ flg=1
46
+ break
47
+ end
48
+ }
49
+ if flg==0 then
50
+ @resulttree.addpath(r)
51
+ end
52
+ }
53
+ return res
54
+ end
55
+
56
+ def count
57
+ return @resultids.size
58
+ end
59
+
60
+ def all_covered(slat,slon,elat,elon)
61
+ tablename="nodes"
62
+
63
+ if @qsetid!=0 then
64
+ nodelist = "(select distinct ancestor as id from node_lineages where descendant in (#{@resultids.join(',')})) n"
65
+
66
+ if @resultids.length ==0 then
67
+ return []
68
+ end
69
+ else
70
+ nodelist = "nodes n"
71
+ end
72
+
73
+ qstr=<<-EOM
74
+ select latitude_lb,longitude_lb, latitude_rt, longitude_rt,
75
+ count(*) as cnt
76
+ from spatial_and_time_attributes s join #{nodelist} on n.id = s.node_id
77
+ where s.latitude_lb<#{slat} and s.latitude_rt>#{elat}
78
+ and s.longitude_lb<#{slon} and s.longitude_rt>#{elon}
79
+ group by s.latitude_lb,s.longitude_lb, s.latitude_rt, s.longitude_rt
80
+ EOM
81
+ return Node.find_by_sql(qstr)
82
+ end
83
+
84
+ def partial_covered(slat,slon,elat,elon)
85
+ if @qsetid!=0 then
86
+ nodelist = "(select distinct ancestor as id from node_lineages where descendant in (#{@resultids.join(',')})) n"
87
+ if @resultids.length ==0 then
88
+ return []
89
+ end
90
+ else
91
+ nodelist = "nodes n"
92
+ end
93
+ qstr=<<-EOM
94
+ select latitude_lb,longitude_lb, latitude_rt, longitude_rt,
95
+ count(*) as cnt
96
+ from spatial_and_time_attributes s join #{nodelist} on n.id = s.node_id
97
+ where not (latitude_lb<#{slat} and latitude_rt>#{elat}
98
+ and longitude_lb<#{slon} and longitude_rt>#{elon})
99
+ and latitude_lb<>latitude_rt
100
+ and longitude_lb<>longitude_rt
101
+ group by latitude_lb,longitude_lb, latitude_rt, longitude_rt
102
+ EOM
103
+ return Node.find_by_sql(qstr)
104
+ end
105
+
106
+ def points(slat,slon,elat,elon)
107
+ if @qsetid!=0 then
108
+ nodelist = "(select distinct ancestor as id from node_lineages where descendant in (#{@resultids.join(',')})) n"
109
+ if @resultids.length ==0 then
110
+ return []
111
+ end
112
+ else
113
+ nodelist = "nodes n"
114
+ end
115
+ qstr=<<-EOM
116
+ select latitude_lb,longitude_lb, latitude_rt, longitude_rt,
117
+ count(*) as cnt
118
+ from spatial_and_time_attributes s join #{nodelist} on n.id = s.node_id
119
+ where latitude_lb=latitude_rt
120
+ and longitude_lb=longitude_rt
121
+ group by latitude_lb,longitude_lb
122
+ EOM
123
+ return Node.find_by_sql(qstr)
124
+ end
125
+
126
+ def get_keyname_list
127
+ if @qsetid!=0 then
128
+ nodelist = "(select distinct ancestor as id from node_lineages where descendant in (#{@resultids.join(',')})) n"
129
+ if @resultids.length ==0 then
130
+ return []
131
+ end
132
+ else
133
+ nodelist = "nodes n"
134
+ end
135
+ igr_attrs=""
136
+ i=0
137
+ GFDNAVI_IGNORED_ATTRS.each{ |iga|
138
+ if i==0 then
139
+ igr_attrs="'#{iga}'"
140
+ else
141
+ igr_attrs="#{igr_attrs},'#{iga}'"
142
+ end
143
+ i=i+1
144
+ }
145
+
146
+ if GFDNAVI_IGNORED_ATTRS.size>0 then
147
+ qstr=<<-EOF
148
+ select k.name as kname,count(distinct n.id) as cnt
149
+ from keyword_attributes k join #{nodelist} on k.node_id = n.id
150
+ where not (k.name in (#{igr_attrs}))
151
+ group by k.name
152
+ order by cnt DESC
153
+ EOF
154
+ else
155
+ qstr=<<-EOF
156
+ select k.name as kname,count(distinct n.id) as cnt
157
+ from keyword_attributes k join #{nodelist} on k.node_id = n.id
158
+ group by k.name
159
+ order by cnt DESC
160
+ EOF
161
+ end
162
+ keylist=KeywordAttribute.find_by_sql(qstr)
163
+ return keylist
164
+ end
165
+
166
+ def get_path
167
+ if @qsetid>0 then
168
+ res=QueryHistory.find(:all,:conditions=>["queryset_id=? and querytype='path'",@qsetid])
169
+ if res.size>0 then
170
+ res[0].description=~/[P](.*)/
171
+ return $1
172
+ end
173
+ end
174
+ return "/"
175
+ end
176
+
177
+ def get_path_list
178
+ if @qsetid>0 then
179
+ QueryHistory.find(:all,:conditions=>["queryset_id=? and querytype='path'",@qsetid])
180
+ tables="(select v.* from nodes v, gfdnavi_querycache.queryset_#{@qsetid} c where v.id=c.vid)"
181
+ path=get_path
182
+ else
183
+ tables="nodes"
184
+ path="/"
185
+ end
186
+ sql1=<<-EOM
187
+ select d2.path as dpath, count(distinct v.id) as cnt
188
+ from nodes d1,nodes d2,#{tables} v
189
+ where d1.path = ?
190
+ and d2.parent_id = d1.id
191
+ and v.path like #{concat("d2.path","'%'")}
192
+ group by d2.path
193
+ order by cnt DESC
194
+ EOM
195
+ pathlist = Node.find_by_sql([sql1,path])
196
+ return pathlist
197
+ end
198
+
199
+ def get_keyvalue_list(keyname)
200
+ if @qsetid!=0 then
201
+ nodelist = "(select distinct ancestor as id from node_lineages where descendant in (#{@resultids.join(',')})) n"
202
+ else
203
+ nodelist = "nodes n"
204
+ end
205
+ qstr=<<-EOF
206
+ select k.value as value, k.num_value as num_value, count(distinct n.id) as cnt
207
+ from #{nodelist} join keyword_attributes k on k.node_id=n.id
208
+ where k.name='#{keyname}'
209
+ group by k.value
210
+ order by cnt DESC
211
+ EOF
212
+ keylist=KeywordAttribute.find_by_sql(qstr)
213
+ return keylist
214
+ end
215
+
216
+ def get_querysetids(session_id)
217
+ res=Array.new
218
+ qhistories=QueryHistory.find_by_sql(["select distinct queryset_id from query_histories where session_id=? order by queryset_id;",session_id])
219
+ qhistories.each{ |qh|
220
+ res.push qh.queryset_id
221
+ }
222
+ return res
223
+ end
224
+
225
+ =begin
226
+ def get_result_path_tree
227
+ if id!= 0 then
228
+ reslist=Node.find(:all,:select=>"path, count(*) as cnt",:joins=>"JOIN gfdnavi_querycache.cache_#{@id} ON gfdnavi_querycache.cache_#{@id}.vid=id", :group=>"path", :order=>"path")
229
+ else
230
+ reslist=Node.find(:all,:select=>"path, count(*) as cnt",:group=>"path",:order=>"path")
231
+ end
232
+
233
+ rid=0
234
+ resultpath=PathNode.new
235
+ reslist.each{ |res|
236
+ if resultpath.path=="" then
237
+ resultpath.path=res.path
238
+ resultpath.id=rid
239
+ resultpath.cnt=1
240
+ rid=rid+1
241
+ else
242
+ patharray_res=res.path.split(/\//)
243
+ patharray_node=resultpath.path.split(/\//)
244
+ i=0
245
+ while patharray_res[i]==patharray_node[i] do
246
+ i=i+1
247
+ end
248
+ if patharray_
249
+ end
250
+ }
251
+
252
+ end
253
+ =end
254
+ end
@@ -0,0 +1,3 @@
1
+ class DerivedSpatialAttribute < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,16 @@
1
+ class DiagramCache < ActiveRecord::Base
2
+ belongs_to :variable
3
+ has_many :variables, :through => :diagram_cache_data
4
+ has_many :diagram_cache_data, :dependent => :destroy
5
+ has_many :diagram_cache_sessions, :dependent => :destroy
6
+
7
+ def self.find_for_session(id, session_id)
8
+ dc = DiagramCache.find_by_id(id)
9
+ if dc && dc.diagram_cache_sessions.find(:first, :conditions => ["session=?",session_id])
10
+ return dc
11
+ else
12
+ return nil
13
+ end
14
+ end
15
+
16
+ end
@@ -0,0 +1,4 @@
1
+ class DiagramCacheDatum < ActiveRecord::Base
2
+ belongs_to :diagram_cache
3
+ belongs_to :variable
4
+ end
@@ -0,0 +1,8 @@
1
+ class DiagramCacheSession < ActiveRecord::Base
2
+ belongs_to :diagram_cache
3
+
4
+ def initialize(*arg)
5
+ super(*arg)
6
+ self.share = true
7
+ end
8
+ end
@@ -0,0 +1,21 @@
1
+ require "activerecord_gfdnavi"
2
+
3
+ class Directory < NodeEntityAbstract
4
+
5
+ def initialize(*arg)
6
+ super(*arg)
7
+ self.downloadable = true
8
+ end
9
+
10
+ def downloadable?
11
+ return false unless plain_file
12
+ dir = self
13
+ while (dir)
14
+ return false unless dir.downloadable
15
+ dir = dir.parent
16
+ dir = dir && dir.entity
17
+ end
18
+ return true
19
+ end
20
+
21
+ end
@@ -0,0 +1,48 @@
1
+ class DrawMethod < NodeEntityAbstract
2
+
3
+ has_many :draw_method_attributes, :dependent => :destroy
4
+
5
+ before_save :check_name
6
+ after_save :update_yml
7
+ after_update :update_yml
8
+
9
+ protected
10
+
11
+ def check_name
12
+ dm = DrawMethod.find(:first, :conditions=>["name=?",node.name], :user=>:all)
13
+ if dm && dm != self
14
+ errors.add("name", "must be uniq")
15
+ return false
16
+ end
17
+ end
18
+
19
+ def update_yml
20
+ return if default
21
+ h = Hash.new
22
+ h[:name] = self.name
23
+ h[:description] = self.description
24
+ h[:ndims] = self.ndims
25
+ h[:nvars] = self.nvars
26
+ h[:vizshot_method] = self.vizshot_method
27
+ h[:script] = self.script if self.script
28
+ h[:ggraph] = self.ggraph if self.ggraph
29
+ h[:setting_html] = self.setting_html if self.setting_html
30
+ ary = Array.new
31
+ draw_method_attributes.each{|da|
32
+ h2 = Hash.new
33
+ h2[:name] = da.name
34
+ h2[:value_type] = da.value_type.name
35
+ h2[:default] = da.default
36
+ h2[:optional] = da.optional
37
+ h2[:parser] = da.parser
38
+ ary.push h2
39
+ }
40
+ h[:attributes] = ary if ary.length > 0
41
+ yml = add_prefix(self.path)+".yml"
42
+ File.open(yml,"w"){|file|
43
+ file.print h.to_yaml
44
+ }
45
+ end
46
+
47
+
48
+ end
@@ -0,0 +1,8 @@
1
+ class DrawMethodAttribute < ActiveRecord::Base
2
+
3
+ belongs_to :draw_method
4
+ belongs_to :value_type
5
+
6
+ validates_presence_of :name, :value_type_id
7
+
8
+ end
@@ -0,0 +1,12 @@
1
+ class DrawParameter < ActiveRecord::Base
2
+ belongs_to :node
3
+ validates_presence_of :name, :value
4
+
5
+ def before_validation
6
+ if value == false
7
+ self.value = 0
8
+ elsif value == true
9
+ self.value = 1
10
+ end
11
+ end
12
+ end