backlog 0.37.2 → 0.41.4

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 (568) hide show
  1. checksums.yaml +7 -0
  2. data/History.txt +128 -0
  3. data/README.txt +4 -2
  4. data/bin/backlog +1 -1
  5. data/lib/array_helper.rb +4 -4
  6. data/{vendor/plugins → lib}/backlog_jira/README +0 -0
  7. data/{vendor/plugins → lib}/backlog_jira/Rakefile +0 -0
  8. data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/backlog_jira_generator.rb +0 -0
  9. data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/templates/migration.rb +0 -0
  10. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/history_model_generator.rb +0 -0
  11. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/fixtures.yml +0 -0
  12. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/functional_test.rb +0 -0
  13. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/model.rb +0 -0
  14. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/unit_test.rb +0 -0
  15. data/lib/backlog_jira/init.rb +66 -0
  16. data/{vendor/plugins → lib}/backlog_jira/install.rb +0 -0
  17. data/{vendor/plugins → lib}/backlog_jira/lib/backlog_jira.rb +0 -0
  18. data/{vendor/plugins → lib}/backlog_jira/lib/tasks/backlog_jira_tasks.rake +0 -0
  19. data/{vendor/plugins → lib}/backlog_jira/test/backlog_jira_test.rb +0 -0
  20. data/{vendor/plugins → lib}/backlog_jira/uninstall.rb +0 -0
  21. data/lib/big_decimal_yaml_fix.rb +16 -25
  22. data/lib/tasks/backup.rake +18 -18
  23. data/lib/time_extras.rb +6 -6
  24. data/lib/user_system.rb +41 -38
  25. data/lib/version_from_history.rb +2 -2
  26. metadata +196 -749
  27. data/Capfile +0 -2
  28. data/Gemfile +0 -34
  29. data/Gemfile.lock +0 -139
  30. data/MODIFICATIONS.txt +0 -13
  31. data/Manifest.txt +0 -0
  32. data/README_LOGIN_SUGAR +0 -194
  33. data/Rakefile +0 -73
  34. data/Rakefile~ +0 -73
  35. data/Screenshot.png +0 -0
  36. data/app/controllers/absences_controller.rb +0 -67
  37. data/app/controllers/application_controller.rb +0 -185
  38. data/app/controllers/application_controller.rb.rails2 +0 -186
  39. data/app/controllers/customers_controller.rb +0 -51
  40. data/app/controllers/dashboard_controller.rb +0 -17
  41. data/app/controllers/estimates_controller.rb +0 -49
  42. data/app/controllers/groups_controller.rb +0 -65
  43. data/app/controllers/parties_controller.rb +0 -33
  44. data/app/controllers/periods_controller.rb +0 -242
  45. data/app/controllers/projects_controller.rb +0 -185
  46. data/app/controllers/public_holidays_controller.rb +0 -70
  47. data/app/controllers/search_controller.rb +0 -15
  48. data/app/controllers/task_files_controller.rb +0 -19
  49. data/app/controllers/tasks_controller.rb +0 -305
  50. data/app/controllers/user_controller.rb +0 -251
  51. data/app/controllers/welcome_controller.rb +0 -29
  52. data/app/controllers/work_locks_controller.rb +0 -88
  53. data/app/controllers/works_controller.rb +0 -383
  54. data/app/helpers/absences_helper.rb +0 -2
  55. data/app/helpers/application_helper.rb +0 -119
  56. data/app/helpers/application_helper.rb.rails2 +0 -118
  57. data/app/helpers/customers_helper.rb +0 -2
  58. data/app/helpers/dashboard_helper.rb +0 -2
  59. data/app/helpers/estimates_helper.rb +0 -2
  60. data/app/helpers/groups_helper.rb +0 -2
  61. data/app/helpers/parties_helper.rb +0 -2
  62. data/app/helpers/periods_helper.rb +0 -57
  63. data/app/helpers/projects_helper.rb +0 -74
  64. data/app/helpers/public_holidays_helper.rb +0 -2
  65. data/app/helpers/search_helper.rb +0 -2
  66. data/app/helpers/task_files_helper.rb +0 -2
  67. data/app/helpers/tasks_helper.rb +0 -2
  68. data/app/helpers/user_helper.rb +0 -53
  69. data/app/helpers/welcome_helper.rb +0 -2
  70. data/app/helpers/work_locks_helper.rb +0 -2
  71. data/app/helpers/works_helper.rb +0 -5
  72. data/app/mailers/user_notify.rb +0 -76
  73. data/app/models/absence.rb +0 -27
  74. data/app/models/chart.rb +0 -5
  75. data/app/models/clock.rb +0 -14
  76. data/app/models/configuration.rb +0 -2
  77. data/app/models/customer.rb +0 -2
  78. data/app/models/estimate.rb +0 -17
  79. data/app/models/group.rb +0 -16
  80. data/app/models/party.rb +0 -27
  81. data/app/models/period.rb +0 -251
  82. data/app/models/project.rb +0 -49
  83. data/app/models/public_holiday.rb +0 -13
  84. data/app/models/report_filter.rb +0 -29
  85. data/app/models/search_result.rb +0 -8
  86. data/app/models/sidebar.rb +0 -41
  87. data/app/models/task.rb +0 -425
  88. data/app/models/task_file.rb +0 -7
  89. data/app/models/task_notify.rb +0 -27
  90. data/app/models/user.rb +0 -146
  91. data/app/models/work.rb +0 -191
  92. data/app/models/work_lock.rb +0 -11
  93. data/app/models/work_lock_nagger.rb +0 -60
  94. data/app/models/work_lock_notify.rb +0 -43
  95. data/app/models/works_report_filter.rb +0 -27
  96. data/app/views/absences/_form.rhtml +0 -10
  97. data/app/views/absences/edit.rhtml +0 -9
  98. data/app/views/absences/list.rhtml +0 -25
  99. data/app/views/absences/new.rhtml +0 -8
  100. data/app/views/absences/show.rhtml +0 -8
  101. data/app/views/customers/_form.rhtml +0 -7
  102. data/app/views/customers/_name_list.rhtml +0 -5
  103. data/app/views/customers/edit.rhtml +0 -9
  104. data/app/views/customers/list.rhtml +0 -28
  105. data/app/views/customers/new.rhtml +0 -8
  106. data/app/views/customers/show.rhtml +0 -8
  107. data/app/views/dashboard/show.rhtml +0 -24
  108. data/app/views/display_notice.rjs +0 -1
  109. data/app/views/groups/_form.rhtml +0 -7
  110. data/app/views/groups/edit.rhtml +0 -57
  111. data/app/views/groups/list.rhtml +0 -26
  112. data/app/views/groups/new.rhtml +0 -7
  113. data/app/views/groups/set_member.rjs +0 -1
  114. data/app/views/layouts/_headers.rhtml +0 -24
  115. data/app/views/layouts/_left_top.rhtml +0 -33
  116. data/app/views/layouts/_notice.rhtml +0 -12
  117. data/app/views/layouts/_shortcuts.rhtml +0 -22
  118. data/app/views/layouts/_shortcuts_js.rhtml +0 -19
  119. data/app/views/layouts/mwrt002.html.erb +0 -44
  120. data/app/views/layouts/wide.rhtml +0 -23
  121. data/app/views/periods/_burn_down_chart.rhtml +0 -9
  122. data/app/views/periods/_form.rhtml +0 -74
  123. data/app/views/periods/_link.rhtml +0 -3
  124. data/app/views/periods/_show_active.rhtml +0 -61
  125. data/app/views/periods/_sidebar_block.rhtml +0 -11
  126. data/app/views/periods/_title.rhtml +0 -18
  127. data/app/views/periods/edit.rhtml +0 -10
  128. data/app/views/periods/finish_task.rjs +0 -4
  129. data/app/views/periods/move_task_to_period.rjs +0 -4
  130. data/app/views/periods/new.rhtml +0 -9
  131. data/app/views/periods/order.rjs +0 -0
  132. data/app/views/periods/reopen_task.rjs +0 -6
  133. data/app/views/periods/show.rhtml +0 -56
  134. data/app/views/projects/_buttons.rhtml +0 -4
  135. data/app/views/projects/_form.rhtml +0 -44
  136. data/app/views/projects/_name_list.rhtml +0 -5
  137. data/app/views/projects/edit.rhtml +0 -14
  138. data/app/views/projects/finish_task.rjs +0 -3
  139. data/app/views/projects/list.rhtml +0 -16
  140. data/app/views/projects/move_task_to_period.rjs +0 -3
  141. data/app/views/projects/new.rhtml +0 -11
  142. data/app/views/projects/reopen_task.rjs +0 -3
  143. data/app/views/projects/show.rhtml +0 -39
  144. data/app/views/public_holidays/_form.rhtml +0 -7
  145. data/app/views/public_holidays/edit.rhtml +0 -9
  146. data/app/views/public_holidays/list.rhtml +0 -25
  147. data/app/views/public_holidays/new.rhtml +0 -8
  148. data/app/views/public_holidays/show.rhtml +0 -8
  149. data/app/views/redirect.rjs +0 -1
  150. data/app/views/search/results.rhtml +0 -40
  151. data/app/views/task_notify/invite.en.html.erb +0 -13
  152. data/app/views/task_notify/invite.no.html.erb +0 -13
  153. data/app/views/tasks/_backlog_header.rhtml +0 -17
  154. data/app/views/tasks/_completed.rhtml +0 -18
  155. data/app/views/tasks/_fields_header.rhtml +0 -13
  156. data/app/views/tasks/_form.rhtml +0 -125
  157. data/app/views/tasks/_invite.rjs +0 -1
  158. data/app/views/tasks/_period_header.rhtml +0 -1
  159. data/app/views/tasks/_task.rhtml +0 -116
  160. data/app/views/tasks/_update.rjs +0 -2
  161. data/app/views/tasks/edit.rhtml +0 -81
  162. data/app/views/tasks/grab.rhtml +0 -9
  163. data/app/views/tasks/invite.rhtml +0 -9
  164. data/app/views/tasks/list.rhtml +0 -77
  165. data/app/views/tasks/list_started.rhtml +0 -62
  166. data/app/views/tasks/new.rhtml +0 -10
  167. data/app/views/tasks/notes.rhtml +0 -12
  168. data/app/views/tasks/start_work.rjs +0 -1
  169. data/app/views/tasks/update_estimate.rjs +0 -3
  170. data/app/views/user/_edit.rhtml +0 -31
  171. data/app/views/user/_password.rhtml +0 -21
  172. data/app/views/user/change_password.rhtml +0 -19
  173. data/app/views/user/delete.rhtml +0 -14
  174. data/app/views/user/edit.rhtml +0 -154
  175. data/app/views/user/forgot_password.rhtml +0 -19
  176. data/app/views/user/login.rhtml +0 -33
  177. data/app/views/user/logout.rhtml +0 -8
  178. data/app/views/user/set_group.rjs +0 -1
  179. data/app/views/user/signup.rhtml +0 -15
  180. data/app/views/user/toggle_work_lock_monitoring.rjs +0 -2
  181. data/app/views/user/welcome.rhtml +0 -8
  182. data/app/views/user_notify/change_password.en.html.erb +0 -10
  183. data/app/views/user_notify/change_password.no.html.erb +0 -10
  184. data/app/views/user_notify/forgot_password.en.html.erb +0 -11
  185. data/app/views/user_notify/forgot_password.no.html.erb +0 -11
  186. data/app/views/user_notify/monitoring.en.html.erb +0 -3
  187. data/app/views/user_notify/monitoring.no.html.erb +0 -3
  188. data/app/views/user_notify/monitoring_invitation.en.html.erb +0 -7
  189. data/app/views/user_notify/monitoring_invitation.no.html.erb +0 -7
  190. data/app/views/user_notify/signup.en.html.erb +0 -12
  191. data/app/views/user_notify/signup.no.html.erb +0 -12
  192. data/app/views/work_lock_notify/lock.en.html.erb +0 -7
  193. data/app/views/work_lock_notify/lock.no.html.erb +0 -7
  194. data/app/views/work_lock_notify/nag.en.html.erb +0 -6
  195. data/app/views/work_lock_notify/nag.no.html.erb +0 -7
  196. data/app/views/work_locks/_form.rhtml +0 -10
  197. data/app/views/work_locks/edit.rhtml +0 -9
  198. data/app/views/work_locks/list.rhtml +0 -25
  199. data/app/views/work_locks/new.rhtml +0 -8
  200. data/app/views/work_locks/show.rhtml +0 -8
  201. data/app/views/works/_buttons.rhtml +0 -2
  202. data/app/views/works/_description_list.rhtml +0 -5
  203. data/app/views/works/_form.rhtml +0 -107
  204. data/app/views/works/_new_row.rhtml +0 -141
  205. data/app/views/works/_row.rhtml +0 -115
  206. data/app/views/works/_row_field.rhtml +0 -17
  207. data/app/views/works/_task_id_list.rhtml +0 -5
  208. data/app/views/works/_weekly_work_sheet_buttons.rhtml +0 -22
  209. data/app/views/works/daily_work_sheet.rhtml +0 -108
  210. data/app/views/works/edit.rhtml +0 -11
  211. data/app/views/works/list.rhtml +0 -148
  212. data/app/views/works/list_excel.rhtml +0 -114
  213. data/app/views/works/new.rhtml +0 -12
  214. data/app/views/works/show.rhtml +0 -10
  215. data/app/views/works/timeliste.rhtml +0 -884
  216. data/app/views/works/update_new_row.rjs +0 -28
  217. data/app/views/works/update_row.rjs +0 -18
  218. data/app/views/works/update_time.rjs +0 -3
  219. data/app/views/works/weekly_work_sheet.rhtml +0 -64
  220. data/app/views/works/weekly_work_sheet_details.rhtml +0 -102
  221. data/backlog.gemspec +0 -44
  222. data/config.ru +0 -4
  223. data/config/application.rb +0 -11
  224. data/config/boot.rb +0 -13
  225. data/config/database.yml +0 -15
  226. data/config/database.yml~ +0 -17
  227. data/config/environment.rb +0 -100
  228. data/config/environments/development.rb +0 -30
  229. data/config/environments/development.rb.rails2 +0 -26
  230. data/config/environments/production.rb +0 -33
  231. data/config/environments/test.rb +0 -24
  232. data/config/environments/user_environment.rb +0 -21
  233. data/config/initializers/backtrace_silencers.rb +0 -7
  234. data/config/initializers/inflections.rb +0 -10
  235. data/config/initializers/jdbc.rb +0 -7
  236. data/config/initializers/mime_types.rb +0 -5
  237. data/config/initializers/secret_token.rb +0 -7
  238. data/config/initializers/session_store.rb +0 -8
  239. data/config/locales/en.yml +0 -200
  240. data/config/locales/no.yml +0 -193
  241. data/config/mime_types.yaml +0 -1
  242. data/config/routes.rb +0 -5
  243. data/config/war.rb +0 -27
  244. data/config/warble.rb +0 -84
  245. data/cruise_build.sh +0 -14
  246. data/cruise_config.rb +0 -5
  247. data/db/migrate/001_create_tasks.rb +0 -22
  248. data/db/migrate/003_add_estimation_points.rb +0 -16
  249. data/db/migrate/004_add_period.rb +0 -63
  250. data/db/migrate/005_add_field_work_started_at.rb +0 -9
  251. data/db/migrate/006_works_data_fix.rb +0 -13
  252. data/db/migrate/007_add_task_created_at.rb +0 -23
  253. data/db/migrate/008_add_backlog_options.rb +0 -13
  254. data/db/migrate/009_add_subtasks.rb +0 -29
  255. data/db/migrate/010_add_work_start.rb +0 -9
  256. data/db/migrate/011_login_sugar.rb +0 -21
  257. data/db/migrate/012_add_resolution.rb +0 -12
  258. data/db/migrate/013_create_estimates.rb +0 -20
  259. data/db/migrate/014_add_customer_option.rb +0 -11
  260. data/db/migrate/015_add_user_option.rb +0 -33
  261. data/db/migrate/016_add_invoicable_flag.rb +0 -11
  262. data/db/migrate/017_increase_backlog_name_limit.rb +0 -10
  263. data/db/migrate/018_create_groups.rb +0 -118
  264. data/db/migrate/019_remove_unique_index_for_period_position.rb +0 -9
  265. data/db/migrate/020_create_task_files.rb +0 -17
  266. data/db/migrate/021_create_work_accounts.rb +0 -111
  267. data/db/migrate/022_remove_track_done_flag.rb +0 -9
  268. data/db/migrate/023_add_indices_for_burn_down_chart.rb +0 -13
  269. data/db/migrate/024_add_sprint_option.rb +0 -10
  270. data/db/migrate/025_add_simple_auditing_of_tasks.rb +0 -11
  271. data/db/migrate/026_add_users_to_tasks.rb +0 -14
  272. data/db/migrate/027_create_work_locks.rb +0 -25
  273. data/db/migrate/028_create_absences.rb +0 -34
  274. data/db/migrate/029_add_work_comments.rb +0 -9
  275. data/db/migrate/030_create_public_holidays.rb +0 -11
  276. data/db/migrate/031_expand_work_done_precision.rb +0 -9
  277. data/db/migrate/20100720124707_merge_work_account_into_backlog.rb +0 -74
  278. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb +0 -22
  279. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb~ +0 -22
  280. data/db/schema.rb +0 -159
  281. data/db/seeds.rb +0 -7
  282. data/db/test.db +0 -0
  283. data/etc/backlog.conf +0 -32
  284. data/ext/mkrf_conf.rb +0 -26
  285. data/lib/class_table_inheritance.rb +0 -224
  286. data/lib/postgresql-8.2-504.jdbc4.jar +0 -0
  287. data/lib/tasks/jdbc.rake +0 -8
  288. data/lib/url_for_fix.rb +0 -30
  289. data/nbproject/private/config.properties +0 -0
  290. data/nbproject/private/private.properties +0 -1
  291. data/nbproject/private/private.xml +0 -4
  292. data/nbproject/private/rake-t.txt +0 -95
  293. data/nbproject/project.properties +0 -4
  294. data/nbproject/project.xml +0 -9
  295. data/public/404.html +0 -26
  296. data/public/422.html +0 -26
  297. data/public/500.html +0 -26
  298. data/public/Frav/303/246rsskjema.xls +0 -0
  299. data/public/applets/bsf.jar +0 -0
  300. data/public/applets/jruby.jar +0 -0
  301. data/public/favicon.ico +0 -0
  302. data/public/images/add.png +0 -0
  303. data/public/images/add.svg +0 -70
  304. data/public/images/ajax-loading.gif +0 -0
  305. data/public/images/appunti_architetto_franc_01.svg +0 -92
  306. data/public/images/arrow-down.gif +0 -0
  307. data/public/images/arrow-up.gif +0 -0
  308. data/public/images/arrow07_2.png +0 -0
  309. data/public/images/arrow07_4.png +0 -0
  310. data/public/images/arrow_down.png +0 -0
  311. data/public/images/arrow_down.svg +0 -59
  312. data/public/images/arrow_left.png +0 -0
  313. data/public/images/arrow_left.svg +0 -59
  314. data/public/images/arrow_right.png +0 -0
  315. data/public/images/arrow_right.svg +0 -59
  316. data/public/images/arrow_up.png +0 -0
  317. data/public/images/arrow_up.svg +0 -59
  318. data/public/images/black-70.png +0 -0
  319. data/public/images/black.png +0 -0
  320. data/public/images/blank.jpg +0 -0
  321. data/public/images/blank.png +0 -0
  322. data/public/images/cestino_pieno_architetto_01.svg +0 -470
  323. data/public/images/checkmark.png +0 -0
  324. data/public/images/checkmark_org.png +0 -0
  325. data/public/images/clipboard.png +0 -0
  326. data/public/images/clipboard.svg +0 -62
  327. data/public/images/construction_hammer_jon__01.svg +0 -116
  328. data/public/images/delete.png +0 -0
  329. data/public/images/email.png +0 -0
  330. data/public/images/email_grey.png +0 -0
  331. data/public/images/eraser.png +0 -0
  332. data/public/images/eraser_org.png +0 -0
  333. data/public/images/ernes_stop.png +0 -0
  334. data/public/images/ernes_stop_org.png +0 -0
  335. data/public/images/flag_red.png +0 -0
  336. data/public/images/flag_yellow.png +0 -0
  337. data/public/images/grab.png +0 -0
  338. data/public/images/grab_gray.png +0 -0
  339. data/public/images/group.png +0 -0
  340. data/public/images/hammer.png +0 -0
  341. data/public/images/header.jpg +0 -0
  342. data/public/images/nextlabel.gif +0 -0
  343. data/public/images/pagebak.jpg +0 -0
  344. data/public/images/paper3.svg +0 -54
  345. data/public/images/period.png +0 -0
  346. data/public/images/period_org.png +0 -0
  347. data/public/images/person.org.png +0 -0
  348. data/public/images/prevlabel.gif +0 -0
  349. data/public/images/question.svg +0 -56
  350. data/public/images/rails.png +0 -0
  351. data/public/images/refresh.png +0 -0
  352. data/public/images/rmagick.gif +0 -0
  353. data/public/images/rmagick_270.gif +0 -0
  354. data/public/images/tabella_architetto_franc_01.svg +0 -105
  355. data/public/images/task.png +0 -0
  356. data/public/images/text-x-generic.png +0 -0
  357. data/public/images/user group.png +0 -0
  358. data/public/images/user.png +0 -0
  359. data/public/images/view_fullscreen.png +0 -0
  360. data/public/images/work_account.png +0 -0
  361. data/public/javascripts/application.js +0 -2
  362. data/public/javascripts/builder.js +0 -136
  363. data/public/javascripts/controls.js +0 -965
  364. data/public/javascripts/dragdrop.js +0 -974
  365. data/public/javascripts/effects.js +0 -1123
  366. data/public/javascripts/lightwindow.js +0 -1921
  367. data/public/javascripts/prototype.js +0 -6001
  368. data/public/javascripts/rails.js +0 -175
  369. data/public/javascripts/ruby.js +0 -46
  370. data/public/javascripts/scriptaculous.js +0 -58
  371. data/public/javascripts/slider.js +0 -275
  372. data/public/javascripts/sound.js +0 -55
  373. data/public/javascripts/unittest.js +0 -568
  374. data/public/javascripts/zapatec/utils/transport.js +0 -2217
  375. data/public/javascripts/zapatec/utils/utils.js +0 -1799
  376. data/public/javascripts/zapatec/utils/zapatec.js +0 -90
  377. data/public/javascripts/zapatec/utils/zpeventdriven.js +0 -212
  378. data/public/javascripts/zapatec/utils/zpwidget.js +0 -729
  379. data/public/javascripts/zapatec/zpcal/lang/calendar-no.js +0 -124
  380. data/public/javascripts/zapatec/zpcal/src/calendar-core.js +0 -2878
  381. data/public/javascripts/zapatec/zpcal/src/calendar-date-core.js +0 -348
  382. data/public/javascripts/zapatec/zpcal/src/calendar-setup.js +0 -360
  383. data/public/javascripts/zapatec/zpcal/src/calendar.js +0 -35
  384. data/public/robots.txt +0 -5
  385. data/public/stylesheets/backlog.css +0 -135
  386. data/public/stylesheets/lightwindow.css +0 -376
  387. data/public/stylesheets/mwrt002.css +0 -54
  388. data/public/stylesheets/mwrt002MAC.css +0 -3
  389. data/public/stylesheets/mwrt002NN.css +0 -3
  390. data/public/stylesheets/scaffold.css +0 -74
  391. data/public/stylesheets/user.css +0 -74
  392. data/public/stylesheets/zpcal/themes/green.css +0 -153
  393. data/public/stylesheets/zpcal/themes/layouts/layout-2d.css +0 -134
  394. data/public/stylesheets/zpcal/themes/layouts/layout-common.css +0 -74
  395. data/public/stylesheets/zpcal/themes/menuarrow.gif +0 -0
  396. data/public/stylesheets/zpcal/themes/scroller-down.gif +0 -0
  397. data/public/stylesheets/zpcal/themes/scroller-up.gif +0 -0
  398. data/script/rails +0 -6
  399. data/test/client/login.rb +0 -23
  400. data/test/client/login_test.rb +0 -64
  401. data/test/client/setup.rb +0 -25
  402. data/test/fixtures/absences.yml +0 -11
  403. data/test/fixtures/configurations.yml +0 -5
  404. data/test/fixtures/customers.yml +0 -7
  405. data/test/fixtures/estimates.yml +0 -10
  406. data/test/fixtures/groups.yml +0 -6
  407. data/test/fixtures/groups_users.yml +0 -3
  408. data/test/fixtures/parties.yml +0 -32
  409. data/test/fixtures/periods.yml +0 -24
  410. data/test/fixtures/projects.yml +0 -8
  411. data/test/fixtures/public_holidays.yml +0 -7
  412. data/test/fixtures/task_files.yml +0 -13
  413. data/test/fixtures/tasks.yml +0 -82
  414. data/test/fixtures/users.yml +0 -59
  415. data/test/fixtures/work_lock_subscriptions.yml +0 -7
  416. data/test/fixtures/work_locks.yml +0 -11
  417. data/test/fixtures/works.yml +0 -47
  418. data/test/functional/absences_controller_test.rb +0 -93
  419. data/test/functional/customers_controller_test.rb +0 -93
  420. data/test/functional/dashboard_controller_test.rb +0 -18
  421. data/test/functional/estimates_controller_test.rb +0 -40
  422. data/test/functional/groups_controller_test.rb +0 -120
  423. data/test/functional/parties_controller_test.rb +0 -35
  424. data/test/functional/periods_controller_test.rb +0 -297
  425. data/test/functional/projects_controller_test.rb +0 -152
  426. data/test/functional/public_holidays_controller_test.rb +0 -93
  427. data/test/functional/search_controller_test.rb +0 -24
  428. data/test/functional/task_files_controller_test.rb +0 -29
  429. data/test/functional/tasks_controller_test.rb +0 -229
  430. data/test/functional/user_controller_test.rb +0 -261
  431. data/test/functional/welcome_controller_test.rb +0 -62
  432. data/test/functional/work_locks_controller_test.rb +0 -93
  433. data/test/functional/works_controller_test.rb +0 -220
  434. data/test/integration/user_system_test.rb +0 -95
  435. data/test/mocks/test/clock.rb +0 -14
  436. data/test/performance/browsing_test.rb +0 -9
  437. data/test/performance/common.rb +0 -91
  438. data/test/performance/jetty_test.rb +0 -15
  439. data/test/performance/server_test.rb +0 -17
  440. data/test/test_helper.rb +0 -119
  441. data/test/test_helper.rb~ +0 -121
  442. data/test/unit/absence_test.rb +0 -29
  443. data/test/unit/big_decimal_yaml_fix_test.rb +0 -15
  444. data/test/unit/configuration_test.rb +0 -10
  445. data/test/unit/customer_test.rb +0 -10
  446. data/test/unit/estimate_test.rb +0 -10
  447. data/test/unit/group_test.rb +0 -10
  448. data/test/unit/party_test.rb +0 -10
  449. data/test/unit/period_test.rb +0 -9
  450. data/test/unit/public_holiday_test.rb +0 -10
  451. data/test/unit/task_file_test.rb +0 -10
  452. data/test/unit/task_test.rb +0 -73
  453. data/test/unit/time_of_day_test.rb +0 -23
  454. data/test/unit/user_test.rb +0 -148
  455. data/test/unit/work_lock_subscription_test.rb +0 -10
  456. data/test/unit/work_lock_test.rb +0 -10
  457. data/test/unit/work_test.rb +0 -81
  458. data/vendor/plugins/acts_as_list/README +0 -23
  459. data/vendor/plugins/acts_as_list/init.rb +0 -3
  460. data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -256
  461. data/vendor/plugins/acts_as_list/test/list_test.rb +0 -332
  462. data/vendor/plugins/acts_as_tree/README +0 -26
  463. data/vendor/plugins/acts_as_tree/Rakefile +0 -22
  464. data/vendor/plugins/acts_as_tree/init.rb +0 -1
  465. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +0 -96
  466. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  467. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +0 -219
  468. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  469. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  470. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  471. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  472. data/vendor/plugins/assert_cookie/MIT-LICENSE +0 -7
  473. data/vendor/plugins/assert_cookie/README +0 -6
  474. data/vendor/plugins/assert_cookie/Rakefile +0 -21
  475. data/vendor/plugins/assert_cookie/init.rb +0 -1
  476. data/vendor/plugins/assert_cookie/lib/assert_cookie.rb +0 -73
  477. data/vendor/plugins/assert_cookie/meta.yml +0 -7
  478. data/vendor/plugins/assert_cookie/test/test_assert_cookie.rb +0 -124
  479. data/vendor/plugins/assert_cookie/test/test_helper.rb +0 -31
  480. data/vendor/plugins/auto_complete/README +0 -23
  481. data/vendor/plugins/auto_complete/Rakefile +0 -22
  482. data/vendor/plugins/auto_complete/init.rb +0 -2
  483. data/vendor/plugins/auto_complete/lib/auto_complete.rb +0 -47
  484. data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +0 -143
  485. data/vendor/plugins/auto_complete/test/auto_complete_test.rb +0 -67
  486. data/vendor/plugins/backlog_jira/init.rb +0 -66
  487. data/vendor/plugins/dynamic_form/MIT-LICENSE +0 -20
  488. data/vendor/plugins/dynamic_form/README +0 -13
  489. data/vendor/plugins/dynamic_form/Rakefile +0 -10
  490. data/vendor/plugins/dynamic_form/dynamic_form.gemspec +0 -12
  491. data/vendor/plugins/dynamic_form/init.rb +0 -1
  492. data/vendor/plugins/dynamic_form/lib/action_view/helpers/dynamic_form.rb +0 -300
  493. data/vendor/plugins/dynamic_form/lib/action_view/locale/en.yml +0 -8
  494. data/vendor/plugins/dynamic_form/lib/dynamic_form.rb +0 -5
  495. data/vendor/plugins/dynamic_form/test/dynamic_form_i18n_test.rb +0 -42
  496. data/vendor/plugins/dynamic_form/test/dynamic_form_test.rb +0 -370
  497. data/vendor/plugins/dynamic_form/test/test_helper.rb +0 -9
  498. data/vendor/plugins/has_history/README +0 -12
  499. data/vendor/plugins/has_history/Rakefile +0 -22
  500. data/vendor/plugins/has_history/generators/history_migration/history_migration_generator.rb +0 -30
  501. data/vendor/plugins/has_history/generators/history_migration/templates/migration.rb +0 -14
  502. data/vendor/plugins/has_history/generators/history_model/history_model_generator.rb +0 -39
  503. data/vendor/plugins/has_history/generators/history_model/templates/fixtures.yml +0 -17
  504. data/vendor/plugins/has_history/generators/history_model/templates/functional_test.rb +0 -129
  505. data/vendor/plugins/has_history/generators/history_model/templates/migration.rb +0 -14
  506. data/vendor/plugins/has_history/generators/history_model/templates/model.rb +0 -4
  507. data/vendor/plugins/has_history/generators/history_model/templates/unit_test.rb +0 -75
  508. data/vendor/plugins/has_history/init.rb +0 -5
  509. data/vendor/plugins/has_history/install.rb +0 -1
  510. data/vendor/plugins/has_history/lib/has_history.rb +0 -178
  511. data/vendor/plugins/has_history/lib/tasks/has_history_tasks.rake +0 -4
  512. data/vendor/plugins/has_history/test/has_history_test.rb +0 -31
  513. data/vendor/plugins/has_history/test/ignorant_master.rb +0 -3
  514. data/vendor/plugins/has_history/test/ignorant_master_history.rb +0 -4
  515. data/vendor/plugins/has_history/test/lone_master.rb +0 -42
  516. data/vendor/plugins/has_history/test/paired_master.rb +0 -5
  517. data/vendor/plugins/has_history/test/paired_master_history.rb +0 -5
  518. data/vendor/plugins/has_history/test/test_helper.rb +0 -154
  519. data/vendor/plugins/has_history/uninstall.rb +0 -1
  520. data/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +0 -432
  521. data/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +0 -297
  522. data/vendor/plugins/rails_time/MIT-LICENSE +0 -20
  523. data/vendor/plugins/rails_time/README +0 -28
  524. data/vendor/plugins/rails_time/init.rb +0 -2
  525. data/vendor/plugins/rails_time/lib/activerecord_time_extension.rb +0 -28
  526. data/vendor/plugins/rails_time/lib/time_of_day.rb +0 -88
  527. data/vendor/plugins/rails_time/test/database.yml +0 -18
  528. data/vendor/plugins/rails_time/test/debug.log +0 -1
  529. data/vendor/plugins/rails_time/test/rails_time_test.rb +0 -122
  530. data/vendor/plugins/rails_time/test/schema.rb +0 -10
  531. data/vendor/plugins/rails_time/test/test_helper.rb +0 -17
  532. data/vendor/plugins/verification/MIT-LICENSE +0 -20
  533. data/vendor/plugins/verification/README +0 -34
  534. data/vendor/plugins/verification/Rakefile +0 -22
  535. data/vendor/plugins/verification/init.rb +0 -3
  536. data/vendor/plugins/verification/lib/action_controller/verification.rb +0 -132
  537. data/vendor/plugins/verification/test/test_helper.rb +0 -18
  538. data/vendor/plugins/verification/test/verification_test.rb +0 -270
  539. data/vendor/plugins/will_paginate/LICENSE +0 -18
  540. data/vendor/plugins/will_paginate/README +0 -138
  541. data/vendor/plugins/will_paginate/Rakefile +0 -27
  542. data/vendor/plugins/will_paginate/init.rb +0 -4
  543. data/vendor/plugins/will_paginate/lib/will_paginate.rb +0 -61
  544. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +0 -132
  545. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +0 -80
  546. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +0 -181
  547. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +0 -206
  548. data/vendor/plugins/will_paginate/test/array_pagination_test.rb +0 -131
  549. data/vendor/plugins/will_paginate/test/boot.rb +0 -23
  550. data/vendor/plugins/will_paginate/test/console +0 -9
  551. data/vendor/plugins/will_paginate/test/finder_test.rb +0 -290
  552. data/vendor/plugins/will_paginate/test/fixtures/admin.rb +0 -3
  553. data/vendor/plugins/will_paginate/test/fixtures/developer.rb +0 -11
  554. data/vendor/plugins/will_paginate/test/fixtures/developers_projects.yml +0 -13
  555. data/vendor/plugins/will_paginate/test/fixtures/project.rb +0 -15
  556. data/vendor/plugins/will_paginate/test/fixtures/projects.yml +0 -7
  557. data/vendor/plugins/will_paginate/test/fixtures/replies.yml +0 -34
  558. data/vendor/plugins/will_paginate/test/fixtures/reply.rb +0 -5
  559. data/vendor/plugins/will_paginate/test/fixtures/schema.rb +0 -38
  560. data/vendor/plugins/will_paginate/test/fixtures/topic.rb +0 -4
  561. data/vendor/plugins/will_paginate/test/fixtures/topics.yml +0 -30
  562. data/vendor/plugins/will_paginate/test/fixtures/user.rb +0 -2
  563. data/vendor/plugins/will_paginate/test/fixtures/users.yml +0 -35
  564. data/vendor/plugins/will_paginate/test/helper.rb +0 -25
  565. data/vendor/plugins/will_paginate/test/lib/activerecord_test_case.rb +0 -23
  566. data/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +0 -67
  567. data/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +0 -13
  568. data/vendor/plugins/will_paginate/test/pagination_test.rb +0 -240
@@ -1,22 +0,0 @@
1
- class RenameBacklogsToProjects < ActiveRecord::Migration
2
- def self.up
3
- remove_foreign_key "backlogs", "backlogs_customer_id_fkey"
4
- remove_foreign_key "tasks", "tasks_backlog_id_fkey"
5
- remove_foreign_key "work_lock_subscriptions", "work_lock_subscriptions_backlog_id_fkey"
6
- remove_foreign_key "works", "works_backlog_id_fkey"
7
-
8
- rename_table :backlogs, :projects
9
- rename_column :tasks, :backlog_id, :project_id
10
- rename_column :work_lock_subscriptions, :backlog_id, :project_id
11
- rename_column :works, :backlog_id, :project_id
12
-
13
- add_foreign_key "projects", ["customer_id"], "customers", ["id"], :name => "projects_customer_id_fkey"
14
- add_foreign_key "tasks", ["project_id"], "projects", ["id"], :name => "tasks_project_id_fkey"
15
- add_foreign_key "work_lock_subscriptions", ["project_id"], "projects", ["id"], :name => "work_lock_subscriptions_project_id_fkey"
16
- add_foreign_key "works", ["project_id"], "projects", ["id"], :name => "works_project_id_fkey"
17
- end
18
-
19
- def self.down
20
- raise "Not gonna happen!"
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- class RenameBacklogsToProjects < ActiveRecord::Migration
2
- def self.up
3
- # remove_foreign_key "backlogs", "backlogs_customer_id_fkey"
4
- # remove_foreign_key "tasks", "tasks_backlog_id_fkey"
5
- # remove_foreign_key "work_lock_subscriptions", "work_lock_subscriptions_backlog_id_fkey"
6
- # remove_foreign_key "works", "works_backlog_id_fkey"
7
-
8
- rename_table :backlogs, :projects
9
- rename_column :tasks, :backlog_id, :project_id
10
- rename_column :work_lock_subscriptions, :backlog_id, :project_id
11
- rename_column :works, :backlog_id, :project_id
12
-
13
- add_foreign_key "projects", ["customer_id"], "customers", ["id"], :name => "projects_customer_id_fkey"
14
- add_foreign_key "tasks", ["project_id"], "projects", ["id"], :name => "tasks_project_id_fkey"
15
- add_foreign_key "work_lock_subscriptions", ["project_id"], "projects", ["id"], :name => "work_lock_subscriptions_project_id_fkey"
16
- add_foreign_key "works", ["project_id"], "projects", ["id"], :name => "works_project_id_fkey"
17
- end
18
-
19
- def self.down
20
- raise "Not gonna happen!"
21
- end
22
- end
@@ -1,159 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead
2
- # of editing this file, please use the migrations feature of Active Record to
3
- # incrementally modify your database, and then regenerate this schema definition.
4
- #
5
- # Note that this schema.rb definition is the authoritative source for your
6
- # database schema. If you need to create the application database on another
7
- # system, you should be using db:schema:load, not running all the migrations
8
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
- # you'll amass, the slower it'll run and the greater likelihood for issues).
10
- #
11
- # It's strongly recommended to check this file into your version control system.
12
-
13
- ActiveRecord::Schema.define(:version => 20101006092700) do
14
-
15
- create_table "absences", :force => true do |t|
16
- t.integer "user_id", :null => false
17
- t.date "on", :null => false
18
- t.string "reason", :null => false
19
- end
20
-
21
- create_table "configurations", :force => true do |t|
22
- t.boolean "time_keeper"
23
- end
24
-
25
- create_table "customers", :force => true do |t|
26
- t.string "name", :limit => 64, :null => false
27
- end
28
-
29
- create_table "estimates", :force => true do |t|
30
- t.integer "task_id", :null => false
31
- t.decimal "todo", :precision => 6, :scale => 2, :default => 1.0, :null => false
32
- t.datetime "created_at", :null => false
33
- t.integer "user_id"
34
- end
35
-
36
- add_index "estimates", ["task_id", "created_at"], :name => "index_estimates_on_task_id_and_created_at"
37
-
38
- create_table "groups", :primary_key => "party_id", :force => true do |t|
39
- t.string "name", :null => false
40
- end
41
-
42
- create_table "groups_users", :id => false, :force => true do |t|
43
- t.integer "group_id", :null => false
44
- t.integer "user_id", :null => false
45
- end
46
-
47
- add_index "groups_users", ["group_id", "user_id"], :name => "index_groups_users_on_group_id_and_user_id", :unique => true
48
-
49
- create_table "parties", :force => true do |t|
50
- t.string "type"
51
- end
52
-
53
- create_table "periods", :force => true do |t|
54
- t.integer "position", :null => false
55
- t.date "start_on", :null => false
56
- t.date "end_on", :null => false
57
- t.integer "party_id"
58
- end
59
-
60
- create_table "projects", :force => true do |t|
61
- t.string "name", :limit => 64, :null => false
62
- t.boolean "track_todo"
63
- t.boolean "enable_subtasks", :default => false, :null => false
64
- t.boolean "enable_customer"
65
- t.boolean "enable_users"
66
- t.integer "customer_id"
67
- t.boolean "enable_periods"
68
- t.boolean "track_times", :null => false
69
- end
70
-
71
- create_table "public_holidays", :force => true do |t|
72
- t.date "on", :null => false
73
- end
74
-
75
- create_table "task_files", :force => true do |t|
76
- t.integer "task_id", :null => false
77
- t.string "name", :limit => 64, :null => false
78
- t.string "content_type", :null => false
79
- t.binary "content_data", :null => false
80
- end
81
-
82
- create_table "tasks", :force => true do |t|
83
- t.integer "position"
84
- t.string "description", :limit => 80, :null => false
85
- t.datetime "finished_at"
86
- t.decimal "initial_estimate", :precision => 6, :scale => 2, :default => 1.0, :null => false
87
- t.integer "period_id"
88
- t.datetime "created_at"
89
- t.integer "parent_id"
90
- t.string "resolution", :limit => 16
91
- t.integer "previous_task_id"
92
- t.integer "project_id"
93
- t.text "notes"
94
- t.integer "customer_id"
95
- t.integer "created_by"
96
- t.integer "updated_by"
97
- t.datetime "updated_at"
98
- end
99
-
100
- add_index "tasks", ["parent_id"], :name => "index_tasks_on_parent_id"
101
-
102
- create_table "tasks_users", :id => false, :force => true do |t|
103
- t.integer "task_id", :null => false
104
- t.integer "user_id", :null => false
105
- end
106
-
107
- create_table "user_work_lock_subscriptions", :id => false, :force => true do |t|
108
- t.integer "subscriber_user_id", :null => false
109
- t.integer "user_id", :null => false
110
- end
111
-
112
- create_table "users", :primary_key => "party_id", :force => true do |t|
113
- t.string "login", :limit => 80, :null => false
114
- t.string "salted_password", :limit => 40, :null => false
115
- t.string "email", :limit => 60, :null => false
116
- t.string "first_name", :limit => 40
117
- t.string "last_name", :limit => 40
118
- t.string "salt", :limit => 40, :null => false
119
- t.boolean "verified", :default => false
120
- t.string "role", :limit => 40
121
- t.string "security_token", :limit => 40
122
- t.datetime "token_expiry"
123
- t.boolean "deleted", :default => false
124
- end
125
-
126
- create_table "work_accounts", :force => true do |t|
127
- t.string "name", :limit => 64, :null => false
128
- t.boolean "track_times"
129
- t.string "invoice_code"
130
- end
131
-
132
- create_table "work_lock_subscriptions", :id => false, :force => true do |t|
133
- t.integer "subscriber_user_id", :null => false
134
- t.integer "project_id", :null => false
135
- end
136
-
137
- create_table "work_locks", :force => true do |t|
138
- t.integer "user_id", :null => false
139
- t.date "start_on", :null => false
140
- t.date "end_on", :null => false
141
- end
142
-
143
- create_table "works", :force => true do |t|
144
- t.integer "task_id"
145
- t.decimal "hours", :precision => 6, :scale => 3, :default => 0.0, :null => false
146
- t.datetime "completed_at"
147
- t.integer "user_id"
148
- t.boolean "invoice"
149
- t.integer "customer_id"
150
- t.string "description"
151
- t.date "started_on"
152
- t.time "start_time", :limit => 15
153
- t.text "notes"
154
- t.integer "project_id", :null => false
155
- end
156
-
157
- add_index "works", ["task_id", "completed_at"], :name => "index_works_on_task_id_and_completed_at"
158
-
159
- end
@@ -1,7 +0,0 @@
1
- # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
- #
4
- # Examples:
5
- #
6
- # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
- # Mayor.create(:name => 'Daley', :city => cities.first)
data/db/test.db DELETED
Binary file
@@ -1,32 +0,0 @@
1
- # Uncomment the following line to set the public url for this server.
2
- # Default url is http://localhost:3000/
3
-
4
- # Examples:
5
- # app_url: http://localhost:3000/
6
- # app_url: http://myhost.mydomain/
7
- # app_url: http://myhost.mydomain/backlog
8
-
9
- # Uncomment the following line to override the network port to listen on.
10
- # Default port is 3000.
11
-
12
- # port: 3000
13
-
14
- # Uncomment _one_ of the following sections to override the database connection settings.
15
-
16
- # database:
17
- # adapter: postgresql
18
- # database: backlog_production
19
- # username: root
20
- # password:
21
- # host: localhost
22
-
23
- # database:
24
- # adapter: sqlite
25
- # database: /var/db/backlog_production.db
26
-
27
- # jira:
28
- # url: http://host:port/path
29
- # user: my_jira_user
30
- # password: my_jira_password
31
- # pid: 123, 4242, 345
32
- # fix_version: 10163
@@ -1,26 +0,0 @@
1
- begin
2
- gemfile = File.expand_path('../../Gemfile', __FILE__)
3
- begin
4
- ENV['BUNDLE_GEMFILE'] = gemfile
5
- require 'rubygems'
6
- require 'bundler'
7
- require 'thor'
8
- Bundler.ui = Bundler::UI::Shell.new(Thor::Shell::Basic.new)
9
- Bundler.ui.debug!
10
- Bundler::Installer.install(Bundler.root, Bundler.definition)
11
- rescue Bundler::GemNotFound => e
12
- puts e.message
13
- puts "Try running `bundle install`."
14
- STDERR.puts e.message
15
- STDERR.puts "Try running `bundle install`."
16
- exit!
17
- end if File.exist?(gemfile)
18
- rescue
19
- puts $!.message
20
- puts $!.backtrace.join("\n")
21
- exit(1)
22
- end
23
-
24
- f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
25
- f.write("task :default\n")
26
- f.close
@@ -1,224 +0,0 @@
1
- require 'active_record'
2
- require 'active_record/fixtures'
3
-
4
- # This library makes an ActiveRecord subclass model use one table per subclass level.
5
- # Instances are instances of the _super class_, with a proxy instance handling the subclass attributes
6
- # and method calls.
7
-
8
- # I did get this file from someone else before modyfying it, but I cannot remember who.
9
- # Credits go to whomever feels they deserve it :)
10
-
11
- class ActiveRecord::Base
12
- class_inheritable_array :default_eager_loading
13
-
14
- # FIXME(uwe): Patch ActiveRecord::Base to accept an array of mixed symbols and strings
15
- # FIXME(uwe): Works with ActiveRecord 2.3.8
16
- def self.add_joins!(sql, joins, scope = :auto)
17
- scope = scope(:find) if :auto == scope
18
- merged_joins = scope && scope[:joins] && joins ? merge_joins(scope[:joins], joins) : (joins || scope && scope[:joins])
19
- case merged_joins
20
- when Symbol, Hash, Array
21
-
22
- # BEGIN Original code
23
- # if array_of_strings?(merged_joins)
24
- # sql << merged_joins.join(' ') + " "
25
- # else
26
- # join_dependency = ActiveRecord::Associations::ClassMethods::InnerJoinDependency.new(self, merged_joins, nil)
27
- # sql << " #{join_dependency.join_associations.collect { |assoc| assoc.association_join }.join} "
28
- # end
29
- # END Original code
30
-
31
- # BEGIN New code
32
- if merged_joins.is_a?(Array)
33
- merged_joins.delete_if { |join| sql << " #{join} " if join.is_a?(String) }
34
- end
35
- join_dependency = ActiveRecord::Associations::ClassMethods::InnerJoinDependency.new(self, merged_joins, nil)
36
- sql << " #{join_dependency.join_associations.collect { |assoc| assoc.association_join }.join} "
37
- # END New code
38
-
39
- when String
40
- sql << " #{merged_joins} "
41
- end
42
- end
43
-
44
- class << self
45
- alias_method :has_one_without_cti, :has_one
46
-
47
- def find_with_default_eager_loading(*params)
48
- if default_eager_loading
49
- if params.last.is_a?(Hash)
50
- opts = params.last
51
- else
52
- opts = {}
53
- params.push(opts)
54
- end
55
- opts[:joins] ||= []
56
- opts[:joins] = [opts[:joins]] unless opts[:joins].is_a?(Array)
57
- opts[:joins] += default_eager_loading
58
- opts[:readonly] = false if opts[:readonly].nil?
59
- end
60
- find_without_default_eager_loading(*params)
61
- end
62
-
63
- alias_method_chain :find, :default_eager_loading
64
-
65
- def class_table_inheritance(options = {})
66
- table_name = options[:subclass_table] || name.demodulize.tableize
67
- primary_key_name = options[:subclass_foreign_key] || "#{superclass.name.demodulize.underscore}_id"
68
-
69
- has_extra_columns_from(
70
- :table => table_name, :foreign_key => primary_key_name,
71
- :proxy_class_name => 'ExtraColumns',
72
- :proxy_class_belongs_to => self.name,
73
- :delegate_new_associations => true,
74
- :save_before_superclass_callbacks => true
75
- )
76
- end
77
-
78
- def has_extra_columns_from(options, &block)
79
- table_name = options[:table]
80
- primary_key_name = options[:foreign_key] || "#{name.demodulize.underscore}_id"
81
-
82
- proxy_class_name = options[:proxy_class_name] || "ExtraColumnsFor#{table_name.camelize}"
83
- proxy_class_namespace = (options[:proxy_class_namespace] || name).constantize
84
- proxy_symbol = "extra_columns_for_#{table_name}".to_sym
85
-
86
- proxy_class = proxy_class_namespace.const_get(proxy_class_name) rescue nil
87
- unless proxy_class
88
- proxy_class = proxy_class_namespace.const_set(proxy_class_name, Class.new(ActiveRecord::Base))
89
- proxy_class.class_eval do
90
- public :write_attribute
91
- set_table_name table_name
92
- set_primary_key primary_key_name
93
- def self.reloadable?; false; end
94
- end
95
- proxy_class.class_eval(&block) if block_given?
96
- end
97
-
98
- has_one_without_cti proxy_symbol, :class_name => proxy_class.name, :foreign_key => primary_key_name, :dependent => :destroy
99
- validates_associated proxy_symbol
100
-
101
- if options[:save_before_superclass_callbacks] && false
102
- # We need the after_save filter for this association to run /before/ any other after_save's already registered on a superclass,
103
- # and before any after_creates or after_updates. This calls for some hackery:
104
-
105
- proxy_save_callback = after_save_callback_chain.pop
106
- after_create_callback_chain.unshift(proxy_save_callback)
107
- after_update_callback_chain.unshift(proxy_save_callback)
108
- end
109
-
110
- # adds this to the class-inheritable array of default eager loads:
111
- self.default_eager_loading = [proxy_symbol] unless options[:default_eager_loading] == false
112
-
113
- class_eval <<-EOV
114
- alias_method :#{proxy_symbol}_old, :#{proxy_symbol}
115
- def #{proxy_symbol}
116
- #{proxy_symbol}_old or self.#{proxy_symbol} = #{proxy_class.name}.new
117
- end
118
- def save(*args)
119
- self.#{proxy_symbol} ||= #{proxy_class.name}.new
120
- super
121
- end
122
- # this doesn't happen automatically on update, so we'll make it:
123
- after_update {|record| record.#{proxy_symbol}.save }
124
-
125
- def write_attribute_with_proxy(attr_name, attr_value)
126
- if self.class.columns.find {|c| c.name == attr_name}
127
- write_attribute_without_proxy(attr_name, attr_value)
128
- else
129
- self.#{proxy_symbol}.write_attribute(attr_name, attr_value)
130
- end
131
- end
132
- alias_method_chain :write_attribute, :proxy
133
-
134
- alias_method :old_attributes, :attributes
135
- def attributes
136
- all_attributes = old_attributes.update(self.#{proxy_symbol}.attributes)
137
- all_attributes.delete(#{proxy_class_name}.primary_key) if self.class.primary_key != #{proxy_class_name}.primary_key
138
- all_attributes
139
- end
140
-
141
- class << self
142
- alias_method :method_missing_super, :method_missing
143
- def method_missing(method_symbol, *parameters)
144
- if method_symbol.to_s =~ /^find_by_(.+)/
145
- attributes = $1.split('_and_')
146
- super_attributes = attributes & columns.map{|c| c.name}
147
- sub_attributes = attributes - super_attributes
148
- if super_attributes.size > 0
149
- # TODO (uwe): Only use super attributes first
150
- # then filter by sub_attributes
151
- method_missing_super(method_symbol, *parameters)
152
- else
153
- result = #{proxy_class_name}.method_missing(method_symbol, parameters)
154
- if result
155
- if result.is_a? Array
156
- result.map {|entry| entry.base}
157
- else
158
- result = result.base
159
- end
160
- else
161
- result
162
- end
163
- end
164
- else
165
- method_missing_super(method_symbol, *parameters)
166
- end
167
- end
168
- # TODO (uwe): validates_uniqueness_of should only be delegated for columns not in super class???
169
- delegate :validates_uniqueness_of, {:to => #{proxy_class_name}}
170
-
171
- delegate :foreign_keys, {:to => #{proxy_class_name}}
172
- end
173
- EOV
174
-
175
- delegate_methods = proxy_class.column_names
176
- delegate_methods += proxy_class.column_names.map {|name| "#{name}=".to_sym }
177
- delegate_methods += proxy_class.column_names.map {|name| "#{name}?".to_sym }
178
- proxy_class.reflect_on_all_associations.each do |reflection|
179
- delegate_methods += case reflection.macro
180
- when :has_many, :has_and_belongs_to_many
181
- [reflection.name, "#{reflection.name}=".to_sym, "#{reflection.name.to_s.singularize}_ids=".to_sym]
182
- when :has_one
183
- [reflection.name, "#{reflection.name}=".to_sym, "build_#{reflection.name}".to_sym, "create_#{reflection.name}".to_sym]
184
- when :belongs_to
185
- [reflection.name, "#{reflection.name}=".to_sym, "#{reflection.name}?".to_sym, "build_#{reflection.name}".to_sym, "create_#{reflection.name}".to_sym]
186
- end
187
- end
188
- delegate(*(delegate_methods << {:to => proxy_symbol}))
189
-
190
- proxy_class.belongs_to(:base, :class_name => options[:proxy_class_belongs_to], :foreign_key => primary_key_name) if options[:proxy_class_belongs_to]
191
-
192
- if options[:delegate_new_associations]
193
- class_eval <<-EOV
194
- # associations on this subclass get added to the proxy class, and then the relevant methods delegated to the proxy object
195
- def self.belongs_to(name, *params)
196
- ExtraColumns.belongs_to(name, *params)
197
- delegate name, "\#{name}=".to_sym, "\#{name}?".to_sym, "build_\#{name}".to_sym, "create_\#{name}".to_sym, :to => :#{proxy_symbol}
198
- end
199
-
200
- def self.has_one(name, *params)
201
- ExtraColumns.has_one(name, *params)
202
- delegate name, "\#{name}=".to_sym, "build_\#{name}".to_sym, "create_\#{name}".to_sym, :to => :#{proxy_symbol}
203
- end
204
-
205
- def self.has_many(name, *params)
206
- ExtraColumns.has_many(name, *params)
207
- delegate name, "\#{name}=".to_sym, "\#{name.to_s.singularize}_ids=".to_sym, :to => :#{proxy_symbol}
208
- end
209
-
210
- def self.has_and_belongs_to_many(name, *params)
211
- ExtraColumns.has_and_belongs_to_many(name, *params)
212
- delegate name, "\#{name}=".to_sym, "\#{name.to_s.singularize}_ids=".to_sym, :to => :#{proxy_symbol}
213
- end
214
- EOV
215
- end
216
- end
217
- end
218
- end
219
-
220
- class Fixtures
221
- def primary_key_name
222
- @connection.primary_key(@table_name)
223
- end
224
- end