├── public ├── favicon.ico ├── google1efce4ada1c20ee7.html ├── robots.txt ├── stylesheets │ ├── iteration │ │ ├── typography.css │ │ ├── layout.css │ │ └── colours.css │ ├── iteration_planning │ │ ├── typography.css │ │ └── colours.css │ ├── story │ │ ├── typography.css │ │ └── colours.css │ └── iteration_active │ │ ├── typography.css │ │ └── colours.css ├── images │ ├── burndown.png │ ├── new_story.png │ ├── story_card.png │ ├── try_it_free.png │ ├── fella_testing.gif │ ├── fella_testing.png │ ├── simply_agile.png │ ├── active_iteration.png │ ├── arrow_from_grey.png │ ├── arrow_large_left.png │ ├── underline_green.png │ ├── arrow_large_right.png │ ├── arrow_small_right.gif │ ├── arrow_small_right.png │ ├── button_background.png │ ├── fella_in_progress.gif │ ├── fella_in_progress.png │ ├── new_story_highlight.png │ ├── planning_iteration.png │ ├── simply_agile_large.png │ ├── simply_agile_twitter.png │ ├── arrow_large_left_highlighted.png │ ├── arrow_large_right_highlighted.png │ ├── arrow_small_right_green_background.png │ ├── arrow_small_right_grey_background.png │ ├── arrow_small_right_orange_background.png │ └── a_simple_tool_for_effective_agile_teams.png └── javascripts │ ├── flash.js │ └── backlog_prioritisation.js ├── log └── .gitignore ├── db ├── .gitignore └── migrate │ ├── 20090317120007_add_verify_by_to_users.rb │ ├── 20090306101907_add_estimate_to_stories.rb │ ├── 20090323183452_add_end_date_to_iterations.rb │ ├── 20090310131740_add_description_to_projects.rb │ ├── 20090311171715_add_start_date_to_iteration.rb │ ├── 20090312164111_add_status_to_stories.rb │ ├── 20090313124609_add_priority_to_stories.rb │ ├── 20090401132534_add_suspended_to_organisations.rb │ ├── 20090402111030_add_has_failed_to_payment_method.rb │ ├── 20090406212619_add_last_four_digits_to_invoices.rb │ ├── 20090311112021_add_initial_estimate_to_iteration.rb │ ├── 20090318171027_add_acknowledgement_token_to_users.rb │ ├── 20090303161221_create_organisations.rb │ ├── 20090330205513_add_payment_plan_id_to_organisations.rb │ ├── 20090325134154_add_sponsor_id_to_organisation_member.rb │ ├── 20090402152648_remove_address_line3_from_billing_address.rb │ ├── 20090303010437_create_projects.rb │ ├── 20090402160907_add_repeat_payment_token_to_payment_methods.rb │ ├── 20090402143027_create_voids.rb │ ├── 20090303141832_create_users.rb │ ├── 20090316171557_add_verifiction_to_user.rb │ ├── 20090325133236_create_story_team_members.rb │ ├── 20090330205043_create_payment_plans.rb │ ├── 20090310175005_create_burndown_data_points.rb │ ├── 20090304004418_create_stories.rb │ ├── 20090323131037_create_organisation_members.rb │ ├── 20090327110522_create_story_actions.rb │ ├── 20090402091521_create_captures.rb │ ├── 20090304193819_create_acceptance_criteria.rb │ ├── 20090312123836_remove_started_on_and_finished_on_from_iteration.rb │ ├── 20090318093902_create_organisation_sponsors.rb │ ├── 20090325141402_delete_organisation_sponsors.rb │ ├── 20090303213012_create_iterations.rb │ ├── 20090401164134_add_payment_dates_to_organisations.rb │ ├── 20090401182040_create_authorisations.rb │ ├── 20090403091156_create_repeats.rb │ ├── 20090401162346_create_payments.rb │ ├── 20090403130529_rename_payment_method_fields_to_be_same_as_active_merchant.rb │ ├── 20090325101204_move_acknowledgement_token_from_user_to_organisation_member.rb │ ├── 20090621194747_replace_repeat_payment_token_with_initial_payment_in_payment_methods.rb │ ├── 20090331102153_create_payment_methods.rb │ ├── 20090331105217_add_limits_to_payment_plans.rb │ ├── 20090331120108_create_billing_addresses.rb │ ├── 20090406105314_create_invoices.rb │ └── 20090406174801_add_columns_to_invoices.rb ├── vendor └── plugins │ ├── email-spec │ ├── install.rb │ ├── examples │ │ └── rails_root │ │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ └── rails.png │ │ │ ├── javascripts │ │ │ │ └── application.js │ │ │ ├── robots.txt │ │ │ └── dispatch.rb │ │ │ ├── cucumber.yml │ │ │ ├── spec │ │ │ ├── rcov.opts │ │ │ ├── spec.opts │ │ │ ├── models │ │ │ │ └── user_spec.rb │ │ │ ├── model_factory.rb │ │ │ └── controllers │ │ │ │ └── welcome_controller_spec.rb │ │ │ ├── app │ │ │ ├── helpers │ │ │ │ ├── welcome_helper.rb │ │ │ │ └── application_helper.rb │ │ │ ├── models │ │ │ │ ├── user.rb │ │ │ │ └── user_mailer.rb │ │ │ ├── views │ │ │ │ ├── welcome │ │ │ │ │ ├── confirm.html.erb │ │ │ │ │ ├── signup.html.erb │ │ │ │ │ └── index.html.erb │ │ │ │ └── user_mailer │ │ │ │ │ └── signup.erb │ │ │ └── controllers │ │ │ │ └── welcome_controller.rb │ │ │ ├── script │ │ │ ├── plugin │ │ │ ├── runner │ │ │ ├── server │ │ │ ├── console │ │ │ ├── destroy │ │ │ ├── generate │ │ │ ├── dbconsole │ │ │ ├── process │ │ │ │ ├── reaper │ │ │ │ ├── inspector │ │ │ │ └── spawner │ │ │ ├── performance │ │ │ │ ├── request │ │ │ │ ├── profiler │ │ │ │ └── benchmarker │ │ │ ├── about │ │ │ ├── cucumber │ │ │ ├── spec │ │ │ └── autospec │ │ │ ├── stories │ │ │ ├── all.rb │ │ │ └── helper.rb │ │ │ ├── Rakefile │ │ │ ├── config │ │ │ ├── initializers │ │ │ │ ├── mime_types.rb │ │ │ │ └── inflections.rb │ │ │ └── database.yml │ │ │ ├── doc │ │ │ └── README_FOR_APP │ │ │ ├── db │ │ │ └── migrate │ │ │ │ └── 20090125013728_create_users.rb │ │ │ ├── vendor │ │ │ └── plugins │ │ │ │ └── email_spec │ │ │ │ └── rails_generators │ │ │ │ └── email_spec │ │ │ │ └── email_spec_generator.rb │ │ │ └── features │ │ │ └── support │ │ │ └── env.rb │ ├── VERSION.yml │ ├── .gitignore │ ├── spec │ │ ├── spec.opts │ │ └── spec_helper.rb │ ├── features │ │ ├── support │ │ │ └── env.rb │ │ └── rails_app.feature │ ├── lib │ │ ├── email-spec.rb │ │ ├── email_spec.rb │ │ └── email_spec │ │ │ ├── address_converter.rb │ │ │ └── cucumber.rb │ └── rails_generators │ │ └── email_spec │ │ └── email_spec_generator.rb │ ├── i18n_label │ ├── uninstall.rb │ ├── init.rb │ ├── install.rb │ ├── tasks │ │ └── i18n_label_tasks.rake │ ├── spec │ │ ├── spec_helper.rb │ │ └── i18n_label_spec.rb │ ├── Rakefile │ └── lib │ │ └── i18n_label.rb │ ├── country_select │ ├── init.rb │ ├── uninstall.rb │ ├── install.rb │ └── README │ ├── active_merchant │ ├── .gitignore │ ├── generators │ │ ├── gateway │ │ │ └── USAGE │ │ └── integration │ │ │ ├── USAGE │ │ │ └── templates │ │ │ ├── module_test.rb │ │ │ └── integration.rb │ ├── lib │ │ └── active_merchant │ │ │ ├── lib │ │ │ ├── error.rb │ │ │ ├── utils.rb │ │ │ ├── post_data.rb │ │ │ └── requires_parameters.rb │ │ │ └── billing │ │ │ ├── gateways.rb │ │ │ ├── integrations │ │ │ ├── bogus │ │ │ │ ├── return.rb │ │ │ │ ├── notification.rb │ │ │ │ └── helper.rb │ │ │ ├── nochex │ │ │ │ └── return.rb │ │ │ ├── paypal │ │ │ │ └── return.rb │ │ │ ├── chronopay │ │ │ │ └── return.rb │ │ │ ├── gestpay │ │ │ │ └── return.rb │ │ │ ├── two_checkout │ │ │ │ └── return.rb │ │ │ ├── bogus.rb │ │ │ ├── two_checkout.rb │ │ │ └── chronopay.rb │ │ │ ├── gateways │ │ │ ├── payflow │ │ │ │ └── payflow_response.rb │ │ │ ├── payflow_express_uk.rb │ │ │ ├── paypal_ca.rb │ │ │ └── paypal_express_common.rb │ │ │ └── credit_card_formatting.rb │ ├── init.rb │ ├── test │ │ └── unit │ │ │ ├── utils_test.rb │ │ │ ├── integrations │ │ │ ├── returns │ │ │ │ ├── return_test.rb │ │ │ │ ├── nochex_return_test.rb │ │ │ │ ├── paypal_return_test.rb │ │ │ │ ├── gestpay_return_test.rb │ │ │ │ └── chronopay_return_test.rb │ │ │ ├── nochex_module_test.rb │ │ │ ├── hi_trust_module_test.rb │ │ │ ├── chronopay_module_test.rb │ │ │ ├── two_checkout_module_test.rb │ │ │ ├── helpers │ │ │ │ └── hi_trust_helper_test.rb │ │ │ └── bogus_module_test.rb │ │ │ ├── gateways │ │ │ └── payflow_express_uk_test.rb │ │ │ ├── generators │ │ │ └── test_generator_helper.rb │ │ │ ├── credit_card_formatting_test.rb │ │ │ └── expiry_date_test.rb │ └── script │ │ ├── destroy │ │ └── generate │ ├── objectmother │ ├── install.rb │ ├── uninstall.rb │ ├── doc │ │ ├── created.rid │ │ ├── dot │ │ │ ├── f_0.png │ │ │ └── f_0.dot │ │ └── fr_class_index.html │ ├── init.rb │ ├── tasks │ │ └── object_mother_tasks.rake │ ├── spec │ │ └── prototypes │ │ │ └── user_mother.rb │ ├── README │ └── Rakefile │ ├── assert_valid_xhtml │ ├── install.rb │ ├── uninstall.rb │ ├── tasks │ │ └── assert_valid_xhtml_tasks.rake │ ├── init.rb │ ├── test │ │ └── assert_valid_xhtml_test.rb │ ├── Rakefile │ └── README │ ├── no-peeping-toms │ ├── install.rb │ ├── uninstall.rb │ ├── spec │ │ ├── db │ │ │ ├── database.yml │ │ │ └── schema.rb │ │ └── spec_helper.rb │ ├── tasks │ │ └── no_peeping_toms_tasks.rake │ ├── init.rb │ └── lib │ │ └── no_peeping_toms.rb │ ├── validates_email_format_of │ ├── init.rb │ ├── rails │ │ └── init.rb │ ├── test │ │ ├── database.yml │ │ ├── fixtures │ │ │ ├── people.yml │ │ │ └── person.rb │ │ └── schema.rb │ └── validates_email_format_of.gemspec │ ├── exception_notification │ ├── views │ │ └── exception_notifier │ │ │ ├── _backtrace.rhtml │ │ │ ├── _title.rhtml │ │ │ ├── _session.rhtml │ │ │ ├── exception_notification.rhtml │ │ │ ├── _request.rhtml │ │ │ ├── _environment.rhtml │ │ │ └── _inspect_model.rhtml │ ├── init.rb │ └── test │ │ └── test_helper.rb │ └── jandacap │ └── README ├── config ├── deploy.rb ├── protx.yml ├── deploy │ ├── production.rb │ └── development.rb ├── initializers │ ├── mime_types.rb │ ├── backtrace_silencers.rb │ ├── inflections.rb │ └── custom_active_record_view_errors.rb └── locales │ └── numbers.yml ├── spec ├── rcov.opts ├── spec.opts ├── helpers │ ├── projects_helper_spec.rb │ ├── home_helper_spec.rb │ ├── public_helper_spec.rb │ ├── users_helper_spec.rb │ ├── stories_helper_spec.rb │ ├── burndowns_helper_spec.rb │ ├── invoices_helper_spec.rb │ ├── sessions_helper_spec.rb │ ├── sitemaps_helper_spec.rb │ ├── iterations_helper_spec.rb │ ├── organisations_helper_spec.rb │ ├── payment_methods_helper_spec.rb │ ├── verifications_helper_spec.rb │ ├── active_iterations_helper_spec.rb │ ├── agile_terminology_helper_spec.rb │ ├── keyboard_shortcuts_helper_spec.rb │ ├── story_team_members_helper_spec.rb │ ├── acceptance_criteria_helper_spec.rb │ ├── organisation_members_helper_spec.rb │ ├── user_acknowledgements_helper_spec.rb │ └── verification_notifications_helper_spec.rb ├── object_mother │ ├── burndown_data_points.rb │ ├── payments.rb │ ├── story_team_members.rb │ ├── payment_plans.rb │ ├── billing_addresses.rb │ ├── payment_methods.rb │ ├── users.rb │ ├── organisations.rb │ ├── invoices.rb │ ├── projects.rb │ └── stories.rb ├── fixtures │ ├── story_actions.yml │ ├── story_team_members.yml │ ├── organisation_memberships.yml │ ├── authorisations.yml │ ├── payment_plans.yml │ ├── payment_methods.yml │ ├── repeats.yml │ ├── voids.yml │ ├── captures.yml │ ├── payments.yml │ ├── protx │ │ ├── successful_capture.yml │ │ ├── successful_repeat.yml │ │ ├── successful_authorization.yml │ │ └── rejected_authorization.yml │ ├── billing_addresses.yml │ └── invoices.yml ├── views │ ├── public │ │ └── show.html.erb_spec.rb │ ├── sessions │ │ └── new.html.erb_spec.rb │ ├── stories │ │ ├── new_guidance.html.erb_spec.rb │ │ ├── backlog_guidance.html.erb_spec.rb │ │ └── new_without_project.html.erb_spec.rb │ ├── users │ │ ├── show.html.erb_spec.rb │ │ └── new.html.erb_spec.rb │ ├── agile_terminology │ │ ├── user_stories.html.erb_spec.rb │ │ ├── project.html.erb_spec.rb │ │ ├── iteration.html.erb_spec.rb │ │ └── organisation.html.erb_spec.rb │ ├── sitemaps │ │ └── show.xml.builder_spec.rb │ ├── invoices │ │ ├── index.html.erb_spec.rb │ │ └── show.html.erb_spec.rb │ ├── iterations │ │ ├── show_active.html.erb_spec.rb │ │ └── new_guidance.html.erb_spec.rb │ ├── organisations │ │ ├── new.html.erb_spec.rb │ │ └── edit.html.erb_spec.rb │ ├── payment_methods │ │ ├── index_guidance.html.erb_spec.rb │ │ ├── new.html.erb_spec.rb │ │ └── index.html.erb_spec.rb │ ├── burndowns │ │ └── show.html.erb_spec.rb │ ├── projects │ │ ├── edit.html.erb_spec.rb │ │ ├── show_guidance.html.erb_spec.rb │ │ └── new.html.erb_spec.rb │ └── keyboard_shortcuts │ │ └── index.html.erb_spec.rb ├── controllers │ ├── keyboard_shortcuts_controller_spec.rb │ ├── privacy_policies_controller_spec.rb │ ├── sitemaps_controller_spec.rb │ ├── public_controller_spec.rb │ └── login_protection_spec.rb └── models │ └── story_action_spec.rb ├── app ├── helpers │ ├── home_helper.rb │ ├── users_helper.rb │ ├── public_helper.rb │ ├── burndowns_helper.rb │ ├── invoices_helper.rb │ ├── iterations_helper.rb │ ├── projects_helper.rb │ ├── sessions_helper.rb │ ├── sitemaps_helper.rb │ ├── organisations_helper.rb │ ├── payment_methods_helper.rb │ ├── verifications_helper.rb │ ├── active_iterations_helper.rb │ ├── agile_terminology_helper.rb │ ├── keyboard_shortcuts_helper.rb │ ├── story_team_members_helper.rb │ ├── acceptance_criteria_helper.rb │ ├── organisation_members_helper.rb │ ├── user_acknowledgements_helper.rb │ ├── verification_notifications_helper.rb │ └── stories_helper.rb ├── models │ ├── static_story.rb │ ├── story_action.rb │ ├── payment_plan.rb │ ├── user_observer.rb │ ├── invoice.rb │ ├── organisation_member_observer.rb │ ├── burndown_data_point.rb │ ├── acceptance_criterion_observer.rb │ ├── billing_address.rb │ ├── void.rb │ ├── invoice_observer.rb │ ├── organisation_observer.rb │ ├── capture.rb │ ├── story_team_member.rb │ ├── repeat.rb │ ├── payment_gateway.rb │ └── payment.rb ├── views │ ├── projects │ │ ├── _project.erb │ │ ├── _form.html.erb │ │ ├── new.html.erb │ │ ├── edit.html.erb │ │ ├── show_guidance.html.erb │ │ └── index.html.erb │ ├── burndowns │ │ └── show.html.erb │ ├── iterations │ │ ├── _list_item.erb │ │ ├── _new.erb │ │ ├── new.html.erb │ │ ├── _form.erb │ │ ├── _iteration.erb │ │ ├── new_guidance.html.erb │ │ └── edit.html.erb │ ├── stories │ │ ├── _list_item.erb │ │ ├── show.feature.erb │ │ ├── _form.erb │ │ ├── new_guidance.html.erb │ │ ├── _estimating_story.erb │ │ ├── _prioritising_story.erb │ │ ├── _project_select.erb │ │ ├── new_without_project.html.erb │ │ ├── index.html.erb │ │ ├── backlog_guidance.html.erb │ │ ├── new_with_project.html.erb │ │ ├── edit.html.erb │ │ ├── backlog.html.erb │ │ └── new_with_iteration.html.erb │ ├── layouts │ │ └── request.html.erb │ ├── agile_terminology │ │ ├── project.html.erb │ │ ├── iteration.html.erb │ │ └── organisation.html.erb │ ├── story_team_members │ │ └── _story_team_member.erb │ ├── shared │ │ └── _footer.erb │ ├── payment_methods │ │ ├── index_guidance.html.erb │ │ ├── index.html.erb │ │ ├── _payment_method.erb │ │ └── _form.html.erb │ ├── users │ │ └── show.html.erb │ ├── payment_plans │ │ └── _payment_plan.erb │ ├── invoices │ │ ├── _invoice.erb │ │ └── index.html.erb │ ├── user_mailer │ │ ├── acknowledgement.erb │ │ ├── payment_failure.erb │ │ └── verification.erb │ ├── acceptance_criteria │ │ ├── edit.js.erb │ │ ├── edit.html.erb │ │ ├── _list.erb │ │ └── _criterion.erb │ ├── verification_notifications │ │ └── new.html.erb │ ├── user_verifications │ │ └── new.html.erb │ ├── organisations │ │ ├── edit.html.erb │ │ └── index.html.erb │ ├── home │ │ └── _active_work.html.erb │ └── static_stories │ │ └── _static_story.erb └── controllers │ ├── public_controller.rb │ ├── sitemaps_controller.rb │ ├── privacy_policies_controller.rb │ ├── agile_terminology_controller.rb │ ├── keyboard_shortcuts_controller.rb │ ├── invoices_controller.rb │ ├── active_iterations_controller.rb │ ├── burndowns_controller.rb │ ├── user_acknowledgements_controller.rb │ └── user_verifications_controller.rb ├── lib ├── current_user.rb ├── organisation_suspender.rb ├── token_generation.rb └── tasks │ └── cucumber.rake ├── graphics ├── login.png ├── signup.png ├── active_iteration.xcf └── planning_iteration.xcf ├── script ├── plugin ├── runner ├── server ├── console ├── dbconsole ├── destroy ├── generate ├── performance │ ├── profiler │ └── benchmarker ├── about ├── spec ├── cucumber ├── autospec └── create_payment_plans ├── Capfile ├── doc └── README_FOR_APP ├── README.markdown └── Rakefile /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /log/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /db/.gitignore: -------------------------------------------------------------------------------- 1 | schema.rb 2 | -------------------------------------------------------------------------------- /public/google1efce4ada1c20ee7.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/install.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/deploy.rb: -------------------------------------------------------------------------------- 1 | set :application, "simply-agile" 2 | -------------------------------------------------------------------------------- /spec/rcov.opts: -------------------------------------------------------------------------------- 1 | --exclude "spec/*,gems/*" 2 | --rails -------------------------------------------------------------------------------- /app/helpers/home_helper.rb: -------------------------------------------------------------------------------- 1 | module HomeHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/users_helper.rb: -------------------------------------------------------------------------------- 1 | module UsersHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/uninstall.rb: -------------------------------------------------------------------------------- 1 | puts "Bye!" 2 | -------------------------------------------------------------------------------- /app/helpers/public_helper.rb: -------------------------------------------------------------------------------- 1 | module PublicHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/country_select/init.rb: -------------------------------------------------------------------------------- 1 | require 'country_select' -------------------------------------------------------------------------------- /app/helpers/burndowns_helper.rb: -------------------------------------------------------------------------------- 1 | module BurndownsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/invoices_helper.rb: -------------------------------------------------------------------------------- 1 | module InvoicesHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/iterations_helper.rb: -------------------------------------------------------------------------------- 1 | module IterationsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/projects_helper.rb: -------------------------------------------------------------------------------- 1 | module ProjectsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/sessions_helper.rb: -------------------------------------------------------------------------------- 1 | module SessionsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/sitemaps_helper.rb: -------------------------------------------------------------------------------- 1 | module SitemapsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/models/static_story.rb: -------------------------------------------------------------------------------- 1 | class StaticStory < Story 2 | end 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | Sitemap: http://besimplyagile.com/sitemap.xml 2 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.orig 3 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/install.rb: -------------------------------------------------------------------------------- 1 | # Install hook code here 2 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/install.rb: -------------------------------------------------------------------------------- 1 | # Install hook code here 2 | -------------------------------------------------------------------------------- /vendor/plugins/country_select/uninstall.rb: -------------------------------------------------------------------------------- 1 | # Uninstall hook code here 2 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/install.rb: -------------------------------------------------------------------------------- 1 | # Install hook code here 2 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/uninstall.rb: -------------------------------------------------------------------------------- 1 | # Uninstall hook code here 2 | -------------------------------------------------------------------------------- /app/helpers/organisations_helper.rb: -------------------------------------------------------------------------------- 1 | module OrganisationsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/payment_methods_helper.rb: -------------------------------------------------------------------------------- 1 | module PaymentMethodsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/verifications_helper.rb: -------------------------------------------------------------------------------- 1 | module VerificationsHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/uninstall.rb: -------------------------------------------------------------------------------- 1 | # Uninstall hook code here 2 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/uninstall.rb: -------------------------------------------------------------------------------- 1 | # Uninstall hook code here 2 | -------------------------------------------------------------------------------- /app/helpers/active_iterations_helper.rb: -------------------------------------------------------------------------------- 1 | module ActiveIterationsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/agile_terminology_helper.rb: -------------------------------------------------------------------------------- 1 | module AgileTerminologyHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/keyboard_shortcuts_helper.rb: -------------------------------------------------------------------------------- 1 | module KeyboardShortcutsHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/story_team_members_helper.rb: -------------------------------------------------------------------------------- 1 | module StoryTeamMembersHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/views/projects/_project.erb: -------------------------------------------------------------------------------- 1 |
  • <%= link_to h(project), project %>
  • 2 | -------------------------------------------------------------------------------- /lib/current_user.rb: -------------------------------------------------------------------------------- 1 | module CurrentUser 2 | attr_accessor :current_user 3 | end -------------------------------------------------------------------------------- /spec/spec.opts: -------------------------------------------------------------------------------- 1 | --colour 2 | --format progress 3 | --loadby mtime 4 | --reverse 5 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/doc/created.rid: -------------------------------------------------------------------------------- 1 | Sat, 04 Oct 2008 16:31:17 +0100 2 | -------------------------------------------------------------------------------- /app/helpers/acceptance_criteria_helper.rb: -------------------------------------------------------------------------------- 1 | module AcceptanceCriteriaHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/helpers/organisation_members_helper.rb: -------------------------------------------------------------------------------- 1 | module OrganisationMembersHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/VERSION.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :patch: 0 3 | :major: 0 4 | :minor: 2 5 | -------------------------------------------------------------------------------- /app/helpers/user_acknowledgements_helper.rb: -------------------------------------------------------------------------------- 1 | module UserAcknowledgementsHelper 2 | end 3 | -------------------------------------------------------------------------------- /public/stylesheets/iteration/typography.css: -------------------------------------------------------------------------------- 1 | #content .iteration a { text-align:center } 2 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.sw? 3 | *.log 4 | *.sqlite3 5 | pkg 6 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/init.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/lib/i18n_label.rb' 2 | -------------------------------------------------------------------------------- /graphics/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/graphics/login.png -------------------------------------------------------------------------------- /graphics/signup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/graphics/signup.png -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/cucumber.yml: -------------------------------------------------------------------------------- 1 | default: features/example.feature 2 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/spec/rcov.opts: -------------------------------------------------------------------------------- 1 | --exclude "spec/*,gems/*" 2 | --rails -------------------------------------------------------------------------------- /vendor/plugins/objectmother/init.rb: -------------------------------------------------------------------------------- 1 | if RAILS_ENV == "test" 2 | ObjectMother.prototype_dir 3 | end -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/init.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/rails/init' -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/rails/init.rb: -------------------------------------------------------------------------------- 1 | require 'validates_email_format_of' 2 | -------------------------------------------------------------------------------- /app/helpers/verification_notifications_helper.rb: -------------------------------------------------------------------------------- 1 | module VerificationNotificationsHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/spec/spec.opts: -------------------------------------------------------------------------------- 1 | --colour 2 | --format s 3 | --loadby mtime 4 | --reverse 5 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/generators/gateway/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | 3 | 4 | Usage: 5 | 6 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/generators/integration/USAGE: -------------------------------------------------------------------------------- 1 | Description: 2 | 3 | 4 | Usage: 5 | 6 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/helpers/welcome_helper.rb: -------------------------------------------------------------------------------- 1 | module WelcomeHelper 2 | end 3 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/models/user.rb: -------------------------------------------------------------------------------- 1 | class User < ActiveRecord::Base 2 | end 3 | -------------------------------------------------------------------------------- /public/images/burndown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/burndown.png -------------------------------------------------------------------------------- /public/images/new_story.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/new_story.png -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/views/welcome/confirm.html.erb: -------------------------------------------------------------------------------- 1 | Confirm your new account! 2 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/views/welcome/signup.html.erb: -------------------------------------------------------------------------------- 1 | Thanks! Go check your email! 2 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml: -------------------------------------------------------------------------------- 1 | <%= @backtrace.join "\n" %> 2 | -------------------------------------------------------------------------------- /app/views/burndowns/show.html.erb: -------------------------------------------------------------------------------- 1 |

    Burndowns#show

    2 |

    Find me in app/views/burndowns/show.html.erb

    3 | -------------------------------------------------------------------------------- /app/views/iterations/_list_item.erb: -------------------------------------------------------------------------------- 1 |
  • 2 | <%= link_to h(list_item), [list_item.project, list_item] %> 3 |
  • 4 | -------------------------------------------------------------------------------- /app/views/stories/_list_item.erb: -------------------------------------------------------------------------------- 1 |
  • 2 | <%= link_to h(list_item), [list_item.project, list_item] %> 3 |
  • 4 | -------------------------------------------------------------------------------- /graphics/active_iteration.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/graphics/active_iteration.xcf -------------------------------------------------------------------------------- /public/images/story_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/story_card.png -------------------------------------------------------------------------------- /public/images/try_it_free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/try_it_free.png -------------------------------------------------------------------------------- /vendor/plugins/email-spec/features/support/env.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'spec/expectations' 3 | 4 | 5 | -------------------------------------------------------------------------------- /graphics/planning_iteration.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/graphics/planning_iteration.xcf -------------------------------------------------------------------------------- /public/images/fella_testing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/fella_testing.gif -------------------------------------------------------------------------------- /public/images/fella_testing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/fella_testing.png -------------------------------------------------------------------------------- /public/images/simply_agile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/simply_agile.png -------------------------------------------------------------------------------- /script/plugin: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/plugin' 4 | -------------------------------------------------------------------------------- /script/runner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/runner' 4 | -------------------------------------------------------------------------------- /script/server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/server' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/spec/spec.opts: -------------------------------------------------------------------------------- 1 | --colour 2 | --format s 3 | --loadby mtime 4 | --reverse 5 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/lib/email-spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.join(File.dirname(__FILE__), 'email_spec')) 2 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/install.rb: -------------------------------------------------------------------------------- 1 | File.readlines(File.dirname(__FILE__)+'/README.textile').each { |line| puts line } 2 | -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/test/database.yml: -------------------------------------------------------------------------------- 1 | plugin_test: 2 | adapter: sqlite3 3 | database: ":memory:" -------------------------------------------------------------------------------- /app/views/stories/show.feature.erb: -------------------------------------------------------------------------------- 1 | Feature: <%= @story.name %> 2 | <%= @story.content.gsub(/^/, ' ') %> 3 | 4 | Scenario: 5 | -------------------------------------------------------------------------------- /public/images/active_iteration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/active_iteration.png -------------------------------------------------------------------------------- /public/images/arrow_from_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_from_grey.png -------------------------------------------------------------------------------- /public/images/arrow_large_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_large_left.png -------------------------------------------------------------------------------- /public/images/underline_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/underline_green.png -------------------------------------------------------------------------------- /script/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/console' 4 | -------------------------------------------------------------------------------- /script/dbconsole: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/dbconsole' 4 | -------------------------------------------------------------------------------- /script/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/destroy' 4 | -------------------------------------------------------------------------------- /script/generate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/generate' 4 | -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/test/fixtures/people.yml: -------------------------------------------------------------------------------- 1 | existing: 2 | id: 1 3 | email: test@example.com 4 | -------------------------------------------------------------------------------- /config/protx.yml: -------------------------------------------------------------------------------- 1 | test: 2 | vendor: jandaweb 3 | simulate: true 4 | 5 | development: 6 | vendor: jandaweb 7 | simulate: true -------------------------------------------------------------------------------- /public/images/arrow_large_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_large_right.png -------------------------------------------------------------------------------- /public/images/arrow_small_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_small_right.gif -------------------------------------------------------------------------------- /public/images/arrow_small_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_small_right.png -------------------------------------------------------------------------------- /public/images/button_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/button_background.png -------------------------------------------------------------------------------- /public/images/fella_in_progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/fella_in_progress.gif -------------------------------------------------------------------------------- /public/images/fella_in_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/fella_in_progress.png -------------------------------------------------------------------------------- /public/images/new_story_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/new_story_highlight.png -------------------------------------------------------------------------------- /public/images/planning_iteration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/planning_iteration.png -------------------------------------------------------------------------------- /public/images/simply_agile_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/simply_agile_large.png -------------------------------------------------------------------------------- /public/images/simply_agile_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/simply_agile_twitter.png -------------------------------------------------------------------------------- /app/views/layouts/request.html.erb: -------------------------------------------------------------------------------- 1 |

    <%= yield :h1 %>

    2 |
    3 | <%= yield %> 4 |
    5 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/doc/dot/f_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/vendor/plugins/objectmother/doc/dot/f_0.png -------------------------------------------------------------------------------- /app/models/story_action.rb: -------------------------------------------------------------------------------- 1 | class StoryAction < ActiveRecord::Base 2 | belongs_to :user 3 | belongs_to :story 4 | belongs_to :iteration 5 | end 6 | -------------------------------------------------------------------------------- /app/views/agile_terminology/project.html.erb: -------------------------------------------------------------------------------- 1 |

    AgileTerminology#project

    2 |

    Find me in app/views/agile_terminology/project.html.erb

    3 | -------------------------------------------------------------------------------- /public/images/arrow_large_left_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_large_left_highlighted.png -------------------------------------------------------------------------------- /public/images/arrow_large_right_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_large_right_highlighted.png -------------------------------------------------------------------------------- /script/performance/profiler: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/profiler' 4 | -------------------------------------------------------------------------------- /spec/helpers/projects_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe ProjectsHelper do 4 | end 5 | -------------------------------------------------------------------------------- /app/views/agile_terminology/iteration.html.erb: -------------------------------------------------------------------------------- 1 |

    AgileTerminology#iteration

    2 |

    Find me in app/views/agile_terminology/iteration.html.erb

    3 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/tasks/i18n_label_tasks.rake: -------------------------------------------------------------------------------- 1 | # desc "Explaining what the task does" 2 | # task :i18n_label do 3 | # # Task goes here 4 | # end 5 | -------------------------------------------------------------------------------- /public/images/arrow_small_right_green_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_small_right_green_background.png -------------------------------------------------------------------------------- /public/images/arrow_small_right_grey_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_small_right_grey_background.png -------------------------------------------------------------------------------- /script/performance/benchmarker: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/benchmarker' 4 | -------------------------------------------------------------------------------- /app/views/agile_terminology/organisation.html.erb: -------------------------------------------------------------------------------- 1 |

    AgileTerminology#organisation

    2 |

    Find me in app/views/agile_terminology/organisation.html.erb

    3 | -------------------------------------------------------------------------------- /public/images/arrow_small_right_orange_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/arrow_small_right_orange_background.png -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/lib/error.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | class ActiveMerchantError < StandardError #:nodoc: 3 | end 4 | end -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/plugin: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/plugin' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/runner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/runner' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/server' 4 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/tasks/object_mother_tasks.rake: -------------------------------------------------------------------------------- 1 | # desc "Explaining what the task does" 2 | # task :object_mother do 3 | # # Task goes here 4 | # end 5 | -------------------------------------------------------------------------------- /public/images/a_simple_tool_for_effective_agile_teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/public/images/a_simple_tool_for_effective_agile_teams.png -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/console' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/destroy' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/generate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/generate' 4 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/spec/db/database.yml: -------------------------------------------------------------------------------- 1 | sqlite3: 2 | :adapter: sqlite3 3 | :dbfile: vendor/plugins/no_peeping_toms/spec/db/no_peeping_toms.sqlite3.db 4 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/tasks/no_peeping_toms_tasks.rake: -------------------------------------------------------------------------------- 1 | # desc "Explaining what the task does" 2 | # task :no_peeping_toms do 3 | # # Task goes here 4 | # end 5 | -------------------------------------------------------------------------------- /script/about: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info" 4 | require 'commands/about' -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/dbconsole: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | require 'commands/dbconsole' 4 | -------------------------------------------------------------------------------- /app/controllers/public_controller.rb: -------------------------------------------------------------------------------- 1 | class PublicController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | end 5 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/tasks/assert_valid_xhtml_tasks.rake: -------------------------------------------------------------------------------- 1 | # desc "Explaining what the task does" 2 | # task :assert_valid_xhtml do 3 | # # Task goes here 4 | # end 5 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/spec/models/user_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe User do 4 | 5 | end 6 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/stories/all.rb: -------------------------------------------------------------------------------- 1 | dir = File.dirname(__FILE__) 2 | Dir[File.expand_path("#{dir}/**/*.rb")].uniq.each do |file| 3 | require file 4 | end -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/init.rb: -------------------------------------------------------------------------------- 1 | require "action_mailer" 2 | require "exception_notifier" 3 | require "exception_notifiable" 4 | require "exception_notifier_helper" 5 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml: -------------------------------------------------------------------------------- 1 | ------------------------------- 2 | <%= title.to_s.humanize %>: 3 | ------------------------------- 4 | -------------------------------------------------------------------------------- /app/controllers/sitemaps_controller.rb: -------------------------------------------------------------------------------- 1 | class SitemapsController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | end 5 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways.rb: -------------------------------------------------------------------------------- 1 | require 'active_merchant/billing/gateway' 2 | 3 | Dir[File.dirname(__FILE__) + '/gateways/*.rb'].each{|g| require g} -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/views/user_mailer/signup.erb: -------------------------------------------------------------------------------- 1 | Hello <%= @name %>! 2 | 3 | <%= link_to "Click here to confirm your account!", confirm_account_url %> 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/process/reaper: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/reaper' 4 | -------------------------------------------------------------------------------- /vendor/plugins/country_select/install.rb: -------------------------------------------------------------------------------- 1 | # Install hook code here 2 | puts "The list of countries provided by this plugin may offend some users. Please review it carefully before you use it" -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/process/inspector: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/inspector' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/process/spawner: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/process/spawner' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'actionmailer' 3 | require 'spec' 4 | require File.expand_path(File.dirname(__FILE__) + '/../lib/email_spec.rb') 5 | -------------------------------------------------------------------------------- /app/models/payment_plan.rb: -------------------------------------------------------------------------------- 1 | class PaymentPlan < ActiveRecord::Base 2 | default_scope :order => 'price' 3 | 4 | def total 5 | price * (1 + Invoice::VAT_RATE / 100.0) 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /spec/object_mother/burndown_data_points.rb: -------------------------------------------------------------------------------- 1 | class BurndownDataPoints < ObjectMother 2 | def self.burndown_data_point_prototype 3 | { 4 | :story_points => 1 5 | } 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/public/images/rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camelpunch/simply_agile/HEAD/vendor/plugins/email-spec/examples/rails_root/public/images/rails.png -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/performance/request: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/request' 4 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/spec/db/schema.rb: -------------------------------------------------------------------------------- 1 | ActiveRecord::Schema.define(:version => 0) do 2 | create_table :people, :force => true do |t| 3 | t.column :name, :string 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/performance/profiler: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/profiler' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/spec/model_factory.rb: -------------------------------------------------------------------------------- 1 | require 'fixjour' 2 | 3 | Fixjour do 4 | define_builder(User, :name => "Jojo Binks", :email => "jojo@thebinks.com") 5 | end 6 | 7 | -------------------------------------------------------------------------------- /Capfile: -------------------------------------------------------------------------------- 1 | load 'deploy' if respond_to?(:namespace) # cap2 differentiator 2 | Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } 3 | load 'config/deploy' 4 | default_run_options[:pty] = true 5 | -------------------------------------------------------------------------------- /app/models/user_observer.rb: -------------------------------------------------------------------------------- 1 | class UserObserver < ActiveRecord::Observer 2 | def after_create(user) 3 | unless user.verified? 4 | UserMailer.deliver_verification(user) 5 | end 6 | end 7 | end -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | # Methods added to this helper will be available to all templates in the application. 2 | module ApplicationHelper 3 | end 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/performance/benchmarker: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../../config/boot' 3 | require 'commands/performance/benchmarker' 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/stories/helper.rb: -------------------------------------------------------------------------------- 1 | ENV["RAILS_ENV"] = "test" 2 | require File.expand_path(File.dirname(__FILE__) + "/../config/environment") 3 | require 'spec/rails/story_adapter' -------------------------------------------------------------------------------- /vendor/plugins/objectmother/spec/prototypes/user_mother.rb: -------------------------------------------------------------------------------- 1 | class UserMother < ObjectMother 2 | def self.user_prototype 3 | { 4 | :name => 'some_user', 5 | :pet => false 6 | } 7 | end 8 | end -------------------------------------------------------------------------------- /config/deploy/production.rb: -------------------------------------------------------------------------------- 1 | set :deploy_to, "/rails/besimplyagile.com" 2 | set :branch, 'production' 3 | 4 | set :domain, "www.jandaweb.com" 5 | server domain, :app, :web 6 | role :db, domain, :primary => true 7 | -------------------------------------------------------------------------------- /spec/fixtures/story_actions.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | user_id: 1 5 | story_id: 1 6 | 7 | two: 8 | user_id: 1 9 | story_id: 1 10 | -------------------------------------------------------------------------------- /spec/fixtures/story_team_members.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | user_id: 1 5 | story_id: 1 6 | 7 | two: 8 | user_id: 1 9 | story_id: 1 10 | -------------------------------------------------------------------------------- /spec/object_mother/payments.rb: -------------------------------------------------------------------------------- 1 | class Payments < ObjectMother 2 | truncate_payment 3 | def self.payment_prototype 4 | { 5 | :organisation => Organisations.create_organisation! 6 | } 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/about: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require File.dirname(__FILE__) + '/../config/boot' 3 | $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info" 4 | require 'commands/about' -------------------------------------------------------------------------------- /app/controllers/privacy_policies_controller.rb: -------------------------------------------------------------------------------- 1 | class PrivacyPoliciesController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | layout 'landing' 5 | end 6 | -------------------------------------------------------------------------------- /app/controllers/agile_terminology_controller.rb: -------------------------------------------------------------------------------- 1 | class AgileTerminologyController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | 5 | layout 'landing' 6 | end 7 | -------------------------------------------------------------------------------- /config/deploy/development.rb: -------------------------------------------------------------------------------- 1 | set :deploy_to, "/rails/simply-agile.dev.jandaweb.com" 2 | 3 | set :rails_env, 'development' 4 | set :domain, "dev.jandaweb.com" 5 | server domain, :app, :web 6 | role :db, domain, :primary => true 7 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/init.rb: -------------------------------------------------------------------------------- 1 | require 'active_merchant' 2 | require 'active_merchant/billing/integrations/action_view_helper' 3 | ActionView::Base.send(:include, ActiveMerchant::Billing::Integrations::ActionViewHelper) 4 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/Rakefile: -------------------------------------------------------------------------------- 1 | require(File.join(File.dirname(__FILE__), 'config', 'boot')) 2 | 3 | require 'rake' 4 | require 'rake/testtask' 5 | require 'rake/rdoctask' 6 | 7 | require 'tasks/rails' 8 | -------------------------------------------------------------------------------- /app/views/stories/_form.erb: -------------------------------------------------------------------------------- 1 |

    2 | <%= form.label :name %> 3 | <%= form.text_field :name, :class => 'auto_focus' %> 4 |

    5 |

    6 | <%= form.label :content %> 7 | <%= form.text_area :content, :rows => 5, :cols => 28 %> 8 |

    9 | -------------------------------------------------------------------------------- /doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | Use this README file to introduce your application and point to useful places in the API for learning more. 2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. 3 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/public/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // Place your application-specific JavaScript functions and classes here 2 | // This file is automatically included by javascript_include_tag :defaults 3 | -------------------------------------------------------------------------------- /spec/fixtures/organisation_memberships.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | user_id: 1 5 | organisation_id: 1 6 | 7 | two: 8 | user_id: 1 9 | organisation_id: 1 10 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/init.rb: -------------------------------------------------------------------------------- 1 | require 'active_support/test_case' 2 | require 'xml/libxml' 3 | require 'md5' 4 | require 'assert_valid_xhtml' 5 | ActiveSupport::TestCase.class_eval do 6 | include AssertValidXhtmlInstance 7 | end 8 | 9 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/test/test_helper.rb: -------------------------------------------------------------------------------- 1 | require 'test/unit' 2 | require 'rubygems' 3 | require 'active_support' 4 | 5 | $:.unshift File.join(File.dirname(__FILE__), '../lib') 6 | 7 | RAILS_ROOT = '.' unless defined?(RAILS_ROOT) 8 | -------------------------------------------------------------------------------- /spec/object_mother/story_team_members.rb: -------------------------------------------------------------------------------- 1 | class StoryTeamMembers < ObjectMother 2 | truncate_story_team_member 3 | 4 | def self.story_team_member_prototype 5 | { 6 | :user => Users.create_user, 7 | } 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /app/views/story_team_members/_story_team_member.erb: -------------------------------------------------------------------------------- 1 |
  • 2 | <%= mail_to story_team_member.user.email_address %> 3 | <% if story_team_member.user == @current_user %> 4 | <%= button_to 'Remove Me', story_team_member, :method => :delete %> 5 | <% end %> 6 |
  • 7 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml: -------------------------------------------------------------------------------- 1 | * session id: <%= @request.session.instance_variable_get(:@session_id).inspect %> 2 | * data: <%= PP.pp(@request.session.instance_variable_get(:@data),"").gsub(/\n/, "\n ").strip %> 3 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/README: -------------------------------------------------------------------------------- 1 | ObjectMother 2 | ============ 3 | 4 | Introduction goes here. 5 | 6 | 7 | Example 8 | ======= 9 | 10 | Example goes here. 11 | 12 | 13 | Copyright (c) 2008 [name of plugin creator], released under the MIT license 14 | -------------------------------------------------------------------------------- /db/migrate/20090317120007_add_verify_by_to_users.rb: -------------------------------------------------------------------------------- 1 | class AddVerifyByToUsers < ActiveRecord::Migration 2 | def self.up 3 | add_column :users, :verify_by, :date 4 | end 5 | 6 | def self.down 7 | remove_column :users, :verify_by 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /lib/organisation_suspender.rb: -------------------------------------------------------------------------------- 1 | module OrganisationSuspender 2 | GRACE_PERIOD = 7 # days 3 | 4 | def self.run 5 | Organisation.update_all("suspended = 't'", 6 | ['next_payment_date <= ?', Date.today - GRACE_PERIOD]) 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /spec/fixtures/authorisations.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | payment_id: 1 5 | vpstxid: MyString 6 | amount: 1 7 | 8 | two: 9 | payment_id: 1 10 | vpstxid: MyString 11 | amount: 1 12 | -------------------------------------------------------------------------------- /script/spec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib")) 3 | require 'rubygems' 4 | require 'spec' 5 | exit ::Spec::Runner::CommandLine.run(::Spec::Runner::OptionParser.parse(ARGV, STDERR, STDOUT)) 6 | -------------------------------------------------------------------------------- /spec/fixtures/payment_plans.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | name: MyString 5 | description: MyText 6 | price: 9.99 7 | 8 | two: 9 | name: MyString 10 | description: MyText 11 | price: 9.99 12 | -------------------------------------------------------------------------------- /app/models/invoice.rb: -------------------------------------------------------------------------------- 1 | class Invoice < ActiveRecord::Base 2 | VAT_RATE = 15 3 | 4 | belongs_to :payment 5 | belongs_to :user 6 | 7 | def to_s 8 | if new_record? 9 | 'New Invoice' 10 | else 11 | "sa-#{id}" 12 | end 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /db/migrate/20090306101907_add_estimate_to_stories.rb: -------------------------------------------------------------------------------- 1 | class AddEstimateToStories < ActiveRecord::Migration 2 | def self.up 3 | add_column :stories, :estimate, :integer 4 | end 5 | 6 | def self.down 7 | remove_column :stories, :estimate 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /app/models/organisation_member_observer.rb: -------------------------------------------------------------------------------- 1 | class OrganisationMemberObserver < ActiveRecord::Observer 2 | def after_create(organisation_member) 3 | if organisation_member.sponsor_id? 4 | UserMailer.deliver_acknowledgement(organisation_member) 5 | end 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /script/cucumber: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/cucumber/bin/cucumber") 4 | rescue LoadError => e 5 | raise unless e.to_s =~ /cucumber/ 6 | require "rubygems" 7 | load File.join(Gem.bindir, "cucumber") 8 | end -------------------------------------------------------------------------------- /spec/fixtures/payment_methods.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | last_for_digits: 1 5 | expiry_month: 1 6 | expiry_year: 1 7 | 8 | two: 9 | last_for_digits: 1 10 | expiry_month: 1 11 | expiry_year: 1 12 | -------------------------------------------------------------------------------- /spec/fixtures/repeats.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | payment_id: 1 5 | status: MyString 6 | status_detail: MyString 7 | 8 | two: 9 | payment_id: 1 10 | status: MyString 11 | status_detail: MyString 12 | -------------------------------------------------------------------------------- /spec/fixtures/voids.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | payment_id: 1 5 | status: MyString 6 | status_detail: MyString 7 | 8 | two: 9 | payment_id: 1 10 | status: MyString 11 | status_detail: MyString 12 | -------------------------------------------------------------------------------- /spec/views/public/show.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/public/show" do 4 | before(:each) do 5 | render 'public/show' 6 | end 7 | 8 | it_should_behave_like "a standard view" 9 | end 10 | -------------------------------------------------------------------------------- /spec/views/sessions/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/sessions/new" do 4 | before(:each) do 5 | render 'sessions/new' 6 | end 7 | 8 | it_should_behave_like "a standard view" 9 | end 10 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/test/assert_valid_xhtml_test.rb: -------------------------------------------------------------------------------- 1 | require 'test/unit' 2 | 3 | class AssertValidXhtmlTest < Test::Unit::TestCase 4 | # Replace this with your real tests. 5 | def test_this_plugin 6 | assert "that you have better things to do" 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/controllers/welcome_controller.rb: -------------------------------------------------------------------------------- 1 | class WelcomeController < ApplicationController 2 | def signup 3 | UserMailer.deliver_signup(params['Email'], params['Name']) 4 | end 5 | 6 | def confirm 7 | end 8 | 9 | end 10 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-Agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/cucumber: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/cucumber/bin/cucumber") 4 | rescue LoadError 5 | require "rubygems" 6 | load File.join(Gem.bindir, "cucumber") 7 | end -------------------------------------------------------------------------------- /db/migrate/20090323183452_add_end_date_to_iterations.rb: -------------------------------------------------------------------------------- 1 | class AddEndDateToIterations < ActiveRecord::Migration 2 | def self.up 3 | add_column :iterations, :end_date, :date 4 | end 5 | 6 | def self.down 7 | remove_column :iterations, :end_date 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /public/stylesheets/iteration/layout.css: -------------------------------------------------------------------------------- 1 | /* iteration lists */ 2 | #iterations div.section .guidance { padding:30px 0 0 15px } 3 | #content .iteration { padding:0 15px; float:left; margin-bottom:15px } 4 | #content .iteration a { display:block; margin:0 auto } 5 | /* end iteration lists */ 6 | -------------------------------------------------------------------------------- /db/migrate/20090310131740_add_description_to_projects.rb: -------------------------------------------------------------------------------- 1 | class AddDescriptionToProjects < ActiveRecord::Migration 2 | def self.up 3 | add_column :projects, :description, :text 4 | end 5 | 6 | def self.down 7 | remove_column :projects, :description 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090311171715_add_start_date_to_iteration.rb: -------------------------------------------------------------------------------- 1 | class AddStartDateToIteration < ActiveRecord::Migration 2 | def self.up 3 | add_column :iterations, :start_date, :date 4 | end 5 | 6 | def self.down 7 | remove_column :iterations, :start_date 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090312164111_add_status_to_stories.rb: -------------------------------------------------------------------------------- 1 | class AddStatusToStories < ActiveRecord::Migration 2 | def self.up 3 | add_column :stories, :status, :string, :default => 'pending' 4 | end 5 | 6 | def self.down 7 | remove_column :stories, :status 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090313124609_add_priority_to_stories.rb: -------------------------------------------------------------------------------- 1 | class AddPriorityToStories < ActiveRecord::Migration 2 | def self.up 3 | add_column :stories, :priority, :integer, :default => 1 4 | end 5 | 6 | def self.down 7 | remove_column :stories, :priority 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /app/views/projects/_form.html.erb: -------------------------------------------------------------------------------- 1 | <%= form.error_messages %> 2 |

    3 | <%= form.label :name %> 4 | <%= form.text_field :name, :class => 'auto_focus' %> 5 |

    6 |

    7 | <%= form.label :description %> 8 | <%= form.text_area :description, :rows => 3, :cols => 28 %> 9 |

    10 | -------------------------------------------------------------------------------- /lib/token_generation.rb: -------------------------------------------------------------------------------- 1 | module TokenGeneration 2 | TOKEN_LENGTH = 6 3 | 4 | def generate_token 5 | chars = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ23456789' 6 | token = '' 7 | TOKEN_LENGTH.times { token << chars[rand(chars.length)] } 8 | token 9 | end 10 | end -------------------------------------------------------------------------------- /app/models/burndown_data_point.rb: -------------------------------------------------------------------------------- 1 | class BurndownDataPoint < ActiveRecord::Base 2 | belongs_to :iteration 3 | 4 | named_scope :for_iteration, lambda { |iteration| 5 | { 6 | :conditions => { :iteration_id => iteration.id }, 7 | :order => 'date' 8 | } 9 | } 10 | end 11 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | # Mime::Type.register_alias "text/html", :iphone 6 | Mime::Type.register "text/plain", :feature 7 | -------------------------------------------------------------------------------- /spec/views/stories/new_guidance.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/stories/new_guidance" do 4 | before(:each) do 5 | render 'stories/new_guidance' 6 | end 7 | 8 | it_should_behave_like "guidance" 9 | end 10 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/utils_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../test_helper' 2 | 3 | class UtilsTest < Test::Unit::TestCase 4 | def test_unique_id_should_be_32_chars_and_alphanumeric 5 | assert_match /^\w{32}$/, ActiveMerchant::Utils.generate_unique_id 6 | end 7 | end -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | # Mime::Type.register_alias "text/html", :iphone 6 | -------------------------------------------------------------------------------- /db/migrate/20090401132534_add_suspended_to_organisations.rb: -------------------------------------------------------------------------------- 1 | class AddSuspendedToOrganisations < ActiveRecord::Migration 2 | def self.up 3 | add_column :organisations, :suspended, :boolean 4 | end 5 | 6 | def self.down 7 | remove_column :organisations, :suspended 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/init.rb: -------------------------------------------------------------------------------- 1 | if "test" == RAILS_ENV 2 | 3 | ActiveRecord::Base.class_eval do 4 | class << self 5 | alias_method :old_add_observer, :add_observer 6 | def add_observer(o); end 7 | end 8 | 9 | extend NoPeepingToms 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /app/views/projects/new.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, 'New Project' %> 2 | <% content_for :h1, 'New Project' %> 3 | <% breadcrumbs 'New Project' %> 4 | <% form_for @project do |form| %> 5 | <%= render form %> 6 |

    7 | <%= form.submit 'Create Project' %> 8 |

    9 | <% end %> 10 | -------------------------------------------------------------------------------- /db/migrate/20090402111030_add_has_failed_to_payment_method.rb: -------------------------------------------------------------------------------- 1 | class AddHasFailedToPaymentMethod < ActiveRecord::Migration 2 | def self.up 3 | add_column :payment_methods, :has_failed, :boolean 4 | end 5 | 6 | def self.down 7 | remove_column :payment_methods, :has_failed 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090406212619_add_last_four_digits_to_invoices.rb: -------------------------------------------------------------------------------- 1 | class AddLastFourDigitsToInvoices < ActiveRecord::Migration 2 | def self.up 3 | add_column :invoices, :last_four_digits, :integer 4 | end 5 | 6 | def self.down 7 | remove_column :invoices, :last_four_digits 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090311112021_add_initial_estimate_to_iteration.rb: -------------------------------------------------------------------------------- 1 | class AddInitialEstimateToIteration < ActiveRecord::Migration 2 | def self.up 3 | add_column :iterations, :initial_estimate, :integer 4 | end 5 | 6 | def self.down 7 | remove_column :iterations, :initial_estimate 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /db/migrate/20090318171027_add_acknowledgement_token_to_users.rb: -------------------------------------------------------------------------------- 1 | class AddAcknowledgementTokenToUsers < ActiveRecord::Migration 2 | def self.up 3 | add_column :users, :acknowledgement_token, :string 4 | end 5 | 6 | def self.down 7 | remove_column :users, :acknowledgement_token 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/fixtures/captures.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | payment_id: 1 5 | status: MyString 6 | status_detail: MyString 7 | amount: 1 8 | 9 | two: 10 | payment_id: 1 11 | status: MyString 12 | status_detail: MyString 13 | amount: 1 14 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | To build the guides: 2 | 3 | * Install source-highlighter (http://www.gnu.org/software/src-highlite/source-highlight.html) 4 | * Install the mizuho gem (http://github.com/FooBarWidget/mizuho/tree/master) 5 | * Run `rake guides` from the railties directory -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/spec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib")) 3 | require 'rubygems' 4 | require 'spec' 5 | exit ::Spec::Runner::CommandLine.run(::Spec::Runner::OptionParser.parse(ARGV, STDERR, STDOUT)) 6 | -------------------------------------------------------------------------------- /app/models/acceptance_criterion_observer.rb: -------------------------------------------------------------------------------- 1 | class AcceptanceCriterionObserver < ActiveRecord::Observer 2 | def after_save(acceptance_criterion) 3 | acceptance_criterion.story.current_user = acceptance_criterion.current_user 4 | acceptance_criterion.story.update_status_from_acceptance_criteria 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /app/models/billing_address.rb: -------------------------------------------------------------------------------- 1 | class BillingAddress < ActiveRecord::Base 2 | validates_presence_of(:name, 3 | :address_line_1, 4 | :town, 5 | :postcode, 6 | :country, 7 | :telephone_number) 8 | end 9 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/db/migrate/20090125013728_create_users.rb: -------------------------------------------------------------------------------- 1 | class CreateUsers < ActiveRecord::Migration 2 | def self.up 3 | create_table :users do |t| 4 | t.string :email, :name 5 | end 6 | end 7 | 8 | def self.down 9 | drop_table :users 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- 1 | # Simply Agile 2 | 3 | Now that [Jandaweb](http://www.jandaweb.com/) is winding down, we decided to 4 | release the source to the project we intended to make us rich. 5 | 6 | NB: I modified the git history a bit to remove database.yml and some other 7 | config, not that you could have done much with it. 8 | 9 | -------------------------------------------------------------------------------- /db/migrate/20090303161221_create_organisations.rb: -------------------------------------------------------------------------------- 1 | class CreateOrganisations < ActiveRecord::Migration 2 | def self.up 3 | create_table :organisations do |t| 4 | t.string :name 5 | 6 | t.timestamps 7 | end 8 | end 9 | 10 | def self.down 11 | drop_table :organisations 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /db/migrate/20090330205513_add_payment_plan_id_to_organisations.rb: -------------------------------------------------------------------------------- 1 | class AddPaymentPlanIdToOrganisations < ActiveRecord::Migration 2 | def self.up 3 | add_column :organisations, :payment_plan_id, :integer 4 | end 5 | 6 | def self.down 7 | remove_column :organisations, :payment_plan_id 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/views/users/show.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/users/show" do 4 | before(:each) do 5 | assigns[:current_user] = mock_model(User) 6 | render 'users/show' 7 | end 8 | 9 | it_should_behave_like "a standard view" 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/test/schema.rb: -------------------------------------------------------------------------------- 1 | ActiveRecord::Schema.define(:version => 0) do 2 | create_table :people, :force => true do |t| 3 | t.column "email", :string 4 | end 5 | 6 | create_table :mx_records, :force => true do |t| 7 | t.column "email", :string 8 | end 9 | 10 | end -------------------------------------------------------------------------------- /app/controllers/keyboard_shortcuts_controller.rb: -------------------------------------------------------------------------------- 1 | class KeyboardShortcutsController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | 5 | def index 6 | unless session[:user_id] 7 | render :layout => 'landing' 8 | end 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20090325134154_add_sponsor_id_to_organisation_member.rb: -------------------------------------------------------------------------------- 1 | class AddSponsorIdToOrganisationMember < ActiveRecord::Migration 2 | def self.up 3 | add_column :organisation_members, :sponsor_id, :integer 4 | end 5 | 6 | def self.down 7 | remove_column :organisation_members, :sponsor_id 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/views/users/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/users/new" do 4 | before(:each) do 5 | @user = User.new 6 | assigns[:user] = @user 7 | render 'users/new' 8 | end 9 | 10 | it_should_behave_like "a standard view" 11 | end 12 | -------------------------------------------------------------------------------- /public/stylesheets/iteration_planning/typography.css: -------------------------------------------------------------------------------- 1 | body.iteration_planning .include a { text-indent:-20000px; outline:none; 2 | text-underline:none } 3 | body.iteration_planning .display h3 { font-weight:bold } 4 | body.iteration_planning .javascript #stories span.estimate { text-align:center } 5 | -------------------------------------------------------------------------------- /spec/views/agile_terminology/user_stories.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/agile_terminology/user_stories" do 4 | before(:each) do 5 | render 'agile_terminology/user_stories' 6 | end 7 | 8 | it_should_behave_like "a standard view" 9 | end 10 | -------------------------------------------------------------------------------- /spec/views/sitemaps/show.xml.builder_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/sitemaps/show" do 4 | before(:each) do 5 | render 'sitemaps/show.xml.builder' 6 | end 7 | 8 | it "should be successful" do 9 | response.should be_success 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/views/welcome/index.html.erb: -------------------------------------------------------------------------------- 1 | <% form_tag '/welcome/signup' do -%> 2 | 3 | <%= text_field_tag 'Name' %> 4 | 5 | <%= text_field_tag 'Email' %> 6 |
    <%= submit_tag 'Sign up' %>
    7 | <% end -%> 8 | 9 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml: -------------------------------------------------------------------------------- 1 | A <%= @exception.class %> occurred in <%= @controller.controller_name %>#<%= @controller.action_name %>: 2 | 3 | <%= @exception.message %> 4 | <%= @backtrace.first %> 5 | 6 | <%= @sections.map { |section| render_section(section) }.join %> 7 | -------------------------------------------------------------------------------- /app/views/projects/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, 'Edit Project' %> 2 | <% content_for :h1, 'Edit Project' %> 3 | <% breadcrumbs link_to(h(@project), @project), 'Edit' %> 4 | <% form_for @project do |form| %> 5 | <%= render form %> 6 |

    7 | <%= form.submit 'Update Project' %> 8 |

    9 | <% end %> 10 | -------------------------------------------------------------------------------- /db/migrate/20090402152648_remove_address_line3_from_billing_address.rb: -------------------------------------------------------------------------------- 1 | class RemoveAddressLine3FromBillingAddress < ActiveRecord::Migration 2 | def self.up 3 | remove_column(:billing_addresses, :address_line_3) 4 | end 5 | 6 | def self.down 7 | add_column(:billing_addresses, :address_line_3, :string) 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /public/stylesheets/iteration/colours.css: -------------------------------------------------------------------------------- 1 | /* iteration lists */ 2 | #content .iteration a img { border:2px solid #fff } 3 | #content .iteration a:hover img, 4 | #content .iteration a:focus img { border:2px solid #999 } 5 | #iterations .active { background:#e4e5f3 } 6 | #iterations .planned { background:#f1f1f8 } 7 | /* end iteration lists */ 8 | -------------------------------------------------------------------------------- /public/stylesheets/story/typography.css: -------------------------------------------------------------------------------- 1 | .story ol li { font-size:100%; margin:0 } 2 | .story h3, .story h4{ font-weight:bold } 3 | .story h3{ padding:4px } 4 | .story h4{ padding:6px 0 0 4px } 5 | #content .story p.estimate { margin:0; text-align:center; 6 | line-height:1.2em; font-weight:bold; font-size:100% } 7 | -------------------------------------------------------------------------------- /spec/controllers/keyboard_shortcuts_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe KeyboardShortcutsController do 4 | 5 | describe "index" do 6 | it "should be successful" do 7 | get :index 8 | response.should be_success 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/returns/return_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class ReturnTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | 7 | def test_return 8 | r = Return.new('') 9 | assert r.success? 10 | end 11 | end -------------------------------------------------------------------------------- /app/views/stories/new_guidance.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "New Story" %> 2 | <% content_for :h1, "New Story" %> 3 | <% breadcrumbs 'New Story' %> 4 | <% body_classes << 'guidance' %> 5 | 6 |

    7 | You don't have any projects. You should <%= link_to 'create a project', 8 | new_project_path %> before writing a story. 9 |

    10 | -------------------------------------------------------------------------------- /db/migrate/20090303010437_create_projects.rb: -------------------------------------------------------------------------------- 1 | class CreateProjects < ActiveRecord::Migration 2 | def self.up 3 | create_table :projects do |t| 4 | t.string :name 5 | t.integer :organisation_id 6 | 7 | t.timestamps 8 | end 9 | end 10 | 11 | def self.down 12 | drop_table :projects 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /script/autospec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['RSPEC'] = 'true' # allows autotest to discover rspec 3 | ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux 4 | system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) || 5 | $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH") 6 | -------------------------------------------------------------------------------- /spec/views/invoices/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/invoices/index" do 4 | before(:each) do 5 | assigns[:invoices] = [Invoices.create_invoice!] 6 | render 'invoices/index' 7 | end 8 | 9 | it_should_behave_like "a standard view" 10 | end 11 | -------------------------------------------------------------------------------- /db/migrate/20090402160907_add_repeat_payment_token_to_payment_methods.rb: -------------------------------------------------------------------------------- 1 | class AddRepeatPaymentTokenToPaymentMethods < ActiveRecord::Migration 2 | def self.up 3 | add_column :payment_methods, :repeat_payment_token, :text 4 | end 5 | 6 | def self.down 7 | remove_column :payment_methods, :repeat_payment_token 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /spec/object_mother/payment_plans.rb: -------------------------------------------------------------------------------- 1 | class PaymentPlans < ObjectMother 2 | truncate_payment_plan 3 | 4 | def self.payment_plan_prototype 5 | { 6 | :name => 'protototo', 7 | :price => 25, 8 | :project_limit => 2, 9 | :active_iteration_limit => 5, 10 | :user_limit => 5 11 | } 12 | end 13 | 14 | end 15 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/bogus/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Bogus 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | end 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/nochex/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Nochex 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | end 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/paypal/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Paypal 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | end 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /app/views/shared/_footer.erb: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /spec/fixtures/payments.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | organisation_id: 1 5 | vpstxid: MyString 6 | security_key: MyString 7 | vendor_tx_code: MyString 8 | 9 | two: 10 | organisation_id: 1 11 | vpstxid: MyString 12 | security_key: MyString 13 | vendor_tx_code: MyString 14 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/chronopay/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Chronopay 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | end 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/gestpay/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Gestpay 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | end 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/returns/nochex_return_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class NochexReturnTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_return 7 | r = Nochex::Return.new('') 8 | assert r.success? 9 | end 10 | end -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/returns/paypal_return_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class PaypalReturnTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_return 7 | r = Paypal::Return.new('') 8 | assert r.success? 9 | end 10 | end -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | begin 2 | require File.dirname(__FILE__) + '/../../../../spec/spec_helper' 3 | rescue LoadError 4 | puts "You need to install rspec in your base app" 5 | exit 6 | end 7 | 8 | plugin_spec_dir = File.dirname(__FILE__) 9 | ActiveRecord::Base.logger = Logger.new(plugin_spec_dir + "/debug.log") 10 | 11 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require(File.join(File.dirname(__FILE__), 'config', 'boot')) 5 | 6 | require 'rake' 7 | require 'rake/testtask' 8 | require 'rake/rdoctask' 9 | 10 | require 'tasks/rails' 11 | -------------------------------------------------------------------------------- /app/views/stories/_estimating_story.erb: -------------------------------------------------------------------------------- 1 |
    2 | <%= label_tag "stories_#{estimating_story.id}_estimate", "Estimate" %> 3 | <%= text_field_tag("stories[#{estimating_story.id}][estimate]", 4 | estimating_story.estimate, 5 | :class => 'numeric', 6 | :size => 2) %> 7 |
    8 | -------------------------------------------------------------------------------- /spec/controllers/privacy_policies_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe PrivacyPoliciesController do 4 | 5 | describe "show" do 6 | it "should not require any session information" do 7 | get :show 8 | response.should be_success 9 | end 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /db/migrate/20090402143027_create_voids.rb: -------------------------------------------------------------------------------- 1 | class CreateVoids < ActiveRecord::Migration 2 | def self.up 3 | create_table :voids do |t| 4 | t.integer :payment_id 5 | t.string :status 6 | t.string :status_detail 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :voids 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/returns/gestpay_return_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class GestpayReturnTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_return 7 | r = Gestpay::Return.new('') 8 | assert r.success? 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'spec/rake/spectask' 3 | 4 | desc 'Default: run specs.' 5 | task :default => :spec 6 | 7 | desc 'Run the specs' 8 | Spec::Rake::SpecTask.new(:spec) do |t| 9 | t.spec_opts = ['--colour --format progress --loadby mtime --reverse'] 10 | t.spec_files = FileList['spec/**/*_spec.rb'] 11 | end 12 | -------------------------------------------------------------------------------- /app/models/void.rb: -------------------------------------------------------------------------------- 1 | class Void < ActiveRecord::Base 2 | include PaymentGateway 3 | 4 | attr_accessor :authorization 5 | attr_accessor :response 6 | 7 | def before_create 8 | self.response = gateway.void(authorization) 9 | 10 | self.status = response.params['Status'] 11 | self.status_detail = response.params['StatusDetail'] 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/bogus/notification.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Bogus 5 | class Notification < ActiveMerchant::Billing::Integrations::Notification 6 | 7 | end 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml: -------------------------------------------------------------------------------- 1 | * URL : <%= @request.protocol %><%= @host %><%= @request.request_uri %> 2 | * IP address: <%= @request.env["HTTP_X_FORWARDED_FOR"] || @request.env["REMOTE_ADDR"] %> 3 | * Parameters: <%= filter_sensitive_post_data_parameters(@request.parameters).inspect %> 4 | * Rails root: <%= @rails_root %> 5 | -------------------------------------------------------------------------------- /db/migrate/20090303141832_create_users.rb: -------------------------------------------------------------------------------- 1 | class CreateUsers < ActiveRecord::Migration 2 | def self.up 3 | create_table :users do |t| 4 | t.string :email_address 5 | t.string :encrypted_password 6 | t.integer :organisation_id 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :users 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /db/migrate/20090316171557_add_verifiction_to_user.rb: -------------------------------------------------------------------------------- 1 | class AddVerifictionToUser < ActiveRecord::Migration 2 | def self.up 3 | add_column :users, :verified, :boolean 4 | add_column :users, :verification_token, :string 5 | end 6 | 7 | def self.down 8 | remove_column :users, :verification_token 9 | remove_column :users, :verified 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20090325133236_create_story_team_members.rb: -------------------------------------------------------------------------------- 1 | class CreateStoryTeamMembers < ActiveRecord::Migration 2 | def self.up 3 | create_table :story_team_members do |t| 4 | t.integer :user_id 5 | t.integer :story_id 6 | 7 | t.timestamps 8 | end 9 | end 10 | 11 | def self.down 12 | drop_table :story_team_members 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/returns/chronopay_return_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class ChronopayReturnTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_return 7 | r = Chronopay::Return.new('') 8 | assert r.success? 9 | end 10 | end 11 | 12 | -------------------------------------------------------------------------------- /app/views/payment_methods/index_guidance.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Payments" %> 2 | <% content_for :h1, "Payments" %> 3 | <% breadcrumbs( 4 | link_to_unless_current('Account', @current_user), 5 | 'Payments', 6 | :organisation_page => false 7 | ) %> 8 | <% body_classes << 'guidance' %> 9 | 10 |

    11 | You are not paying for any organisation's usage. 12 |

    13 | -------------------------------------------------------------------------------- /db/migrate/20090330205043_create_payment_plans.rb: -------------------------------------------------------------------------------- 1 | class CreatePaymentPlans < ActiveRecord::Migration 2 | def self.up 3 | create_table :payment_plans do |t| 4 | t.string :name 5 | t.text :description 6 | t.decimal :price 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :payment_plans 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /db/migrate/20090310175005_create_burndown_data_points.rb: -------------------------------------------------------------------------------- 1 | class CreateBurndownDataPoints < ActiveRecord::Migration 2 | def self.up 3 | create_table :burndown_data_points do |t| 4 | t.integer :iteration_id 5 | t.integer :story_points 6 | t.date :date 7 | end 8 | end 9 | 10 | def self.down 11 | drop_table :burndown_data_points 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /spec/views/invoices/show.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/invoices/show" do 4 | before(:each) do 5 | assigns[:current_user] = Users.create_user! 6 | assigns[:invoice] = Invoices.create_invoice! 7 | render 'invoices/show' 8 | end 9 | 10 | it_should_behave_like "a standard view" 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/iterations/show_active.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/iterations/new" do 4 | before :each do 5 | @iteration = Iterations.active_iteration 6 | assigns[:iteration] = @iteration 7 | render 'iterations/show_active' 8 | end 9 | 10 | it_should_behave_like "a standard view" 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/script/autospec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['RSPEC'] = 'true' # allows autotest to discover rspec 3 | ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux 4 | system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) || 5 | $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH") 6 | -------------------------------------------------------------------------------- /db/migrate/20090304004418_create_stories.rb: -------------------------------------------------------------------------------- 1 | class CreateStories < ActiveRecord::Migration 2 | def self.up 3 | create_table :stories do |t| 4 | t.integer :project_id 5 | t.integer :iteration_id 6 | t.string :name 7 | t.text :content 8 | 9 | t.timestamps 10 | end 11 | end 12 | 13 | def self.down 14 | drop_table :stories 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /db/migrate/20090323131037_create_organisation_members.rb: -------------------------------------------------------------------------------- 1 | class CreateOrganisationMembers < ActiveRecord::Migration 2 | def self.up 3 | create_table :organisation_members do |t| 4 | t.integer :user_id 5 | t.integer :organisation_id 6 | 7 | t.timestamps 8 | end 9 | end 10 | 11 | def self.down 12 | drop_table :organisation_members 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /db/migrate/20090327110522_create_story_actions.rb: -------------------------------------------------------------------------------- 1 | class CreateStoryActions < ActiveRecord::Migration 2 | def self.up 3 | create_table :story_actions do |t| 4 | t.integer :user_id 5 | t.integer :story_id 6 | t.integer :iteration_id 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :story_actions 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/object_mother/billing_addresses.rb: -------------------------------------------------------------------------------- 1 | class BillingAddresses < ObjectMother 2 | truncate_billing_address 3 | def self.billing_address_prototype 4 | { 5 | :name => 'asdf', 6 | :telephone_number => '123123', 7 | :country => 'asdf', 8 | :postcode => 'se22 8gb', 9 | :address_line_1 => 'asdf', 10 | :town => 'asdf', 11 | } 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/app/models/user_mailer.rb: -------------------------------------------------------------------------------- 1 | class UserMailer < ActionMailer::Base 2 | default_url_options[:host] = '' 3 | 4 | def signup(email, name) 5 | @recipients = email 6 | @from = "admin@example.com" 7 | @subject = "Account confirmation" 8 | @sent_on = Time.now 9 | @body[:name] = name 10 | end 11 | 12 | end 13 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml: -------------------------------------------------------------------------------- 1 | <% max = @request.env.keys.max { |a,b| a.length <=> b.length } -%> 2 | <% @request.env.keys.sort.each do |key| -%> 3 | * <%= "%-*s: %s" % [max.length, key, filter_sensitive_post_data_from_env(key, @request.env[key].to_s.strip)] %> 4 | <% end -%> 5 | 6 | * Process: <%= $$ %> 7 | * Server : <%= `hostname -s`.chomp %> 8 | -------------------------------------------------------------------------------- /app/controllers/invoices_controller.rb: -------------------------------------------------------------------------------- 1 | class InvoicesController < ApplicationController 2 | before_filter :get_invoice, :only => :show 3 | skip_before_filter :select_organisation 4 | 5 | def index 6 | @invoices = @current_user.invoices 7 | end 8 | 9 | protected 10 | 11 | def get_invoice 12 | @invoice = @current_user.invoices.find params[:id] 13 | end 14 | 15 | end 16 | -------------------------------------------------------------------------------- /app/views/payment_methods/index.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, 'Payments' %> 2 | <% content_for :h1, "Payments" %> 3 | <% breadcrumbs( 4 | link_to_unless_current('Account', @current_user), 5 | 'Payments', 6 | :organisation_page => false 7 | ) %> 8 | 9 |

    10 | You are paying for the following organisations. 11 |

    12 | 13 |
      14 | <%= render @payment_methods %> 15 |
    16 | -------------------------------------------------------------------------------- /app/views/stories/_prioritising_story.erb: -------------------------------------------------------------------------------- 1 |

    2 | <%= label_tag "priorities_#{prioritising_story.id}", 'Priority' %> 3 | <%= text_field_tag("project[priorities[#{prioritising_story.id}]]", 4 | prioritising_story.priority, 5 | :id => "priorities_#{prioritising_story.id}", 6 | :class => 'numeric', 7 | :size => 2) %> 8 |

    9 | -------------------------------------------------------------------------------- /spec/object_mother/payment_methods.rb: -------------------------------------------------------------------------------- 1 | class PaymentMethods < ObjectMother 2 | def self.payment_method_prototype 3 | { 4 | :cardholder_name => 'Joe Bloggs', 5 | :number => '4929000000006', 6 | :month => 1.month.from_now.month, 7 | :year => 1.month.from_now.year, 8 | :verification_value => 123, 9 | :card_type => 'visa' 10 | } 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /app/models/invoice_observer.rb: -------------------------------------------------------------------------------- 1 | class InvoiceObserver < ActiveRecord::Observer 2 | def before_validation_on_create(invoice) 3 | return true unless invoice.amount? 4 | invoice.vat_rate = Invoice::VAT_RATE 5 | invoice.vat_amount = (invoice.amount * Invoice::VAT_RATE) / 100.0 6 | end 7 | 8 | def after_create(invoice) 9 | UserMailer.deliver_invoice(invoice) 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /app/models/organisation_observer.rb: -------------------------------------------------------------------------------- 1 | class OrganisationObserver < ActiveRecord::Observer 2 | 3 | def before_create(organisation) 4 | today = Date.today 5 | 6 | organisation.next_payment_date = 7 | if today.day > 28 8 | then Date.new(today.year, today.month + 2, 1) 9 | else Date.new(today.year, today.month + 1, today.day) 10 | end 11 | end 12 | 13 | end 14 | -------------------------------------------------------------------------------- /app/views/stories/_project_select.erb: -------------------------------------------------------------------------------- 1 |

    2 | <%= label_tag :project_id %> 3 | <%= select_tag(:project_id, 4 | options_from_collection_for_select(@current_organisation.projects, 5 | :id, 6 | :to_s, 7 | params[:project_id].to_i)) %> 8 |

    9 | -------------------------------------------------------------------------------- /db/migrate/20090402091521_create_captures.rb: -------------------------------------------------------------------------------- 1 | class CreateCaptures < ActiveRecord::Migration 2 | def self.up 3 | create_table :captures do |t| 4 | t.integer :payment_id 5 | t.string :status 6 | t.string :status_detail 7 | t.integer :amount 8 | 9 | t.timestamps 10 | end 11 | end 12 | 13 | def self.down 14 | drop_table :captures 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /app/views/stories/new_without_project.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "New Story" %> 2 | <% content_for :h1, "New Story" %> 3 | <% breadcrumbs 'New Story' %> 4 | <% form_for @story do |form| %> 5 | <%= form.error_messages %> 6 | <%= render :partial => 'stories/project_select' %> 7 | <%= render form %> 8 |

    9 | <%= form.submit 'Create Story' %> 10 |

    11 | <% end %> 12 | -------------------------------------------------------------------------------- /spec/controllers/sitemaps_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe SitemapsController do 4 | 5 | describe "show" do 6 | it "should be successful" do 7 | session[:user_id] = nil 8 | session[:organisation_id] = nil 9 | get :show, :format => :xml 10 | response.should be_success 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/stories/index.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "#{@project} Stories" %> 2 | <% content_for :h1, h("#{@project} Stories") %> 3 | <% breadcrumbs link_to(h(@project), @project), 'Stories' %> 4 | 5 | <% unless @project.stories.empty? %> 6 |
      7 | <% @project.stories.each do |story| %> 8 |
    1. <%= link_to h(story), [@project, story] %>
    2. 9 | <% end %> 10 |
    11 | <% end %> 12 | -------------------------------------------------------------------------------- /spec/views/organisations/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/organisations/new" do 4 | before(:each) do 5 | assigns[:organisation] = Organisation.new 6 | assigns[:payment_plans] = [PaymentPlans.create_payment_plan!] 7 | render 'organisations/new' 8 | end 9 | 10 | it_should_behave_like "a standard view" 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/payment_methods/index_guidance.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/payment_methods/index_guidance" do 4 | before(:each) do 5 | assigns[:current_user] = mock_model User 6 | assigns[:payment_methods] = [] 7 | render 'payment_methods/index_guidance' 8 | end 9 | 10 | it_should_behave_like "guidance" 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20090304193819_create_acceptance_criteria.rb: -------------------------------------------------------------------------------- 1 | class CreateAcceptanceCriteria < ActiveRecord::Migration 2 | def self.up 3 | create_table :acceptance_criteria do |t| 4 | t.integer :story_id 5 | t.string :criterion 6 | t.datetime :fulfilled_at 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :acceptance_criteria 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /app/views/stories/backlog_guidance.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "#{@project} Backlog" %> 2 | <% content_for :h1, h("#{@project} Backlog") %> 3 | <% breadcrumbs link_to(h(@project), @project), 'Backlog' %> 4 | <% body_classes << 'guidance' %> 5 | 6 |

    Empty backlog

    7 |

    8 | You don't have a backlog! You might want to write a 9 | <%= link_to 'new story', new_project_story_path(@project) %>. 10 |

    11 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/generators/integration/templates/module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class <%= class_name %>ModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of <%= class_name %>::Notification, <%= class_name %>.notification('name=cody') 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /app/views/iterations/_new.erb: -------------------------------------------------------------------------------- 1 | <% form_tag new_iteration_path, :method => :get do -%> 2 |

    3 | <%= label_tag :project_id, "Plan an iteration for" %> 4 | <%= select_tag :project_id, 5 | options_from_collection_for_select(@current_organisation.projects, 6 | :id, 7 | :name) %> 8 | <%= submit_tag "Go" %> 9 |

    10 | <% end -%> 11 | -------------------------------------------------------------------------------- /db/migrate/20090312123836_remove_started_on_and_finished_on_from_iteration.rb: -------------------------------------------------------------------------------- 1 | class RemoveStartedOnAndFinishedOnFromIteration < ActiveRecord::Migration 2 | def self.up 3 | remove_column :iterations, :started_on 4 | remove_column :iterations, :finished_on 5 | end 6 | 7 | def self.down 8 | add_column :iterations, :started_on, :date 9 | add_column :iterations, :finished_on, :date 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /db/migrate/20090318093902_create_organisation_sponsors.rb: -------------------------------------------------------------------------------- 1 | class CreateOrganisationSponsors < ActiveRecord::Migration 2 | def self.up 3 | create_table :organisation_sponsors do |t| 4 | t.integer :user_id 5 | t.integer :sponsor_id 6 | t.integer :organisation_id 7 | 8 | t.timestamps 9 | end 10 | end 11 | 12 | def self.down 13 | drop_table :organisation_sponsors 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /db/migrate/20090325141402_delete_organisation_sponsors.rb: -------------------------------------------------------------------------------- 1 | class DeleteOrganisationSponsors < ActiveRecord::Migration 2 | def self.up 3 | drop_table :organisation_sponsors 4 | end 5 | 6 | def self.down 7 | create_table :organisation_sponsors do |t| 8 | t.integer :user_id 9 | t.integer :sponsor_id 10 | t.integer :organisation_id 11 | 12 | t.timestamps 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /app/views/stories/new_with_project.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "New Story" %> 2 | <% content_for :h1, "New Story" %> 3 | <% breadcrumbs link_to(h(@project), @project), 'New Story' %> 4 | <% form_for @story do |form| %> 5 | <%= form.error_messages %> 6 | <%= render :partial => 'stories/project_select' %> 7 | <%= render form %> 8 |

    9 | <%= form.submit 'Create Story' %> 10 |

    11 | <% end %> 12 | -------------------------------------------------------------------------------- /app/views/users/show.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Account" %> 2 | <% content_for :h1, "Account" %> 3 | <% breadcrumbs( 4 | link_to_unless_current('Account', @current_user), 5 | :organisation_page => false 6 | ) %> 7 | 8 |

    9 | <%= link_to 'Invoices', :invoices %> 10 |

    11 | 12 |

    13 | <%= link_to 'Organisations', :organisations %> 14 |

    15 | 16 |

    17 | <%= link_to 'Payments', :payment_methods %> 18 |

    19 | -------------------------------------------------------------------------------- /db/migrate/20090303213012_create_iterations.rb: -------------------------------------------------------------------------------- 1 | class CreateIterations < ActiveRecord::Migration 2 | def self.up 3 | create_table :iterations do |t| 4 | t.integer :project_id 5 | t.string :name 6 | t.integer :duration 7 | t.date :started_on 8 | t.date :finished_on 9 | 10 | t.timestamps 11 | end 12 | end 13 | 14 | def self.down 15 | drop_table :iterations 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /public/stylesheets/iteration_active/typography.css: -------------------------------------------------------------------------------- 1 | body.iteration_active .javascript #stories .guidance p { max-width:none } 2 | body.iteration_active .javascript #stories .guidance, 3 | body.iteration_active .javascript #burndown, 4 | body.iteration_active .javascript #headings ol li { text-align:center } 5 | body.iteration_active h1 { margin-bottom:0 } 6 | body.iteration_active #content .story li { font-size:93%; padding:2px 5px 1px } 7 | -------------------------------------------------------------------------------- /spec/helpers/home_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe HomeHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(HomeHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /app/helpers/stories_helper.rb: -------------------------------------------------------------------------------- 1 | module StoriesHelper 2 | 3 | def story_classes(story) 4 | "story #{story.status} #{story.team_members.empty? ? '' : 'with_team'}" 5 | end 6 | 7 | def story_breadcrumbs(story) 8 | crumbs = [ link_to(h(@project), @project) ] 9 | 10 | if @story.iteration_id? 11 | crumbs << link_to(@story.iteration, [@project, @story.iteration]) 12 | end 13 | 14 | crumbs 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /db/migrate/20090401164134_add_payment_dates_to_organisations.rb: -------------------------------------------------------------------------------- 1 | class AddPaymentDatesToOrganisations < ActiveRecord::Migration 2 | def self.up 3 | add_column :organisations, :first_payment_date, :date 4 | add_column :organisations, :next_payment_date, :date 5 | end 6 | 7 | def self.down 8 | remove_column :organisations, :next_payment_date 9 | remove_column :organisations, :first_payment_date 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/public_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe PublicHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(PublicHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/users_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe UsersHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(UsersHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/stories_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe StoriesHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(StoriesHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../../spec/spec_helper' 2 | 3 | plugin_spec_dir = File.dirname(__FILE__) 4 | ActiveRecord::Base.logger = Logger.new(plugin_spec_dir + "/debug.log") 5 | 6 | databases = YAML::load(IO.read(plugin_spec_dir + "/db/database.yml")) 7 | ActiveRecord::Base.establish_connection(databases[ENV["DB"] || "sqlite3"]) 8 | load(File.join(plugin_spec_dir, "db", "schema.rb")) 9 | -------------------------------------------------------------------------------- /app/models/capture.rb: -------------------------------------------------------------------------------- 1 | class Capture < ActiveRecord::Base 2 | include PaymentGateway 3 | 4 | attr_accessor :authorization 5 | attr_accessor :response 6 | 7 | belongs_to :payment 8 | 9 | def before_create 10 | self.response = gateway.capture(amount, authorization, :authenticate => true) 11 | 12 | self.status = response.params['Status'] 13 | self.status_detail = response.params['StatusDetail'] 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /spec/helpers/burndowns_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe BurndownsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(BurndownsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/invoices_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe InvoicesHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(InvoicesHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/sessions_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe SessionsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(SessionsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/sitemaps_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe SitemapsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(SitemapsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/burndowns/show.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/burndowns/show" do 4 | before(:each) do 5 | render 'burndowns/show' 6 | end 7 | 8 | #Delete this example and add some real ones or delete this file 9 | it "should tell you where to find the file" do 10 | response.should have_tag('p', %r[Find me in app/views/burndowns/show]) 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /app/views/stories/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Editing #{@story}" %> 2 | <% content_for :h1, h("Editing #{@story}") %> 3 | <% breadcrumbs(*story_breadcrumbs(@story) + 4 | [ link_to(h(@story), [@project, @story]), 'Edit' ] 5 | ) %> 6 | <% form_for [@project, @story] do |form| %> 7 | <%= form.error_messages %> 8 | <%= render form %> 9 |

    10 | <%= form.submit 'Update Story' %> 11 |

    12 | <% end %> 13 | -------------------------------------------------------------------------------- /db/migrate/20090401182040_create_authorisations.rb: -------------------------------------------------------------------------------- 1 | class CreateAuthorisations < ActiveRecord::Migration 2 | def self.up 3 | create_table :authorisations do |t| 4 | t.integer :payment_id 5 | t.string :authorisation 6 | t.string :status 7 | t.text :status_detail 8 | t.integer :amount 9 | 10 | t.timestamps 11 | end 12 | end 13 | 14 | def self.down 15 | drop_table :authorisations 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/helpers/iterations_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe IterationsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(IterationsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /app/views/iterations/new.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Planning iteration for #{@project}" %> 2 | <% content_for :h1, "Planning iteration for #{h(@project)}" %> 3 | <% breadcrumbs link_to(h(@project), @project), 'Plan Iteration' %> 4 | <% body_classes << 'iteration_planning' %> 5 | 6 | <% form_for [@project, @iteration] do |form| %> 7 | <%= render form %> 8 |

    9 | <%= form.submit 'Create Iteration' %> 10 |

    11 | <% end %> 12 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying do debug a problem that might steem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! -------------------------------------------------------------------------------- /db/migrate/20090403091156_create_repeats.rb: -------------------------------------------------------------------------------- 1 | class CreateRepeats < ActiveRecord::Migration 2 | def self.up 3 | create_table :repeats do |t| 4 | t.integer :payment_id 5 | t.integer :amount 6 | t.string :description 7 | t.text :authorization 8 | t.string :status 9 | t.string :status_detail 10 | 11 | t.timestamps 12 | end 13 | end 14 | 15 | def self.down 16 | drop_table :repeats 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/controllers/public_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe PublicController do 4 | 5 | describe "show" do 6 | def do_call 7 | get :show 8 | end 9 | 10 | it_should_behave_like "it's successful" 11 | 12 | it "should render the show template" do 13 | do_call 14 | response.should render_template('public/show') 15 | end 16 | end 17 | 18 | end 19 | -------------------------------------------------------------------------------- /spec/fixtures/protx/successful_capture.yml: -------------------------------------------------------------------------------- 1 | --- !ruby/object:ActiveMerchant::Billing::Response 2 | authorization: 2;;; 3 | avs_result: 4 | code: 5 | postal_match: 6 | street_match: 7 | message: 8 | cvv_result: 9 | code: 10 | message: 11 | fraud_review: 12 | message: Success 13 | params: 14 | Status: OK 15 | StatusDetail: The transaction was RELEASEed successfully. 16 | VPSProtocol: "2.23" 17 | success: true 18 | test: false 19 | -------------------------------------------------------------------------------- /spec/helpers/organisations_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe OrganisationsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(OrganisationsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/payment_methods_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe PaymentMethodsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(PaymentMethodsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/verifications_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe VerificationsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(VerificationsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/script/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_ROOT = File.join(File.dirname(__FILE__), '..') 3 | 4 | begin 5 | require 'rubigen' 6 | rescue LoadError 7 | require 'rubygems' 8 | require 'rubigen' 9 | end 10 | require 'rubigen/scripts/destroy' 11 | 12 | ARGV.shift if ['--help', '-h'].include?(ARGV[0]) 13 | RubiGen::Base.use_component_sources! [:activemerchant, :rubygems, :test_unit] 14 | RubiGen::Scripts::Destroy.new.run(ARGV) 15 | -------------------------------------------------------------------------------- /spec/views/iterations/new_guidance.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/iterations/new_guidance" do 4 | before :each do 5 | @project = mock_model(Project) 6 | @iteration = mock_model(Iteration) 7 | assigns[:project] = @project 8 | assigns[:iteration] = @iteration 9 | 10 | render 'iterations/new_guidance' 11 | end 12 | 13 | it_should_behave_like "guidance" 14 | end 15 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways/payflow/payflow_response.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | class PayflowResponse < Response 4 | def profile_id 5 | @params['profile_id'] 6 | end 7 | 8 | def payment_history 9 | @payment_history ||= @params['rp_payment_result'].collect{ |result| result.stringify_keys } rescue [] 10 | end 11 | end 12 | end 13 | end -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/script/generate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_ROOT = File.join(File.dirname(__FILE__), '..') 3 | 4 | begin 5 | require 'rubigen' 6 | rescue LoadError 7 | require 'rubygems' 8 | require 'rubigen' 9 | end 10 | require 'rubigen/scripts/generate' 11 | 12 | ARGV.shift if ['--help', '-h'].include?(ARGV[0]) 13 | RubiGen::Base.use_component_sources! [:activemerchant, :rubygems, :test_unit] 14 | RubiGen::Scripts::Generate.new.run(ARGV) 15 | -------------------------------------------------------------------------------- /db/migrate/20090401162346_create_payments.rb: -------------------------------------------------------------------------------- 1 | class CreatePayments < ActiveRecord::Migration 2 | def self.up 3 | create_table :payments do |t| 4 | t.integer :organisation_id 5 | t.string :vpstxid 6 | t.string :security_key 7 | t.string :tx_auth_no 8 | t.string :vendor_tx_code 9 | t.integer :amount 10 | 11 | t.timestamps 12 | end 13 | end 14 | 15 | def self.down 16 | drop_table :payments 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/helpers/active_iterations_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe ActiveIterationsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(ActiveIterationsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/agile_terminology_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe AgileTerminologyHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(AgileTerminologyHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/keyboard_shortcuts_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe KeyboardShortcutsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(KeyboardShortcutsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/story_team_members_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe StoryTeamMembersHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(StoryTeamMembersHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/gateways/payflow_express_uk_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class PayflowExpressUkTest < Test::Unit::TestCase 4 | def setup 5 | @gateway = PayflowExpressUkGateway.new( 6 | :login => 'LOGIN', 7 | :password => 'PASSWORD' 8 | ) 9 | end 10 | 11 | def test_supported_countries 12 | assert_equal ['GB'], PayflowExpressUkGateway.supported_countries 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /app/views/payment_plans/_payment_plan.erb: -------------------------------------------------------------------------------- 1 | <% unless defined? short %> 2 |

    Payment Plan: <%= h payment_plan.name %>

    3 |

    4 | <%= number_to_currency payment_plan.price %> per month 5 |

    6 | <% end %> 7 | 12 | -------------------------------------------------------------------------------- /spec/helpers/acceptance_criteria_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe AcceptanceCriteriaHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(AcceptanceCriteriaHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/helpers/organisation_members_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe OrganisationMembersHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(OrganisationMembersHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/organisations/edit.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/organisations/edit" do 4 | before(:each) do 5 | assigns[:organisation] = mock_model Organisation, :name => '' 6 | assigns[:current_organisation] = mock_model Organisation 7 | assigns[:current_user] = mock_model User 8 | render 'organisations/edit' 9 | end 10 | 11 | it_should_behave_like "a standard view" 12 | end 13 | -------------------------------------------------------------------------------- /app/views/invoices/_invoice.erb: -------------------------------------------------------------------------------- 1 | 2 | <%= h invoice %> 3 | <%= h invoice.organisation_name %> 4 | <%= h invoice.payment_plan_name %> 5 | <%= l invoice.date, :format => :month %> 6 | <%= number_to_currency invoice.amount, :precision => 2 %> 7 | <%= number_to_currency invoice.vat_amount, :precision => 2 %> 8 | <%= link_to "Full #{h(invoice)} invoice", invoice %> 9 | 10 | -------------------------------------------------------------------------------- /spec/helpers/user_acknowledgements_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe UserAcknowledgementsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(UserAcknowledgementsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /app/views/iterations/_form.erb: -------------------------------------------------------------------------------- 1 | <%= form.error_messages %> 2 |

    3 | <%= form.label :name %> 4 | <%= form.text_field :name %> 5 |

    6 |

    7 | <%= form.label :duration, 'Duration (days)' %> 8 | <%= form.text_field :duration, :class => 'numeric', :size => 2 %> 9 |

    10 | 11 |
    12 |
    13 |

    Backlog

    14 |
      15 | <%= render @stories %> 16 |
    17 |
    18 |
    19 | -------------------------------------------------------------------------------- /app/views/iterations/_iteration.erb: -------------------------------------------------------------------------------- 1 | <% 2 | width ||= 300 3 | ratio = 600 / width 4 | height = 450 / ratio 5 | %> 6 | 7 |
  • 8 | <%= link_to( 9 | image_tag(iteration.pending? ? 'burndown.png' : iteration_burndown_path(iteration, :width => width), 10 | :width => width, :height => height, :alt => "Burndown chart for #{h iteration.name}"), 11 | [iteration.project, iteration]) %> 12 | <%= link_to h(iteration), [iteration.project, iteration] %> 13 |
  • 14 | -------------------------------------------------------------------------------- /db/migrate/20090403130529_rename_payment_method_fields_to_be_same_as_active_merchant.rb: -------------------------------------------------------------------------------- 1 | class RenamePaymentMethodFieldsToBeSameAsActiveMerchant < ActiveRecord::Migration 2 | def self.up 3 | rename_column :payment_methods, :expiry_month, :month 4 | rename_column :payment_methods, :expiry_year, :year 5 | end 6 | 7 | def self.down 8 | rename_column :payment_methods, :year, :expiry_year 9 | rename_column :payment_methods, :month, :expiry_month 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /spec/controllers/login_protection_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | [ 4 | HomeController, 5 | IterationsController, 6 | ProjectsController, 7 | StoriesController, 8 | AcceptanceCriteriaController, 9 | ].each do |klass| 10 | 11 | describe klass do 12 | it "should have the login_required filter" do 13 | klass.filter_chain.map(&:method).should include(:login_required) 14 | end 15 | end 16 | 17 | end 18 | 19 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format 4 | # (all these examples are active by default): 5 | ActiveSupport::Inflector.inflections do |inflect| 6 | # inflect.plural /^(ox)$/i, '\1en' 7 | # inflect.singular /^(ox)en/i, '\1' 8 | # inflect.irregular 'person', 'people' 9 | # inflect.uncountable %w( fish sheep ) 10 | inflect.irregular 'criterion', 'criteria' 11 | end 12 | -------------------------------------------------------------------------------- /public/stylesheets/iteration_planning/colours.css: -------------------------------------------------------------------------------- 1 | body.iteration_planning .include a{ background-repeat:no-repeat } 2 | body.iteration_planning #stories_available .include a { background-image:url(/images/arrow_large_left_highlighted.png) } 3 | body.iteration_planning #stories_iteration .include a { background-image:url(/images/arrow_large_right_highlighted.png) } 4 | body.iteration_planning .display .content { background:#fff } 5 | body.iteration_planning #content .story .estimate { border:none } 6 | -------------------------------------------------------------------------------- /spec/views/agile_terminology/project.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/agile_terminology/project" do 4 | before(:each) do 5 | render 'agile_terminology/project' 6 | end 7 | 8 | #Delete this example and add some real ones or delete this file 9 | it "should tell you where to find the file" do 10 | response.should have_tag('p', %r[Find me in app/views/agile_terminology/project]) 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format 4 | # (all these examples are active by default): 5 | # ActiveSupport::Inflector.inflections do |inflect| 6 | # inflect.plural /^(ox)$/i, '\1en' 7 | # inflect.singular /^(ox)en/i, '\1' 8 | # inflect.irregular 'person', 'people' 9 | # inflect.uncountable %w( fish sheep ) 10 | # end 11 | -------------------------------------------------------------------------------- /spec/helpers/verification_notifications_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe VerificationNotificationsHelper do 4 | 5 | #Delete this example and add some real ones or delete this file 6 | it "should be included in the object returned by #helper" do 7 | included_modules = (class << helper; self; end).send :included_modules 8 | included_modules.should include(VerificationNotificationsHelper) 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/stories/backlog_guidance.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/stories/backlog_guidance" do 4 | 5 | before :each do 6 | assigns[:current_user] = mock_model User, :organisation => 'asdf' 7 | @project = mock_model(Project) 8 | assigns[:project] = @project 9 | end 10 | 11 | before :each do 12 | render 'stories/backlog_guidance' 13 | end 14 | 15 | it_should_behave_like "guidance" 16 | end 17 | -------------------------------------------------------------------------------- /app/views/projects/show_guidance.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "#{@project} | Projects" %> 2 | <% content_for :h1, h(@project) %> 3 | <% content_for :actions do %> 4 |
  • <%= link_to "Edit", edit_project_path(@project) %>
  • 5 | <% end %> 6 | <% breadcrumbs h(@project) %> 7 | <% body_classes << 'guidance' %> 8 | 9 | <%= simple_format h(@project.description) %> 10 | 11 |

    No Stories

    12 |

    13 | You should start by <%= link_to 'creating a story', [:new, @project, :story] %>. 14 |

    15 | -------------------------------------------------------------------------------- /db/migrate/20090325101204_move_acknowledgement_token_from_user_to_organisation_member.rb: -------------------------------------------------------------------------------- 1 | class MoveAcknowledgementTokenFromUserToOrganisationMember < ActiveRecord::Migration 2 | def self.up 3 | add_column :organisation_members, :acknowledgement_token, :string 4 | remove_column :users, :acknowledgement_token 5 | end 6 | 7 | def self.down 8 | add_column :users, :acknowledgement_token, :string 9 | remove_column :organisation_members, :acknowledgement_token 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /spec/views/agile_terminology/iteration.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/agile_terminology/iteration" do 4 | before(:each) do 5 | render 'agile_terminology/iteration' 6 | end 7 | 8 | #Delete this example and add some real ones or delete this file 9 | it "should tell you where to find the file" do 10 | response.should have_tag('p', %r[Find me in app/views/agile_terminology/iteration]) 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/lib/utils.rb: -------------------------------------------------------------------------------- 1 | require 'digest/md5' 2 | 3 | module ActiveMerchant #:nodoc: 4 | module Utils #:nodoc: 5 | def generate_unique_id 6 | md5 = Digest::MD5.new 7 | now = Time.now 8 | md5 << now.to_s 9 | md5 << String(now.usec) 10 | md5 << String(rand(0)) 11 | md5 << String($$) 12 | md5 << self.class.name 13 | md5.hexdigest 14 | end 15 | 16 | module_function :generate_unique_id 17 | end 18 | end -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/nochex_module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class ChronopayModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of Nochex::Notification, Nochex.notification('name=cody') 8 | end 9 | 10 | def test_return_method 11 | assert_instance_of Nochex::Return, Nochex.return('name=cody') 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/user_mailer/acknowledgement.erb: -------------------------------------------------------------------------------- 1 | Welcome to Simply Agile. 2 | 3 | You have been added to the organisation '<%= @organisation.name %>' by 4 | <%= @sponsor.email_address %>. To acknowledge this and to start using 5 | Simply Agile please visit the following url and finish 6 | setting up your account: 7 | 8 | <%= new_user_acknowledgement_url(@user, :token => @token) %> 9 | 10 | 11 | To find out more about Simple Agile visit http://besimplyagile.com/ 12 | 13 | Regards. 14 | The Simply Agile Team 15 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/hi_trust_module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class HiTrustModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of HiTrust::Notification, HiTrust.notification('name=cody') 8 | end 9 | 10 | def test_return_method 11 | assert_instance_of HiTrust::Return, HiTrust.return('name=cody') 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/iterations/new_guidance.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "New iteration for #{@project}" %> 2 | <% content_for :h1, "No available stories for #{h(@project)}" %> 3 | <% breadcrumbs link_to(h(@project), @project), 'New Iteration' %> 4 | <% body_classes << 'guidance' %> 5 | 6 |

    7 | There are no available stories for this project, so you can't plan an iteration. 8 |

    9 |

    10 | You might want to 11 | <%= link_to 'create a story for this project', new_project_story_path(@project) %>. 12 |

    13 | -------------------------------------------------------------------------------- /spec/models/story_action_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe StoryAction do 4 | describe "associations" do 5 | it "should belong to a user" do 6 | StoryAction.should belong_to(:user) 7 | end 8 | 9 | it "should belong to a story" do 10 | StoryAction.should belong_to(:story) 11 | end 12 | 13 | it "should belong to an iteration" do 14 | StoryAction.should belong_to(:iteration) 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /spec/views/agile_terminology/organisation.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/agile_terminology/organisation" do 4 | before(:each) do 5 | render 'agile_terminology/organisation' 6 | end 7 | 8 | #Delete this example and add some real ones or delete this file 9 | it "should tell you where to find the file" do 10 | response.should have_tag('p', %r[Find me in app/views/agile_terminology/organisation]) 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /db/migrate/20090621194747_replace_repeat_payment_token_with_initial_payment_in_payment_methods.rb: -------------------------------------------------------------------------------- 1 | class ReplaceRepeatPaymentTokenWithInitialPaymentInPaymentMethods < ActiveRecord::Migration 2 | def self.up 3 | remove_column :payment_methods, :repeat_payment_token 4 | add_column :payment_methods, :initial_payment_id, :integer 5 | end 6 | 7 | def self.down 8 | add_column :payment_methods, :repeat_payment_token, :text 9 | remove_column :payment_methods, :initial_payment_id 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/chronopay_module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class ChronopayModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of Chronopay::Notification, Chronopay.notification('name=cody') 8 | end 9 | 10 | def test_return_method 11 | assert_instance_of Chronopay::Return, Chronopay.return('name=cody') 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/acceptance_criteria/edit.js.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% form_for [@project, @story, @acceptance_criterion] do |f| %> 4 |

    5 | <%= 6 | f.text_field :criterion, 7 | :id => 'edit_acceptance_criterion_criterion', 8 | :class => 'auto_focus' 9 | %> 10 | <%= f.submit 'Update' %> 11 |

    12 | <% end %> 13 | 14 | 15 | <%= button_to 'Delete', [@project, @story, @acceptance_criterion], 16 | :method => :delete %> 17 | 18 | 19 | -------------------------------------------------------------------------------- /db/migrate/20090331102153_create_payment_methods.rb: -------------------------------------------------------------------------------- 1 | class CreatePaymentMethods < ActiveRecord::Migration 2 | def self.up 3 | create_table :payment_methods do |t| 4 | t.integer :last_four_digits 5 | t.integer :expiry_month 6 | t.integer :expiry_year 7 | t.integer :billing_address_id 8 | t.integer :user_id 9 | t.integer :organisation_id 10 | 11 | t.timestamps 12 | end 13 | end 14 | 15 | def self.down 16 | drop_table :payment_methods 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/object_mother/users.rb: -------------------------------------------------------------------------------- 1 | require 'vendor/plugins/validates_email_format_of/lib/validates_email_format_of' 2 | class Users < ObjectMother 3 | truncate_user 4 | def self.user_prototype 5 | user_count = User.count 6 | organisation_count = Organisation.count 7 | { 8 | :email_address => "user#{user_count + 1}@jandaweb.com", 9 | :password => 'password', 10 | :organisations => [Organisations.create_organisation!(:name => "Organisation #{organisation_count}")] 11 | } 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /app/views/iterations/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Planning iteration #{@iteration}" %> 2 | <% content_for :h1, "Planning iteration #{h(@iteration)}" %> 3 | <% breadcrumbs( 4 | link_to(h(@project), @project), 5 | link_to(h(@iteration), [@project, @iteration]), 6 | 'Re-plan' 7 | ) %> 8 | <% body_classes << 'iteration_planning' %> 9 | 10 | <% form_for [@project, @iteration] do |form| %> 11 | <%= render form %> 12 |

    13 | <%= form.submit 'Update Iteration' %> 14 |

    15 | <% end %> 16 | -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/test/fixtures/person.rb: -------------------------------------------------------------------------------- 1 | class Person < ActiveRecord::Base 2 | validates_email_format_of :email, 3 | :on => :create, 4 | :message => 'fails with custom message', 5 | :allow_nil => true 6 | end 7 | 8 | class MxRecord < ActiveRecord::Base 9 | validates_email_format_of :email, 10 | :on => :create, 11 | :check_mx => true 12 | end 13 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/two_checkout_module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class TwoCheckoutModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of TwoCheckout::Notification, TwoCheckout.notification('name=cody') 8 | end 9 | 10 | def test_return_method 11 | assert_instance_of TwoCheckout::Return, TwoCheckout.return('name=cody') 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /db/migrate/20090331105217_add_limits_to_payment_plans.rb: -------------------------------------------------------------------------------- 1 | class AddLimitsToPaymentPlans < ActiveRecord::Migration 2 | def self.up 3 | add_column :payment_plans, :active_iteration_limit, :integer 4 | add_column :payment_plans, :project_limit, :integer 5 | add_column :payment_plans, :user_limit, :integer 6 | end 7 | 8 | def self.down 9 | remove_column :payment_plans, :user_limit 10 | remove_column :payment_plans, :project_limit 11 | remove_column :payment_plans, :active_iteration_limit 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/two_checkout/return.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module TwoCheckout 5 | class Return < ActiveMerchant::Billing::Integrations::Return 6 | def success? 7 | params['credit_card_processed'] == 'Y' 8 | end 9 | 10 | def message 11 | 12 | end 13 | end 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /app/controllers/active_iterations_controller.rb: -------------------------------------------------------------------------------- 1 | class ActiveIterationsController < ApplicationController 2 | 3 | before_filter :get_iteration 4 | 5 | def create 6 | if @iteration.start 7 | redirect_to [@iteration.project, @iteration] 8 | else 9 | @project = @iteration.project 10 | render :template => 'iterations/show' 11 | end 12 | end 13 | 14 | protected 15 | 16 | def get_iteration 17 | @iteration = 18 | current_organisation.iterations.find(params[:iteration_id]) 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /app/views/acceptance_criteria/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, @acceptance_criterion %> 2 | <% content_for :h1, h(@acceptance_criterion) %> 3 | <% breadcrumbs( 4 | link_to(h(@project), @project), 5 | link_to(h(@story), [@project, @story]), 6 | h(@acceptance_criterion), 7 | 'Edit' 8 | ) %> 9 | 10 | <% form_for [@project, @story, @acceptance_criterion] do |f| %> 11 |

    12 | <%= f.label :criterion %> 13 | <%= f.text_field :criterion, :class => 'auto_focus' %> 14 | <%= f.submit 'Update' %> 15 |

    16 | <% end %> 17 | 18 | -------------------------------------------------------------------------------- /app/views/verification_notifications/new.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Re-send Verification Email" %> 2 | <% content_for :h1, "Re-send Verification Email" %> 3 | 4 | <% form_for User.new, :url => verification_notification_path, 5 | :html => {:id => 'reverification'} do |f| %> 6 |

    7 | Please enter your email address to receive a new verification email. 8 |

    9 |

    10 | <%= f.label :email_address %> 11 | <%= f.text_field :email_address %> 12 |

    13 |

    14 | <%= f.submit 'Send' %> 15 |

    16 | <% end %> 17 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/spec/controllers/welcome_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') 2 | 3 | describe WelcomeController do 4 | 5 | describe "POST /signup (#signup)" do 6 | it "should deliver the signup email" do 7 | # expect 8 | UserMailer.should_receive(:deliver_signup).with("email@example.com", "Jimmy Bean") 9 | # when 10 | post :signup, "Email" => "email@example.com", "Name" => "Jimmy Bean" 11 | end 12 | 13 | end 14 | 15 | end 16 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/lib/email_spec.rb: -------------------------------------------------------------------------------- 1 | unless defined?(ActionMailer) 2 | Kernel.warn("ActionMailer did not appear to be loaded so email-spec is requiring it.") 3 | require 'actionmailer' 4 | end 5 | 6 | $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__))) 7 | 8 | require 'email_spec/deliveries' 9 | require 'email_spec/address_converter' 10 | require 'email_spec/email_viewer' 11 | require 'email_spec/helpers' 12 | require 'email_spec/matchers' 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/models/story_team_member.rb: -------------------------------------------------------------------------------- 1 | class StoryTeamMember < ActiveRecord::Base 2 | include CurrentUser 3 | 4 | attr_protected :user_id 5 | belongs_to :user 6 | belongs_to :story 7 | 8 | validates_presence_of :user_id, :story_id 9 | 10 | validates_uniqueness_of :story_id, :scope => :user_id, 11 | :message => 'is already assigned to you' 12 | 13 | def validate 14 | if story && !user.organisations.include?(story.project.organisation) 15 | errors.add(:story, "must belong to one of your projects") 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/views/projects/edit.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/projects/edit" do 4 | 5 | before :each do 6 | @project = mock_model(Project, 7 | :stories => [], 8 | :iterations => [], 9 | :name => '', 10 | :description => '') 11 | assigns[:project] = @project 12 | 13 | render 'projects/edit' 14 | end 15 | 16 | it_should_behave_like "a standard view" 17 | end 18 | -------------------------------------------------------------------------------- /vendor/plugins/country_select/README: -------------------------------------------------------------------------------- 1 | CountrySelect 2 | ============= 3 | 4 | Provides a simple helper to get an HTML select list of countries. The list of countries comes from the ISO 3166 standard. While it is a relatively neutral source of country names, it will still offend some users. 5 | 6 | Users are strongly advised to evaluate the suitability of this list given their user base. 7 | 8 | Example 9 | ======= 10 | 11 | country_select("user", "country_name") 12 | 13 | 14 | Copyright (c) 2008 Michael Koziarski, released under the MIT license 15 | -------------------------------------------------------------------------------- /vendor/plugins/no-peeping-toms/lib/no_peeping_toms.rb: -------------------------------------------------------------------------------- 1 | module NoPeepingToms 2 | def with_observers(*observer_syms) 3 | observer_names = [observer_syms].flatten 4 | observers = observer_names.map do |o| 5 | if o.respond_to?(:instance) && o.instance.is_a?(ActiveRecord::Observer) 6 | o.instance 7 | else 8 | o.to_s.classify.constantize.instance 9 | end 10 | end 11 | 12 | observers.each { |o| old_add_observer(o) } 13 | yield 14 | observers.each { |o| delete_observer(o) } 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /spec/object_mother/organisations.rb: -------------------------------------------------------------------------------- 1 | require File.join(File.dirname(__FILE__), 'payment_plans') 2 | class Organisations < ObjectMother 3 | truncate_organisation 4 | 5 | def self.organisation_prototype 6 | { 7 | :name => (Organisation.count + 1), 8 | :payment_plan_id => PaymentPlans.create_payment_plan!.id, 9 | } 10 | end 11 | 12 | define_organisation(:jandaweb, 13 | :name => 'Jandaweb', 14 | :payment_plan_id => PaymentPlans.create_payment_plan!(:project_limit => 1000).id) 15 | end 16 | -------------------------------------------------------------------------------- /spec/views/payment_methods/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/payment_methods/new" do 4 | before(:each) do 5 | assigns[:current_organisation] = Organisation.new 6 | assigns[:organisation] = mock_model Organisation, :name => '' 7 | payment_method = PaymentMethod.new 8 | payment_method.build_billing_address 9 | assigns[:payment_method] = payment_method 10 | render 'payment_methods/new' 11 | end 12 | 13 | # it_should_behave_like "a standard view" 14 | end 15 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/doc/dot/f_0.dot: -------------------------------------------------------------------------------- 1 | digraph TopLevel { 2 | compound = true 3 | bgcolor = lightcyan1 4 | fontname = Arial 5 | fontsize = 8 6 | label = "TopLevel" 7 | node [ 8 | fontname = Arial, 9 | fontsize = 8, 10 | color = black 11 | ] 12 | 13 | ObjectMother [ 14 | fontcolor = black, 15 | URL = "classes/ObjectMother.html", 16 | shape = ellipse, 17 | color = palegoldenrod, 18 | style = filled, 19 | label = "ObjectMother" 20 | ] 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/rails_generators/email_spec/email_spec_generator.rb: -------------------------------------------------------------------------------- 1 | # This generator adds email steps to the step definitions directory 2 | generator_base = defined?(Rails) ? Rails::Generator::Base : RubiGen::Base 3 | class EmailSpecGenerator < generator_base 4 | def manifest 5 | record do |m| 6 | m.directory 'features/step_definitions' 7 | m.file 'email_steps.rb', 'features/step_definitions/email_steps.rb' 8 | end 9 | end 10 | 11 | protected 12 | 13 | def banner 14 | "Usage: #{$0} email_spec" 15 | end 16 | 17 | end 18 | -------------------------------------------------------------------------------- /spec/views/projects/show_guidance.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/projects/show_guidance" do 4 | 5 | before :each do 6 | @project = mock_model(Project, 7 | :stories => [], 8 | :iterations => [], 9 | :name => '', 10 | :description => '') 11 | assigns[:project] = @project 12 | 13 | render 'projects/show_guidance' 14 | end 15 | 16 | it_should_behave_like "guidance" 17 | end 18 | -------------------------------------------------------------------------------- /app/models/repeat.rb: -------------------------------------------------------------------------------- 1 | class Repeat < ActiveRecord::Base 2 | include PaymentGateway 3 | 4 | attr_accessor :authorization, :response, :organisation 5 | belongs_to :payment 6 | 7 | def before_create 8 | payment = create_payment :organisation => organisation 9 | self.response = gateway.purchase( 10 | amount, 11 | authorization, 12 | :order_id => payment.vendor_tx_code, 13 | :description => description 14 | ) 15 | 16 | self.status = response.params['Status'] 17 | self.status_detail = response.params['StatusDetail'] 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /db/migrate/20090331120108_create_billing_addresses.rb: -------------------------------------------------------------------------------- 1 | class CreateBillingAddresses < ActiveRecord::Migration 2 | def self.up 3 | create_table :billing_addresses do |t| 4 | t.string :name 5 | t.string :address_line_1 6 | t.string :address_line_2 7 | t.string :address_line_3 8 | t.string :county 9 | t.string :town 10 | t.string :postcode 11 | t.string :country 12 | t.string :telephone_number 13 | 14 | t.timestamps 15 | end 16 | end 17 | 18 | def self.down 19 | drop_table :billing_addresses 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /app/views/user_verifications/new.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Verify your account" %> 2 | <% content_for :h1, "Verify your account" %> 3 | 4 | <%= render_flash %> 5 | 6 | <% form_tag :action => :create do -%> 7 |
    8 |

    9 | <%= label_tag :token %> 10 | <%= text_field_tag :token, params[:token], :size => 6 %> 11 |

    12 |

    13 | Your 6 character verification token was emailed to you when you signed up. 14 |

    15 |
    16 |

    17 | <%= submit_tag 'Verify Account' %> 18 |

    19 | <% end -%> 20 | -------------------------------------------------------------------------------- /app/views/organisations/edit.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Editing #{@organisation}" %> 2 | <% content_for :h1, h("Editing #{@organisation}") %> 3 | <% breadcrumbs( 4 | link_to('Account', @current_user), 5 | link_to('Organisations', :organisations), 6 | h(@organisation), 7 | 'Edit', 8 | :organisation_page => false 9 | ) %> 10 | 11 | <% form_for @organisation do |f| %> 12 | <%= f.error_messages %> 13 |

    14 | <%= f.label :name %> 15 | <%= f.text_field :name, :class => 'auto_focus' %> 16 |

    17 |

    18 | <%= f.submit 'Rename' %> 19 |

    20 | <% end %> 21 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/generators/integration/templates/integration.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/<%= name %>/helper.rb' 2 | require File.dirname(__FILE__) + '/<%= name %>/notification.rb' 3 | 4 | module ActiveMerchant #:nodoc: 5 | module Billing #:nodoc: 6 | module Integrations #:nodoc: 7 | module <%= class_name %> 8 | 9 | mattr_accessor :service_url 10 | self.service_url = 'https://www.example.com' 11 | 12 | def self.notification(post) 13 | Notification.new(post) 14 | end 15 | end 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/object_mother/invoices.rb: -------------------------------------------------------------------------------- 1 | class Invoices < ObjectMother 2 | truncate_invoice 3 | def self.invoice_prototype 4 | { 5 | :amount => 23.23, 6 | :vat_amount => 0.35, 7 | :date => Date.today, 8 | :customer_name => 'Andrew', 9 | :customer_address_line_1 => 'Some Place', 10 | :customer_address_line_2 => 'Nice', 11 | :customer_county => 'Bananashire', 12 | :customer_town => 'Bananaton', 13 | :customer_postcode => 'BN1 1NA', 14 | :customer_country => 'Bananaland', 15 | :payment => Payments.create_payment! 16 | } 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/lib/post_data.rb: -------------------------------------------------------------------------------- 1 | require 'cgi' 2 | 3 | class PostData < Hash 4 | class_inheritable_accessor :required_fields, :instance_writer => false 5 | self.required_fields = [] 6 | 7 | def []=(key, value) 8 | return if value.blank? && !required?(key) 9 | super 10 | end 11 | 12 | def to_post_data 13 | collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&") 14 | end 15 | 16 | alias_method :to_s, :to_post_data 17 | 18 | private 19 | def required?(key) 20 | required_fields.include?(key) 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/email_spec_generator.rb: -------------------------------------------------------------------------------- 1 | # This generator adds email steps to the step definitions directory 2 | generator_base = defined?(Rails) ? Rails::Generator::Base : RubiGen::Base 3 | class EmailSpecGenerator < generator_base 4 | def manifest 5 | record do |m| 6 | m.directory 'features/step_definitions' 7 | m.file 'email_steps.rb', 'features/step_definitions/email_steps.rb' 8 | end 9 | end 10 | 11 | protected 12 | 13 | def banner 14 | "Usage: #{$0} email_spec" 15 | end 16 | 17 | end 18 | -------------------------------------------------------------------------------- /spec/fixtures/billing_addresses.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | name: MyString 5 | address_line_1: MyString 6 | address_line_2: MyString 7 | address_line_3: MyString 8 | county: MyString 9 | town: MyString 10 | postcode: MyString 11 | country: MyString 12 | phone_number: MyString 13 | 14 | two: 15 | name: MyString 16 | address_line_1: MyString 17 | address_line_2: MyString 18 | address_line_3: MyString 19 | county: MyString 20 | town: MyString 21 | postcode: MyString 22 | country: MyString 23 | phone_number: MyString 24 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways/payflow_express_uk.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/payflow_express' 2 | 3 | module ActiveMerchant #:nodoc: 4 | module Billing #:nodoc: 5 | class PayflowExpressUkGateway < PayflowExpressGateway 6 | self.default_currency = 'GBP' 7 | self.partner = 'PayPalUk' 8 | 9 | self.supported_countries = ['GB'] 10 | self.homepage_url = 'https://www.paypal.com/uk/cgi-bin/webscr?cmd=_additional-payment-overview-outside' 11 | self.display_name = 'PayPal Express Checkout (UK)' 12 | end 13 | end 14 | end 15 | 16 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/public/dispatch.rb: -------------------------------------------------------------------------------- 1 | #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 2 | 3 | require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) 4 | 5 | # If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like: 6 | # "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired 7 | require "dispatcher" 8 | 9 | ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun) 10 | Dispatcher.dispatch 11 | -------------------------------------------------------------------------------- /config/initializers/custom_active_record_view_errors.rb: -------------------------------------------------------------------------------- 1 | # Changes default Rails behaviour when displaying form fields with errors. 2 | # Instead of wrapping tags in a div, which invalidates the XHTML, we just add a 3 | # class to the element instead 4 | module ActionView 5 | class Base 6 | @@field_error_proc = Proc.new do |html_tag, instance| 7 | if html_tag.include?('class="') 8 | html_tag.sub(/class="/, 'class="field_with_errors ') 9 | else 10 | html_tag.sub(/<(\w*) /, '<\1 class="field_with_errors" ') 11 | end 12 | end 13 | cattr_accessor :field_error_proc 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /lib/tasks/cucumber.rake: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift(RAILS_ROOT + '/vendor/plugins/cucumber/lib') if File.directory?(RAILS_ROOT + '/vendor/plugins/cucumber/lib') 2 | 3 | begin 4 | require 'cucumber/rake/task' 5 | 6 | Cucumber::Rake::Task.new(:features) do |t| 7 | t.fork = true 8 | t.cucumber_opts = ['--drb', '--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] 9 | end 10 | task :features# => 'db:test:prepare' 11 | rescue LoadError 12 | desc 'Cucumber rake task not available' 13 | task :features do 14 | abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/helpers/hi_trust_helper_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../../test_helper' 2 | 3 | class HiTrustHelperTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def setup 7 | @helper = HiTrust::Helper.new('order-500','cody@example.com', :amount => 500, :currency => 'USD') 8 | end 9 | 10 | def test_basic_helper_fields 11 | assert_field 'storeid', 'cody@example.com' 12 | assert_field 'amount', '500' 13 | assert_field 'ordernumber', 'order-500' 14 | assert_field 'currency', 'USD' 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /app/controllers/burndowns_controller.rb: -------------------------------------------------------------------------------- 1 | class BurndownsController < ApplicationController 2 | before_filter :get_iteration 3 | before_filter :get_burndown 4 | 5 | def show 6 | send_data( 7 | @burndown.to_png, 8 | :disposition => 'inline', 9 | :type => 'image/png', 10 | :filename => "#{@iteration.name} Burndown.png" 11 | ) 12 | end 13 | 14 | protected 15 | 16 | def get_iteration 17 | @iteration = 18 | current_organisation.iterations.find(params[:iteration_id]) 19 | end 20 | 21 | def get_burndown 22 | @burndown = @iteration.burndown(params[:width]) 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways/paypal_ca.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/paypal' 2 | 3 | module ActiveMerchant #:nodoc: 4 | module Billing #:nodoc: 5 | # The PayPal gateway for PayPal Website Payments Pro Canada only supports Visa and MasterCard 6 | class PaypalCaGateway < PaypalGateway 7 | self.supported_cardtypes = [:visa, :master] 8 | self.supported_countries = ['CA'] 9 | self.homepage_url = 'https://www.paypal.com/cgi-bin/webscr?cmd=_wp-pro-overview-outside' 10 | self.display_name = 'PayPal Website Payments Pro (CA)' 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/bogus/helper.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module Integrations #:nodoc: 4 | module Bogus 5 | class Helper < ActiveMerchant::Billing::Integrations::Helper 6 | mapping :account, 'account' 7 | mapping :order, 'order' 8 | mapping :amount, 'amount' 9 | mapping :currency, 'currency' 10 | mapping :customer, :first_name => 'first_name', 11 | :last_name => 'last_name' 12 | 13 | end 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /app/models/payment_gateway.rb: -------------------------------------------------------------------------------- 1 | module PaymentGateway 2 | def gateway 3 | ActiveMerchant::Billing::ProtxGateway.simulate = true if config['simulate'] 4 | @gateway ||= ActiveMerchant::Billing::ProtxGateway.new(:login => vendor) 5 | end 6 | 7 | def vendor 8 | @vendor ||= config['vendor'] 9 | end 10 | 11 | def successful? 12 | self.respond_to?(:status) and self.status == 'OK' 13 | end 14 | 15 | protected 16 | 17 | def config 18 | @config ||= YAML.load_file(config_file)[RAILS_ENV] 19 | end 20 | 21 | def config_file 22 | File.expand_path(File.join(RAILS_ROOT, 'config', 'protx.yml')) 23 | end 24 | end -------------------------------------------------------------------------------- /app/views/organisations/index.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Organisations" %> 2 | <% content_for :h1, "Organisations" %> 3 | <% breadcrumbs( 4 | link_to_unless_current('Account', @current_user), 5 | 'Organisations', 6 | :organisation_page => false 7 | ) 8 | %> 9 | <% content_for :actions do %> 10 |
  • <%= link_to 'New', new_organisation_path %>
  • 11 | <% end %> 12 | 13 | <% if @organisations.empty? -%> 14 |

    You have no organisations.

    15 |

    16 | <%= link_to 'New Organisation', new_organisation_path %> 17 |

    18 | <% else -%> 19 |
      20 | <%= render @organisations %> 21 |
    22 | <% end -%> 23 | -------------------------------------------------------------------------------- /spec/views/projects/new.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/projects/new" do 4 | 5 | before :each do 6 | assigns[:project] = mock_model(Project, 7 | :name => '', 8 | :description => '', 9 | :new_record? => true) 10 | render 'projects/new' 11 | end 12 | 13 | it_should_behave_like "a standard view" 14 | 15 | it "should have a form for creating a project" do 16 | response.should have_tag('form[action=?][method=?]', projects_path, 'post') 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/features/rails_app.feature: -------------------------------------------------------------------------------- 1 | Feature: Email Spec in Rails App 2 | 3 | In order to prevent me from shipping a defective email_spec gem 4 | As a email_spec dev 5 | I want to verify that the example rails app runs all of it's features as expected 6 | 7 | Scenario: regression test 8 | Given the example rails app is setup with the latest generators 9 | When I run "rake db:migrate RAILS_ENV=test" 10 | And I run "cucumber features -q --no-color" 11 | Then I should see the following summary report: 12 | """ 13 | 7 scenarios (4 failed, 3 passed) 14 | 53 steps (4 failed, 1 skipped, 48 passed) 15 | """ 16 | 17 | -------------------------------------------------------------------------------- /spec/views/keyboard_shortcuts/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/keyboard_shortcuts/index" do 4 | describe "logged in" do 5 | before(:each) do 6 | assigns[:current_user] = mock_model User 7 | assigns[:current_organisation] = mock_model Organisation 8 | render 'keyboard_shortcuts/index' 9 | end 10 | 11 | it_should_behave_like "a standard view" 12 | end 13 | 14 | describe "not logged in" do 15 | before(:each) do 16 | render 'keyboard_shortcuts/index' 17 | end 18 | 19 | it_should_behave_like "a standard view" 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/generators/test_generator_helper.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | require 'fileutils' 3 | 4 | # Must set before requiring generator libs. 5 | TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT) 6 | PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME) 7 | app_root = File.join(TMP_ROOT, PROJECT_NAME) 8 | if defined?(APP_ROOT) 9 | APP_ROOT.replace(app_root) 10 | else 11 | APP_ROOT = app_root 12 | end 13 | 14 | begin 15 | require 'rubigen' 16 | rescue LoadError 17 | require 'rubygems' 18 | require 'rubigen' 19 | end 20 | require 'rubigen/helpers/generator_test_helper' 21 | -------------------------------------------------------------------------------- /spec/fixtures/protx/successful_repeat.yml: -------------------------------------------------------------------------------- 1 | !ruby/object:ActiveMerchant::Billing::Response 2 | authorization: 21e2e8af543ad74f9c3eb5a77a177aeb;{4A1072F1-84B3-4EFA-B369-CB268C7429A3};6267;BXQYXUU394;repeat 3 | avs_result: 4 | code: 5 | postal_match: 6 | street_match: 7 | message: 8 | cvv_result: 9 | code: 10 | message: 11 | fraud_review: 12 | message: Success 13 | params: 14 | Status: OK 15 | SecurityKey: BXQYXUU394 16 | VPSTxId: "{4A1072F1-84B3-4EFA-B369-CB268C7429A3}" 17 | StatusDetail: The transaction was REPEATed successfully. 18 | TxAuthNo: "6267" 19 | VPSProtocol: "2.23" 20 | success: true 21 | test: false 22 | -------------------------------------------------------------------------------- /vendor/plugins/jandacap/README: -------------------------------------------------------------------------------- 1 | Jandacap 2 | ======== 3 | 4 | Common capistrano recipes for jandaweb projects. 5 | 6 | 7 | Example 8 | ======= 9 | 10 | config/deploy.rb need only specify the application name: 11 | 12 | set :application, "app name" 13 | 14 | Then create config/deploy/development.rb and add: 15 | 16 | set :deploy_to, "/rails/APP_NAME.dev.jandaweb.com" 17 | 18 | set :domain, "dev.jandaweb.com" 19 | server domain, :app, :web 20 | role :db, domain, :primary => true 21 | 22 | Obviously replacing APP_NAME. Do something similar for 23 | config/deploy/production.rb, setting the deploy_to and domain appropriately. 24 | 25 | 26 | Copyright (c) 2009 Jandaweb Ltd. 27 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'rake/testtask' 3 | require 'rake/rdoctask' 4 | 5 | desc 'Default: run unit tests.' 6 | task :default => :test 7 | 8 | desc 'Test the object_mother plugin.' 9 | Rake::TestTask.new(:test) do |t| 10 | t.libs << 'lib' 11 | t.pattern = 'test/**/*_test.rb' 12 | t.verbose = true 13 | end 14 | 15 | desc 'Generate documentation for the object_mother plugin.' 16 | Rake::RDocTask.new(:rdoc) do |rdoc| 17 | rdoc.rdoc_dir = 'rdoc' 18 | rdoc.title = 'ObjectMother' 19 | rdoc.options << '--line-numbers' << '--inline-source' 20 | rdoc.rdoc_files.include('README') 21 | rdoc.rdoc_files.include('lib/**/*.rb') 22 | end 23 | -------------------------------------------------------------------------------- /public/javascripts/flash.js: -------------------------------------------------------------------------------- 1 | function Flash(messages) { 2 | this.messages = messages; 3 | this.draw(); 4 | } 5 | 6 | Flash.prototype = { 7 | draw: function() { 8 | var insert_after, actions; 9 | actions = $('#actions'); 10 | insert_after = actions[0] ? actions : $('h1'); 11 | 12 | // remove previous messages 13 | this.remove(); 14 | 15 | insert_after.after('
    ') 16 | if (this.messages.notice && $.trim(this.messages.notice) != '') { 17 | $('.flash').append('

    Notice

    '+this.messages.notice+'

    '); 18 | } 19 | }, 20 | 21 | remove: function() { 22 | $('.flash').remove(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /spec/views/payment_methods/index.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/payment_methods/index" do 4 | before(:each) do 5 | organisation = Organisations.create_organisation! 6 | organisation.next_payment_date = Date.today 7 | payment_method = 8 | PaymentMethod.new(:organisation => organisation, 9 | :year => 2.years.from_now.year, 10 | :month => 1) 11 | payment_method.build_billing_address 12 | assigns[:payment_methods] = [payment_method] 13 | render 'payment_methods/index' 14 | end 15 | 16 | it_should_behave_like "a standard view" 17 | end 18 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3-ruby (not necessary on OS X Leopard) 3 | development: 4 | adapter: sqlite3 5 | database: db/development.sqlite3 6 | pool: 5 7 | timeout: 5000 8 | 9 | # Warning: The database defined as "test" will be erased and 10 | # re-generated from your development database when you run "rake". 11 | # Do not set this db to the same as development or production. 12 | test: 13 | adapter: sqlite3 14 | database: db/test.sqlite3 15 | pool: 5 16 | timeout: 5000 17 | 18 | production: 19 | adapter: sqlite3 20 | database: db/production.sqlite3 21 | pool: 5 22 | timeout: 5000 23 | -------------------------------------------------------------------------------- /app/views/user_mailer/payment_failure.erb: -------------------------------------------------------------------------------- 1 | There was a problem taking payment for <%= @organisation.name %> 2 | in Simply Agile. 3 | 4 | We tried to take a payment of <%= @organisation.payment_plan.price %>GBP 5 | using the card **** **** **** <%= @payment_method.last_four_digits %>. 6 | 7 | We will continue to try to take the payment until <%= l @organisation.suspension_date %>. 8 | If no payment has been taken by this date then the organisation will be 9 | suspended. 10 | 11 | If you wish to change the payment details for this organisation, please 12 | visit the account section at http://besimplyagile.com/ or contact 13 | support@besimplyagile.com. 14 | 15 | Regards. 16 | The Simply Agile Team 17 | -------------------------------------------------------------------------------- /config/locales/numbers.yml: -------------------------------------------------------------------------------- 1 | en: 2 | number: 3 | format: 4 | separator: "." 5 | delimiter: "," 6 | precision: 2 7 | 8 | currency: 9 | format: 10 | format: "%u%n" 11 | unit: "£" 12 | precision: 0 13 | date: 14 | abbr_day_names: [Sun, Mon, Tues, Wed, Thurs, Fri, Sat] 15 | day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] 16 | abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] 17 | month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December] 18 | formats: 19 | default: "%A %d %B %Y" 20 | month: "%B %Y" 21 | -------------------------------------------------------------------------------- /app/controllers/user_acknowledgements_controller.rb: -------------------------------------------------------------------------------- 1 | class UserAcknowledgementsController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | before_filter :get_user 5 | 6 | layout 'landing' 7 | 8 | def create 9 | if @user.acknowledge(params) 10 | session[:user_id] = @user.id 11 | redirect_to home_url 12 | else 13 | flash.now[:error] = 14 | 'Token not found - please check your latest acknowledgement email' 15 | render :action => 'new' 16 | end 17 | end 18 | 19 | protected 20 | 21 | def get_user 22 | @user = User.find(params[:user_id]) 23 | @user.signup = true 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /app/views/stories/backlog.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "#{@project} Backlog" %> 2 | <% content_for :h1, h("#{@project} Backlog") %> 3 | <% breadcrumbs link_to(h(@project), @project), 'Backlog' %> 4 | 5 | <% form_for @project do |f| %> 6 |
      7 | <%= render @project.stories.backlog %> 8 |
    9 |

    10 | <%= f.submit 'Save Priorities' %> 11 |

    12 | <% end %> 13 | 14 |
    15 |

    Next Steps

    16 | 24 |
    25 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'rake/testtask' 3 | require 'rake/rdoctask' 4 | 5 | desc 'Default: run unit tests.' 6 | task :default => :test 7 | 8 | desc 'Test the assert_valid_xhtml plugin.' 9 | Rake::TestTask.new(:test) do |t| 10 | t.libs << 'lib' 11 | t.pattern = 'test/**/*_test.rb' 12 | t.verbose = true 13 | end 14 | 15 | desc 'Generate documentation for the assert_valid_xhtml plugin.' 16 | Rake::RDocTask.new(:rdoc) do |rdoc| 17 | rdoc.rdoc_dir = 'rdoc' 18 | rdoc.title = 'AssertValidXhtml' 19 | rdoc.options << '--line-numbers' << '--inline-source' 20 | rdoc.rdoc_files.include('README') 21 | rdoc.rdoc_files.include('lib/**/*.rb') 22 | end 23 | -------------------------------------------------------------------------------- /vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml: -------------------------------------------------------------------------------- 1 | <% if show_attributes -%> 2 | [attributes] 3 | <% attrs = inspect_model.attributes -%> 4 | <% max = attrs.keys.max { |a,b| a.length <=> b.length } -%> 5 | <% attrs.keys.sort.each do |attr| -%> 6 | * <%= "%*-s: %s" % [max.length, attr, object_to_yaml(attrs[attr]).gsub(/\n/, "\n ").strip] %> 7 | <% end -%> 8 | <% end -%> 9 | 10 | <% if show_instance_variables -%> 11 | [instance variables] 12 | <% inspect_model.instance_variables.sort.each do |variable| -%> 13 | <%- next if variable == "@attributes" -%> 14 | * <%= variable %>: <%= inspect_value(inspect_model.instance_variable_get(variable)) %> 15 | <% end -%> 16 | <% end -%> 17 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/integrations/bogus_module_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../../test_helper' 2 | 3 | class BogusModuleTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::Integrations 5 | 6 | def test_notification_method 7 | assert_instance_of Bogus::Notification, Bogus.notification('name=cody') 8 | end 9 | 10 | def test_service_url 11 | new = 'http://www.unbogus.com' 12 | assert_equal 'http://www.bogus.com', Bogus.service_url 13 | Bogus.service_url = new 14 | assert_equal new, Bogus.service_url 15 | end 16 | 17 | def test_return_method 18 | assert_instance_of Bogus::Return, Bogus.return('name=cody') 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /db/migrate/20090406105314_create_invoices.rb: -------------------------------------------------------------------------------- 1 | class CreateInvoices < ActiveRecord::Migration 2 | def self.up 3 | create_table :invoices do |t| 4 | t.integer :payment_id 5 | t.decimal :amount, :precision => 5, :scale => 2 6 | t.decimal :vat_rate 7 | t.decimal :vat_amount, :precision => 5, :scale => 2 8 | t.string :customer_name 9 | t.string :customer_address_line_1 10 | t.string :customer_address_line_2 11 | t.string :customer_county 12 | t.string :customer_town 13 | t.string :customer_postcode 14 | t.string :customer_country 15 | 16 | t.timestamps 17 | end 18 | end 19 | 20 | def self.down 21 | drop_table :invoices 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /db/migrate/20090406174801_add_columns_to_invoices.rb: -------------------------------------------------------------------------------- 1 | class AddColumnsToInvoices < ActiveRecord::Migration 2 | def self.up 3 | add_column :invoices, :user_id, :integer 4 | add_column :invoices, :organisation_name, :string 5 | add_column :invoices, :payment_plan_name, :string 6 | add_column :invoices, :payment_plan_price, :decimal, 7 | :precision => 5, :scale => 2 8 | add_column :invoices, :date, :date 9 | end 10 | 11 | def self.down 12 | remove_column :invoices, :date 13 | remove_column :invoices, :payment_plan_price 14 | remove_column :invoices, :payment_plan_name 15 | remove_column :invoices, :organisation_name 16 | remove_column :invoices, :user_id 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /vendor/plugins/validates_email_format_of/validates_email_format_of.gemspec: -------------------------------------------------------------------------------- 1 | spec = Gem::Specification.new do |s| 2 | s.name = 'validates_email_format_of' 3 | s.version = '1.3' 4 | s.summary = "Validate various formats of email address against RFC 2822." 5 | s.description = %{Validate various formats of email address against RFC 2822.} 6 | s.files = Dir['*'] + Dir['lib/**/*.rb'] + Dir['test/**/*.rb'] 7 | s.require_path = 'lib' 8 | s.has_rdoc = true 9 | s.extra_rdoc_files = Dir['[A-Z]*'] 10 | s.rdoc_options << '--title' << 'validates_email_format_of plugin' 11 | s.author = "Alex Dunae" 12 | s.email = "code@dunae.ca" 13 | s.homepage = "http://code.dunae.ca/validates_email_format_of.html" 14 | end 15 | 16 | -------------------------------------------------------------------------------- /app/views/payment_methods/_payment_method.erb: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 |
    4 |

    <%= h payment_method.organisation %>

    5 |

    6 | Next payment: <%= l payment_method.organisation.next_payment_date %> 7 |

    8 | <%= render payment_method.organisation.payment_plan %> 9 |

    10 | Card number: <%= card_number payment_method.last_four_digits %> 11 |

    12 |

    13 | Expiry: 14 | <%= 15 | l Date.new(payment_method.year, payment_method.month), :format => :month 16 | %> 17 |

    18 | 19 | <%= button_to 'Cancel this payment', payment_method, :method => :delete %> 20 |
    21 |
    22 |
  • 23 | -------------------------------------------------------------------------------- /app/views/stories/new_with_iteration.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "New Story" %> 2 | <% content_for :h1, "New Story" %> 3 | <% breadcrumbs( 4 | link_to(h(@iteration.project), @iteration.project), 5 | link_to(h(@iteration), [@project, @iteration]), 6 | 'New Story' 7 | ) %> 8 | <% form_for @story do |form| %> 9 | <%= form.error_messages %> 10 | <%= render :partial => 'stories/project_select' %> 11 |

    12 | <%= form.check_box :iteration_id, {}, @iteration.id, nil %> 13 | <%= form.label :iteration_id, "Add to the '#{h(@iteration)}' iteration" %> 14 |

    15 | <%= render form %> 16 |

    17 | <%= form.submit 'Create Story' %> 18 |

    19 | <% end %> 20 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/examples/rails_root/features/support/env.rb: -------------------------------------------------------------------------------- 1 | # Sets up the Rails environment for Cucumber 2 | ENV["RAILS_ENV"] = "test" 3 | require File.expand_path(File.dirname(__FILE__) + '/../../config/environment') 4 | require 'cucumber/rails/world' 5 | Cucumber::Rails.use_transactional_fixtures 6 | 7 | require 'webrat' 8 | require 'cucumber/rails/rspec' 9 | require 'webrat/core/matchers' 10 | 11 | Webrat.configure do |config| 12 | config.mode = :rails 13 | end 14 | 15 | 16 | 17 | require File.expand_path(File.dirname(__FILE__) + '../../../../../lib/email_spec') 18 | require 'email_spec/cucumber' 19 | 20 | require File.expand_path(File.dirname(__FILE__) +'/../../spec/model_factory.rb') 21 | World(Fixjour) 22 | -------------------------------------------------------------------------------- /app/controllers/user_verifications_controller.rb: -------------------------------------------------------------------------------- 1 | class UserVerificationsController < ApplicationController 2 | skip_before_filter :login_required 3 | skip_before_filter :select_organisation 4 | before_filter :get_user 5 | 6 | layout 'landing' 7 | 8 | def new 9 | end 10 | 11 | def create 12 | if @user.verify(params) 13 | session[:user_id] = @user.id 14 | flash[:notice] = "Your account has now been verified." 15 | redirect_to home_url 16 | else 17 | flash.now[:error] = "The verification token has not been recognised." 18 | render :action => 'new' 19 | end 20 | end 21 | 22 | protected 23 | 24 | def get_user 25 | @user = User.find(params[:user_id]) 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /app/views/payment_methods/_form.html.erb: -------------------------------------------------------------------------------- 1 |

    2 | <%= form.label :cardholder_name %> 3 | <%= form.text_field :cardholder_name, :class => 'auto_focus' %> 4 |

    5 | 6 |

    7 | <%= form.label :card_type%> 8 | <%= form.collection_select :card_type, PaymentMethod::CARD_TYPES, :to_s, :humanize %> 9 |

    10 | 11 |

    12 | <%= form.label :number %> 13 | <%= form.text_field :number %> 14 |

    15 | 16 |

    17 | <%= form.label :month %> 18 | <%= form.text_field :month, :size => 2 %> 19 |

    20 |

    21 | <%= form.label :year %> 22 | <%= form.text_field :year, :size => 2 %> 23 |

    24 | 25 |

    26 | <%= form.label :verification_value %> 27 | <%= form.text_field :verification_value, :size => 3 %> 28 |

    29 | -------------------------------------------------------------------------------- /spec/fixtures/invoices.yml: -------------------------------------------------------------------------------- 1 | # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html 2 | 3 | one: 4 | price: 9.99 5 | vat_rate: 9.99 6 | vat_amount: 9.99 7 | customer_name: MyString 8 | customer_address_line_1: MyString 9 | customer_address_line_2: MyString 10 | customer_county: MyString 11 | customer_town: MyString 12 | customer_postcode: MyString 13 | customer_country: MyString 14 | 15 | two: 16 | price: 9.99 17 | vat_rate: 9.99 18 | vat_amount: 9.99 19 | customer_name: MyString 20 | customer_address_line_1: MyString 21 | customer_address_line_2: MyString 22 | customer_county: MyString 23 | customer_town: MyString 24 | customer_postcode: MyString 25 | customer_country: MyString 26 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/credit_card_formatting.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module Billing #:nodoc: 3 | module CreditCardFormatting 4 | 5 | # This method is used to format numerical information pertaining to credit cards. 6 | # 7 | # format(2005, :two_digits) # => "05" 8 | # format(05, :four_digits) # => "0005" 9 | def format(number, option) 10 | return '' if number.blank? 11 | 12 | case option 13 | when :two_digits ; sprintf("%.2i", number)[-2..-1] 14 | when :four_digits ; sprintf("%.4i", number)[-4..-1] 15 | else number 16 | end 17 | end 18 | 19 | end 20 | end 21 | end -------------------------------------------------------------------------------- /spec/fixtures/protx/successful_authorization.yml: -------------------------------------------------------------------------------- 1 | --- !ruby/object:ActiveMerchant::Billing::Response 2 | authorization: 2;{F48981C8-158B-4EFA-B8A8-635D3B7A86CE};5123;08S2ZURVM4 3 | avs_result: 4 | code: 5 | postal_match: Y 6 | street_match: N 7 | message: 8 | cvv_result: 9 | code: Y 10 | message: 11 | fraud_review: 12 | message: Success 13 | params: 14 | Status: OK 15 | SecurityKey: 08S2ZURVM4 16 | AVSCV2: SECURITY CODE MATCH ONLY 17 | VPSTxId: "{F48981C8-158B-4EFA-B8A8-635D3B7A86CE}" 18 | StatusDetail: VSP Direct transaction from VSP Simulator. 19 | TxAuthNo: "5123" 20 | VPSProtocol: "2.23" 21 | AddressResult: NOTMATCHED 22 | PostCodeResult: MATCHED 23 | CV2Result: MATCHED 24 | success: true 25 | test: false 26 | -------------------------------------------------------------------------------- /app/views/home/_active_work.html.erb: -------------------------------------------------------------------------------- 1 | <% 2 | width ||= 300 3 | ratio = 600 / width 4 | height = 450 / ratio 5 | 6 | iteration = active_work 7 | %> 8 |
  • 9 |
    10 | <%= link_to( 11 | image_tag(iteration.pending? ? 'burndown.png' : iteration_burndown_path(iteration, :width => width), 12 | :width => width, :height => height, :alt => "Burndown chart for #{h iteration.name}"), 13 | [iteration.project, iteration]) %> 14 | <%= link_to h(iteration), [iteration.project, iteration] %> 15 |
    16 | 17 |
    18 |
      19 | <%= render @stories.select { |s| s.iteration == iteration } %> 20 |
    21 |
    22 |
  • 23 | -------------------------------------------------------------------------------- /app/views/user_mailer/verification.erb: -------------------------------------------------------------------------------- 1 | Welcome to Simply Agile. 2 | 3 | In order to continue using your new account we need you to confirm that 4 | this email address really does belong to you. In order to do that, please 5 | visit the following url: 6 | 7 | <%= verification_url(@user, :token => @user.verification_token) %> 8 | 9 | or enter the code <%= @user.verification_token %> when prompted by the website. 10 | 11 | If you do not verify this email address by <%= l @user.verify_by %> then your 12 | account will be suspended. 13 | 14 | We hope that you find Simply Agile as useful as we do. If you have any 15 | questions or comments about using the service then please contact 16 | support@jandaweb.com 17 | 18 | Regards. 19 | The Simply Agile Team 20 | -------------------------------------------------------------------------------- /public/stylesheets/iteration_active/colours.css: -------------------------------------------------------------------------------- 1 | body.iteration_active #burndown p { background:#fff } 2 | body.iteration_active .draggables .ui-droppable { background:#fff; border-color:#fff } 3 | 4 | body.iteration_active #headings .pending { background:#ddd } 5 | body.iteration_active #headings .pending { border-color:#ddd } 6 | body.iteration_active #headings .in_progress { background:#3dc0fd } 7 | body.iteration_active #headings .in_progress { border-color:#3dc0fd } 8 | body.iteration_active #headings .testing { background:#fde03d } 9 | body.iteration_active #headings .testing { border-color:#fde03d } 10 | body.iteration_active #headings .complete { background:#3dfd4f } 11 | body.iteration_active #headings .complete { border-color:#3dfd4f } 12 | 13 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/lib/email_spec/address_converter.rb: -------------------------------------------------------------------------------- 1 | module EmailSpec 2 | class AddressConverter 3 | include Singleton 4 | 5 | attr_accessor :converter 6 | 7 | # The block provided to conversion should convert to an email 8 | # address string or return the input untouched. For example: 9 | # 10 | # EmailSpec::AddressConverter.instance.conversion do |input| 11 | # if input.is_a?(User) 12 | # input.email 13 | # else 14 | # input 15 | # end 16 | # end 17 | # 18 | def conversion(&block) 19 | self.converter = block 20 | end 21 | 22 | def convert(input) 23 | return input unless converter 24 | converter.call(input) 25 | end 26 | end 27 | end -------------------------------------------------------------------------------- /public/javascripts/backlog_prioritisation.js: -------------------------------------------------------------------------------- 1 | var BacklogPrioritisation = { 2 | init: function() { 3 | // guidance 4 | $('ol.stories') 5 | .before('

    Drag stories to change priority.

    '); 6 | 7 | // enable sorting 8 | $('ol.stories').sortable({ 9 | axis: 'y', 10 | stop: function(event, ui) { 11 | var ids = $(this).sortable('toArray'); 12 | $(ids).each( function(i) { 13 | var priority = i + 1; 14 | var field = $('#' + this + ' input[type="text"]'); 15 | 16 | // set new field value 17 | $(field).val(priority); 18 | }); 19 | 20 | // submit form 21 | $('form.edit_project').ajaxSubmit(); 22 | } 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /script/create_payment_plans: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | script/runner -e $1 " 3 | PaymentPlan.create!(:name => 'Small Team', 4 | :active_iteration_limit => 1, 5 | :project_limit => 3, 6 | :user_limit => 3, 7 | :price => 10) 8 | PaymentPlan.create!(:name => 'Medium Team', 9 | :active_iteration_limit => 10, 10 | :project_limit => 10, 11 | :user_limit => 10, 12 | :price => 25) 13 | PaymentPlan.create!(:name => 'Large Team', 14 | :active_iteration_limit => 50, 15 | :project_limit => 50, 16 | :user_limit => 50, 17 | :price => 50) 18 | " 19 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/credit_card_formatting_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../test_helper' 2 | 3 | class CreditCardFormattingTest < Test::Unit::TestCase 4 | include ActiveMerchant::Billing::CreditCardFormatting 5 | 6 | def test_should_format_number_by_rule 7 | assert_equal 2005, format(2005, :steven_colbert) 8 | 9 | assert_equal '0005', format(05, :four_digits) 10 | assert_equal '2005', format(2005, :four_digits) 11 | 12 | assert_equal '05', format(2005, :two_digits) 13 | assert_equal '05', format(05, :two_digits) 14 | assert_equal '08', format(8, :two_digits) 15 | 16 | assert format(nil, :two_digits).blank? 17 | assert format('', :two_digits).blank? 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /app/views/projects/index.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, "Projects" %> 2 | <% content_for :h1, h("#{@current_organisation} Projects") %> 3 | <% breadcrumbs 'Projects' %> 4 | 5 | <% if @current_organisation.projects.empty? %> 6 |
    7 |

    8 | <%= h @current_organisation %> has no projects. 9 | Let's <%= link_to "make a project", new_project_path %>. 10 |

    11 |
    12 | <% else %> 13 |
    14 |
    15 |

    Projects

    16 |

    17 | <%= link_to "Make a new project", new_project_path %> 18 |

    19 |
      20 | <%= render @current_organisation.projects %> 21 |
    22 |
    23 |
    24 | <% end %> 25 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/bogus.rb: -------------------------------------------------------------------------------- 1 | require 'active_merchant/billing/integrations/bogus/helper.rb' 2 | require 'active_merchant/billing/integrations/bogus/notification.rb' 3 | require 'active_merchant/billing/integrations/bogus/return.rb' 4 | 5 | module ActiveMerchant #:nodoc: 6 | module Billing #:nodoc: 7 | module Integrations #:nodoc: 8 | module Bogus 9 | mattr_accessor :service_url 10 | self.service_url = 'http://www.bogus.com' 11 | 12 | def self.notification(post) 13 | Notification.new(post) 14 | end 15 | 16 | def self.return(query_string) 17 | Return.new(query_string) 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/test/unit/expiry_date_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../test_helper' 2 | 3 | class ExpiryDateTest < Test::Unit::TestCase 4 | def test_should_be_expired 5 | last_month = 2.months.ago 6 | date = CreditCard::ExpiryDate.new(last_month.month, last_month.year) 7 | assert date.expired? 8 | end 9 | 10 | def test_today_should_not_be_expired 11 | today = Time.now 12 | date = CreditCard::ExpiryDate.new(today.month, today.year) 13 | assert_false date.expired? 14 | end 15 | 16 | def test_dates_in_the_future_should_not_be_expired 17 | next_month = 1.month.from_now 18 | date = CreditCard::ExpiryDate.new(next_month.month, next_month.year) 19 | assert_false date.expired? 20 | end 21 | end -------------------------------------------------------------------------------- /app/models/payment.rb: -------------------------------------------------------------------------------- 1 | class Payment < ActiveRecord::Base 2 | has_one :authorisation 3 | has_one :capture 4 | has_one :void 5 | has_one :invoice 6 | belongs_to :organisation 7 | 8 | def before_create 9 | self.vendor_tx_code ||= ActiveMerchant::Utils.generate_unique_id 10 | end 11 | 12 | def reference 13 | [vendor_tx_code, vpstxid, tx_auth_no, security_key].join(';') 14 | end 15 | 16 | def capture_or_repeat(params) 17 | if capture.nil? 18 | Capture.create!( 19 | params.delete_if{ |k,v| k == :description }.merge(:payment => self) 20 | ) 21 | else 22 | Repeat.create(params.merge( 23 | :organisation => organisation, 24 | :authorization => reference 25 | )) 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/lib/requires_parameters.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant #:nodoc: 2 | module RequiresParameters #:nodoc: 3 | def requires!(hash, *params) 4 | params.each do |param| 5 | if param.is_a?(Array) 6 | raise ArgumentError.new("Missing required parameter: #{param.first}") unless hash.has_key?(param.first) 7 | 8 | valid_options = param[1..-1] 9 | raise ArgumentError.new("Parameter: #{param.first} must be one of #{valid_options.to_sentence(:connector => 'or')}") unless valid_options.include?(hash[param.first]) 10 | else 11 | raise ArgumentError.new("Missing required parameter: #{param}") unless hash.has_key?(param) 12 | end 13 | end 14 | end 15 | end 16 | end -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/spec/i18n_label_spec.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/spec_helper' 2 | 3 | # give a model to play with 4 | class Reply < ActiveRecord::Base 5 | attr_accessor :title 6 | end 7 | 8 | describe ActionView::Helpers do 9 | 10 | # NOTE gives deprication warning in RSpec 1.1.4: 11 | # Modules will no longer be automatically included in RSpec version 1.1.4. Called from ./spec/i18n_label_spec.rb:15 12 | it "label should make a call to human_attribute_name" do 13 | Reply.should_receive(:human_attribute_name).with('title').and_return("translated title") 14 | reply = mock_model(Reply) 15 | fields_for(reply) do |f| 16 | f.label(:title).should == "" 17 | end 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /spec/fixtures/protx/rejected_authorization.yml: -------------------------------------------------------------------------------- 1 | --- !ruby/object:ActiveMerchant::Billing::Response 2 | authorization: rejected-1;{4464A5D7-DFED-4842-8040-FF5ECEA6E122};;Q4PV5U3LNB;authorization 3 | avs_result: 4 | code: 5 | postal_match: N 6 | street_match: X 7 | message: 8 | cvv_result: 9 | code: N 10 | message: No Match 11 | fraud_review: 12 | message: VSP Direct transaction from VSP Simulator. 13 | params: 14 | Status: REJECTED 15 | SecurityKey: Q4PV5U3LNB 16 | AVSCV2: NO DATA MATCHES 17 | VPSTxId: "{4464A5D7-DFED-4842-8040-FF5ECEA6E122}" 18 | StatusDetail: VSP Direct transaction from VSP Simulator. 19 | VPSProtocol: "2.23" 20 | AddressResult: NOTCHECKED 21 | PostCodeResult: NOTMATCHED 22 | CV2Result: NOTMATCHED 23 | success: false 24 | test: false 25 | -------------------------------------------------------------------------------- /vendor/plugins/email-spec/lib/email_spec/cucumber.rb: -------------------------------------------------------------------------------- 1 | # require this in your env.rb file after you require cucumber/rails/world 2 | 3 | # Global Setup 4 | ActionMailer::Base.delivery_method = :test unless ActionMailer::Base.delivery_method == :activerecord 5 | ActionMailer::Base.perform_deliveries = true 6 | 7 | Before do 8 | # Scenario setup 9 | ActionMailer::Base.deliveries.clear if ActionMailer::Base.delivery_method == :test 10 | end 11 | 12 | After do 13 | EmailSpec::EmailViewer.save_and_open_all_raw_emails if ENV['SHOW_EMAILS'] 14 | EmailSpec::EmailViewer.save_and_open_all_html_emails if ENV['SHOW_HTML_EMAILS'] 15 | EmailSpec::EmailViewer.save_and_open_all_text_emails if ENV['SHOW_TEXT_EMAILS'] 16 | end 17 | 18 | World(EmailSpec::Helpers) 19 | World(EmailSpec::Matchers) 20 | -------------------------------------------------------------------------------- /app/views/acceptance_criteria/_list.erb: -------------------------------------------------------------------------------- 1 | <% if @story.acceptance_criteria.empty? %> 2 |

    3 | This story has no acceptance criteria. 4 |

    5 | <% else %> 6 |
    7 | <% unless @story.acceptance_criteria.uncompleted.empty? %> 8 | 9 | <%= render(:partial => 'acceptance_criteria/criterion', 10 | :collection => @story.acceptance_criteria.uncompleted) %> 11 |
    12 | <% end %> 13 |
    14 | 15 |
    16 | <% unless @story.acceptance_criteria.completed.empty? %> 17 | 18 | <%= render(:partial => 'acceptance_criteria/criterion', 19 | :collection => @story.acceptance_criteria.completed) %> 20 |
    21 | <% end %> 22 |
    23 | <% end %> 24 | -------------------------------------------------------------------------------- /spec/object_mother/projects.rb: -------------------------------------------------------------------------------- 1 | require File.join(File.dirname(__FILE__), 'organisations') 2 | class Projects < ObjectMother 3 | truncate_project 4 | 5 | class << self 6 | extend ActiveSupport::Memoizable 7 | 8 | def create_project!(attributes = {}) 9 | project = Project.new({:name => 'protototo'}.merge(attributes)) 10 | project.organisation = attributes[:organisation] || Organisations.create_organisation! 11 | project.save! 12 | project 13 | end 14 | 15 | def simply_agile 16 | project = Project.new(:name => 'Simply Agile') 17 | project.organisation = Organisations.jandaweb! 18 | project.save! 19 | project 20 | end 21 | memoize :simply_agile 22 | 23 | alias :simply_agile! :simply_agile 24 | end 25 | 26 | end 27 | -------------------------------------------------------------------------------- /app/views/acceptance_criteria/_criterion.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% form_for [@project, @story, criterion] do |f| -%> 4 |

    5 | <%= hidden_field_tag "acceptance_criterion[complete]", 6 | ! criterion.complete?, :id => "complete_#{criterion.id}" %> 7 | <%= f.submit criterion.complete? ? "Uncomplete" : "Complete", :id => nil, :class => 'submit_complete' %> 8 |

    9 | <% end -%> 10 | 11 | <%= h criterion %> 12 | <%= link_to 'Edit', 13 | edit_project_story_acceptance_criterion_url(@project, @story, criterion) 14 | %> 15 | <%= button_to 'Delete', [@project, @story, criterion], 16 | :method => :delete, :class => "delete" %> 17 | 18 | -------------------------------------------------------------------------------- /app/views/static_stories/_static_story.erb: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |

    <%= h(static_story) %>

    5 | <% if static_story.estimate? %> 6 |

    Story Points: <%= static_story.estimate %>

    7 | <% end %> 8 |
    9 | <%= story_format static_story.content %> 10 |
    11 | 12 | <% if (!static_story.acceptance_criteria.empty?) %> 13 |
    14 |

    Acceptance Criteria

    15 | 20 |
    21 | <% end %> 22 |
    23 | -------------------------------------------------------------------------------- /public/stylesheets/story/colours.css: -------------------------------------------------------------------------------- 1 | .draggables .pending .header { border-color:#ddd } 2 | .draggables .in_progress .header { border-color:#3dc0fd } 3 | .draggables .testing .header { border-color:#fde03d } 4 | .draggables .complete .header { border-color:#3dfd4f } 5 | .draggables .story { cursor:pointer } 6 | 7 | .story .content { border-color:#aaa } 8 | .story, 9 | .story h3 { background:#fff } 10 | .story h3 a, .story h4 { color:#333 } 11 | .story .less_more a { outline:none } 12 | 13 | .story .header { border-bottom:2px solid #99f } 14 | .story ol li{ border-bottom:1px solid #ccf } 15 | .story ol li:last-child { border-bottom:none } 16 | 17 | .story .content p.estimate { background:#eee; border-color:#ddd } 18 | 19 | /* don't affect breadcrumbs */ 20 | #breadcrumbs .story { border:none } 21 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways/paypal_express_common.rb: -------------------------------------------------------------------------------- 1 | module ActiveMerchant 2 | module Billing 3 | module PaypalExpressCommon 4 | def self.included(base) 5 | base.cattr_accessor :test_redirect_url 6 | base.cattr_accessor :live_redirect_url 7 | base.live_redirect_url = 'https://www.paypal.com/cgibin/webscr?cmd=_express-checkout&token=' 8 | end 9 | 10 | def redirect_url 11 | test? ? test_redirect_url : live_redirect_url 12 | end 13 | 14 | def redirect_url_for(token, options = {}) 15 | options = {:review => true}.update(options) 16 | options[:review] ? "#{redirect_url}#{token}" : "#{redirect_url}#{token}&useraction=commit" 17 | end 18 | end 19 | end 20 | end -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/two_checkout.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/two_checkout/helper.rb' 2 | require File.dirname(__FILE__) + '/two_checkout/notification.rb' 3 | require File.dirname(__FILE__) + '/two_checkout/return.rb' 4 | 5 | module ActiveMerchant #:nodoc: 6 | module Billing #:nodoc: 7 | module Integrations #:nodoc: 8 | module TwoCheckout 9 | 10 | mattr_accessor :service_url 11 | self.service_url = 'https://www.2checkout.com/2co/buyer/purchase' 12 | 13 | def self.notification(post) 14 | Notification.new(post) 15 | end 16 | 17 | def self.return(query_string) 18 | Return.new(query_string) 19 | end 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /vendor/plugins/assert_valid_xhtml/README: -------------------------------------------------------------------------------- 1 | Assert Valid XHTML 2 | ================== 3 | 4 | This is an offline replacement for the assert_valid_xhtml assertion from 5 | Codahale's responsible_markup plugin, at: 6 | 7 | http://blog.codahale.com/2006/03/05/responsiblemarkup-v01-unit-test-your-way-to-responsible-markup/ 8 | 9 | See the blog post I wrote about this at: 10 | 11 | http://www.jandaweb.com/blog_posts/7 12 | 13 | In short, you need the libxml-ruby gem. 14 | 15 | I apologise if I broke any rules about distributing the DTDs. 16 | 17 | 18 | Example 19 | ======= 20 | 21 | get :show 22 | assert_response :success 23 | assert_valid_xhtml 24 | 25 | 26 | Lots of love, 27 | 28 | Andrew Bruce 29 | www.jandaweb.com 30 | 31 | 32 | Copyright (c) 2008 Jandaweb Ltd, released under the MIT license 33 | -------------------------------------------------------------------------------- /vendor/plugins/active_merchant/lib/active_merchant/billing/integrations/chronopay.rb: -------------------------------------------------------------------------------- 1 | require 'active_merchant/billing/integrations/chronopay/helper.rb' 2 | require 'active_merchant/billing/integrations/chronopay/notification.rb' 3 | require 'active_merchant/billing/integrations/chronopay/return.rb' 4 | 5 | module ActiveMerchant #:nodoc: 6 | module Billing #:nodoc: 7 | module Integrations #:nodoc: 8 | module Chronopay 9 | mattr_accessor :service_url 10 | self.service_url = 'https://secure.chronopay.com/index_shop.cgi' 11 | 12 | def self.notification(post) 13 | Notification.new(post) 14 | end 15 | 16 | def self.return(query_string) 17 | Return.new(query_string) 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /vendor/plugins/i18n_label/lib/i18n_label.rb: -------------------------------------------------------------------------------- 1 | # Just replace the method... 2 | module ActionView 3 | module Helpers 4 | class InstanceTag 5 | def to_label_tag(text = nil, options = {}) 6 | options = options.stringify_keys 7 | name_and_id = options.dup 8 | add_default_name_and_id(name_and_id) 9 | options.delete("index") 10 | options["for"] ||= name_and_id["id"] 11 | if text.blank? 12 | content = method_name.humanize 13 | if object.class.respond_to?(:human_attribute_name) 14 | content = object.class.human_attribute_name(method_name) 15 | end 16 | else 17 | content = text.to_s 18 | end 19 | label_tag(name_and_id["id"], content, options) 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /app/views/invoices/index.html.erb: -------------------------------------------------------------------------------- 1 | <% content_for :title, 'Invoices' %> 2 | <% content_for :h1, "Invoices" %> 3 | <% breadcrumbs( 4 | link_to_unless_current('Account', @current_user), 5 | 'Invoices', 6 | :organisation_page => false 7 | ) %> 8 | 9 | <% if @invoices.empty? %> 10 |

    11 | You have not yet received any invoices. 12 |

    13 | <% else %> 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | <%= render @invoices %> 28 | 29 |
    ReferenceOrganisationPlanPeriodAmountVATFull version
    30 | <% end %> 31 | -------------------------------------------------------------------------------- /vendor/plugins/objectmother/doc/fr_class_index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 12 | 13 | 14 | Classes 15 | 16 | 17 | 18 | 19 | 20 |
    21 |

    Classes

    22 |
    23 | ObjectMother
    24 |
    25 |
    26 | 27 | -------------------------------------------------------------------------------- /spec/views/stories/new_without_project.html.erb_spec.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') 2 | 3 | describe "/stories/new_without_project" do 4 | before(:each) do 5 | @story = mock_model(Story, 6 | :project_id => nil, 7 | :name => '', 8 | :content => '', 9 | :new_record? => true) 10 | assigns[:current_organisation] = mock_model(Organisation, :projects => []) 11 | assigns[:story] = @story 12 | render 'stories/new_without_project' 13 | end 14 | 15 | it "should have a form for creating a story" do 16 | response.should have_tag('form[action=?][method=?]', 17 | stories_path, 18 | 'post') 19 | end 20 | 21 | end 22 | -------------------------------------------------------------------------------- /spec/object_mother/stories.rb: -------------------------------------------------------------------------------- 1 | require File.join(File.dirname(__FILE__), 'projects') 2 | require File.join(File.dirname(__FILE__), 'iterations') 3 | class Stories < ObjectMother 4 | truncate_story 5 | 6 | def self.story_prototype 7 | count = Story.count 8 | { 9 | :name => "Story #{count + 1}", 10 | :project => Projects.simply_agile, 11 | :content => 'asdf', 12 | :estimate => 1, 13 | } 14 | end 15 | 16 | define_story(:iteration_planning, :name => 'Iteration Planning', :estimate => 1) 17 | define_story(:acceptance_criteria, :name => 'Acceptance Criteria', :estimate => 2) 18 | define_story(:iteration_planning_included, 19 | :name => 'Iteration Planning Included', 20 | :estimate => 4, 21 | :iteration => Iterations.erroneous_iteration) 22 | end 23 | --------------------------------------------------------------------------------