You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by ws...@apache.org on 2008/12/11 01:34:30 UTC

svn commit: r725524 [1/14] - in /incubator/olio/webapp/rails/trunk: app/controllers/ app/models/ app/views/events/ config/ config/environments/ spec/controllers/ spec/models/ vendor/plugins/attachment_fu/ vendor/plugins/attachment_fu/lib/ vendor/plugin...

Author: wsobel
Date: Wed Dec 10 17:34:18 2008
New Revision: 725524

URL: http://svn.apache.org/viewvc?rev=725524&view=rev
Log:
Added geolocation functionality

Added:
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/History.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/License.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/Manifest.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/README.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec/templates/rspec.rake
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec/templates/script/autospec
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_default_values.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/rspec-rails.gemspec
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/render_template_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/should_change_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/action_view_base_spec_controller.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/controller_spec_controller.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/redirect_spec_controller.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/render_spec_controller.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/controllers/rjs_spec_controller.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/addition_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/explicit_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/more_explicit_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/plugin_application_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/helpers/view_spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_with_errors_in_template.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_with_template.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/layouts/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/layouts/application.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/layouts/simple.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/objects/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/objects/_object.html.erb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/_a_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/action_with_alternate_layout.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.js.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/_replacement_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/hide_div.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/hide_page_element.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/insert_html.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace_html.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace_html_with_partial.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/visual_effect.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/visual_toggle_effect.rjs
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/no_tags.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_used_twice.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_with_local_variable.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_with_sub_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_spacer.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/accessor.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/block_helper.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/entry_form.rhtml   (with props)
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/explicit_helper.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/foo/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/foo/show.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/implicit_helper.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/multiple_helpers.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/path_params.html.erb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/should_not_receive.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial_using_collection.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial_with_array.rhtml
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/stories/configuration/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/stories/configuration/stories.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/History.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/License.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/Manifest.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/README.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/TODO.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/bin/autospec   (with props)
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/README.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/diffing_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/failing_autogenerated_docstrings_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/failure_in_setup.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/failure_in_teardown.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/mocking_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/mocking_with_flexmock.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/mocking_with_mocha.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/mocking_with_rr.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/partial_mock_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/predicate_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/raising_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/syntax_error_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/team_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/failing/timeout_behaviour.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/autogenerated_docstrings_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/before_and_after_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/behave_as_example.rb   (with props)
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/custom_expectation_matchers.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/custom_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/dynamic_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/file_accessor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/file_accessor_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/greeter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/helper_method_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/io_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/io_processor_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/legacy_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/mocking_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/multi_threaded_behaviour_runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/nested_classes_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/partial_mock_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/pending_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/predicate_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/priority.txt
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/shared_example_group_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/shared_stack_examples.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/simple_matcher_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/stack.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/stack_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/stack_spec_with_nested_example_groups.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/stubbing_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/examples/passing/yielding_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/dsl/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/dsl.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/dsl/main.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/before_and_after_hooks.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/expectations/wrap_expectation.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/errors.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/generated_descriptions.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/match_array.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/method_missing.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/argument_constraints.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/story/progress_bar_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/rspec.gemspec
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/autotest/autotest_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/autotest/autotest_matchers.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/autotest/failed_results_re_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/dsl/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/dsl/main_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/helper_method_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/expectations/wrap_expectation_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/match_array_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/bug_report_496.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/bug_report_600_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/base_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/configuration/
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/configuration/before_blocks.story
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/configuration/stories.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/interop/test_but_not_test_unit
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/resources/spec/before_blocks_example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/resources/test/spec_including_test_but_not_unit.rb
Modified:
    incubator/olio/webapp/rails/trunk/app/controllers/events_controller.rb
    incubator/olio/webapp/rails/trunk/app/models/geolocation.rb
    incubator/olio/webapp/rails/trunk/app/views/events/_event_list.html.erb
    incubator/olio/webapp/rails/trunk/config/environment.rb
    incubator/olio/webapp/rails/trunk/config/environments/development.rb
    incubator/olio/webapp/rails/trunk/spec/controllers/events_controller_spec.rb
    incubator/olio/webapp/rails/trunk/spec/models/geolocation_spec.rb
    incubator/olio/webapp/rails/trunk/spec/models/user_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/README
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/geometry.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/file_system_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/base_attachment_tests.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/basic_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/extra_attachment_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/fixtures/attachment.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/geometry_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/processors/core_image_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/test_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/Rakefile
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec/rspec_generator.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec/templates/script/spec
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_model/rspec_model_generator.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_model/templates/model_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/rspec_scaffold_generator.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/controller_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/edit_erb_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/index_erb_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/new_erb_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/routing_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/show_erb_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/version.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/mocks/mock_model_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/mocks/stub_model_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/spec_server_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/stories/helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/Rakefile
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/bin/spec
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/autotest/discover.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/autotest/rspec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/adapters/ruby_engine.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/configuration.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/errors.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/example_methods.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/example/shared_example_group.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/expectations.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/expectations/handler.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/interop/test/unit/testcase.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/be.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/be_close.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/change.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/eql.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/equal.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/exist.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/has.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/have.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/include.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/match.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/framework.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/methods.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/proxy.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/rake/spectask.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/class_and_arguments_parser.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/command_line.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/nested_text_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/story/html_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/formatter/story/plain_text_formatter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/option_parser.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/options.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/reporter.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/story/runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/story/step.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/story/step_mother.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/story/world.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/lib/spec/version.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/rake_tasks/verify_rcov.rake
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/autotest/discover_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/autotest/rspec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/rspec_suite.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/adapters/ruby_engine_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/configuration_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_group_class_definition_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_group_factory_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_group_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_matcher_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/pending_module_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/example/shared_example_group_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/interop/test/unit/spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/simple_matcher_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/hash_including_matcher_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/story/html_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/options_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/output_one_time_fixture_runner.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/runner/plain_text_story_runner_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/scenario_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/step_mother_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/step_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/story_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec/story/world_spec.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/spec/spec_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/all.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/example_groups/autogenerated_docstrings
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/example_groups/nested_groups
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/mock_framework_integration/use_flexmock.story
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/stories/resources/helpers/story_helper.rb
    incubator/olio/webapp/rails/trunk/vendor/plugins/rspec/story_server/prototype/javascripts/prototype.js

Modified: incubator/olio/webapp/rails/trunk/app/controllers/events_controller.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/app/controllers/events_controller.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/app/controllers/events_controller.rb (original)
+++ incubator/olio/webapp/rails/trunk/app/controllers/events_controller.rb Wed Dec 10 17:34:18 2008
@@ -17,7 +17,6 @@
     unless params[:month].nil? and params[:day].nil? and params[:year].nil?
       date = Date.parse("#{params[:month]}/#{params[:day]}/#{params[:year]}")
     end
-
     @zipcode = params[:zipcode] ? params[:zipcode] : session[:zipcode] # Update zipcode filter if changed by the user
     session[:zipcode] = @zipcode # Store the new zipcode filter in the user's session
     
@@ -31,11 +30,10 @@
     @events = Event.paginate :page => params[:page], :conditions => conditions, :order => session[:order], :per_page => 10, :include => :address
     if @zipcode and !@zipcode.empty?
       @events.delete_if { |e| e.address.zip != @zipcode }
-      @geolocation = Geolocation.find_by_zip @zipcode
     end
       
     @tags = Event.top_n_tags(50)
-    
+
     respond_to do |format|
       format.html # index.html.erb
       format.js # index.js.rjs
@@ -79,6 +77,9 @@
     @event.user_id = session[:user_id]
     @event.set_date
     @address = Address.new(params[:address])
+    @geolocation = Geolocation.new(@address.street1, @address.city, @address.state, @address.zip)
+    @address.longitude = @geolocation.longitude
+    @address.latitude = @geolocation.latitude
     begin
       Event.transaction do
         @address.save!
@@ -134,6 +135,9 @@
         @event.attributes = params[:event]
         @event.set_date
         @address.attributes = params[:address]
+        @geolocation = Geolocation.new(@address.street1, @address.city, @address.state, @address.zip)
+        @address.longitude = @geolocation.longitude
+        @address.latitude = @geolocation.latitude
         @address.save!
         
         @event.image = Image.make_from_upload(params[:event_image], @event.id) if new_image?

Modified: incubator/olio/webapp/rails/trunk/app/models/geolocation.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/app/models/geolocation.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/app/models/geolocation.rb (original)
+++ incubator/olio/webapp/rails/trunk/app/models/geolocation.rb Wed Dec 10 17:34:18 2008
@@ -1,30 +1,24 @@
-# +------------+--------------+------+-----+---------+----------------+
-# | Field      | Type         | Null | Key | Default | Extra          |
-# +------------+--------------+------+-----+---------+----------------+
-# | id         | int(11)      | NO   | PRI | NULL    | auto_increment | 
-# | zip        | int(11)      | YES  | MUL | NULL    |                | 
-# | state_code | varchar(255) | YES  |     | NULL    |                | 
-# | state      | varchar(255) | YES  |     | NULL    |                | 
-# | city       | varchar(255) | YES  |     | NULL    |                | 
-# | longitude  | float        | YES  |     | NULL    |                | 
-# | latitude   | float        | YES  |     | NULL    |                | 
-# | created_at | datetime     | YES  |     | NULL    |                | 
-# | updated_at | datetime     | YES  |     | NULL    |                | 
-class Geolocation < ActiveRecord::Base
+require 'net/http'
+require 'cgi'
 
-  # For now, everything assumed is to be in the United States
-  # Will more countries be added later?
-  validates_presence_of :zip, :city
-  validates_uniqueness_of :zip
+class Geolocation
+  attr_reader :address, :city, :state, :zip, :country, :latitude, :longitude
   
-  # As of now, zip code ranges from 1001 to 99950 in current database
+  @@url = 'http://localhost:8080/Web20Emulator/geocode?appid=gsd5f'
   
-  validates_numericality_of :latitude, :longitude
-  validates_inclusion_of :latitude,
-                         :in => -90..90,
-                         :message => "must be between -90 and 90 degrees"
-  validates_inclusion_of :longitude,
-                         :in => -180..180,
-                         :message => "must be between -180 and 180 degrees"
-
+  def self.url=(url)
+    @@url = url
+  end
+  
+  def initialize(street, city, state, zip)
+    args = %w{street city state zip}.zip([street, city, state, zip]).map do |n, v|
+      "#{n}=#{CGI::escape(v)}"
+    end.join('&')
+    response = Net::HTTP.get(URI.parse("#{@@url}&#{args}"))
+    if response
+      eval(response.scan(%r{<([A-Za-z]+)>\s*([^<]+)\s*</\1>}m).map do |k, v|
+        "@#{k.downcase} = '#{v.chomp}'"
+      end.join(';'))
+    end
+  end
 end

Modified: incubator/olio/webapp/rails/trunk/app/views/events/_event_list.html.erb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/app/views/events/_event_list.html.erb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/app/views/events/_event_list.html.erb (original)
+++ incubator/olio/webapp/rails/trunk/app/views/events/_event_list.html.erb Wed Dec 10 17:34:18 2008
@@ -39,9 +39,6 @@
     <div>
       <h1 class="tight_heading"><%= @date.nil? ? "All Events" : "#{simple_date(@date)} events" %></h1>
       <h2 id="which_timezone" class="tight_heading"><%= (@zipcode and !@zipcode.nil? and !@zipcode.empty?) ? "for #{@zipcode}" : "for all locations" %>
-  		<% if @geolocation %>
-  			<%= "(#{@geolocation.city}, #{@geolocation.state_code})" %>
-  		<% end %>
   		</h2>
 		</div>
       

Modified: incubator/olio/webapp/rails/trunk/config/environment.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/config/environment.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/config/environment.rb (original)
+++ incubator/olio/webapp/rails/trunk/config/environment.rb Wed Dec 10 17:34:18 2008
@@ -5,12 +5,15 @@
 ENV['RAILS_ENV'] ||= 'production'
 
 # Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
+# RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION
 
 # Bootstrap the Rails environment, frameworks, and default configuration
 require File.join(File.dirname(__FILE__), 'boot')
 require 'hodel_3000_compliant_logger'
 
+IMAGE_STORE_PATH = 'public/images/uploaded'
+DOCUMENT_STORE_PATH = 'public/uploaded_files'
+
 Rails::Initializer.run do |config|
   # Settings in config/environments/* take precedence over those specified here
 
@@ -69,5 +72,3 @@
 require 'will_paginate'
 require RAILS_ROOT + '/test/selenium_helper' if defined? SeleniumOnRails::FixtureLoader
 
-IMAGE_STORE_PATH = 'public/images/uploaded'
-DOCUMENT_STORE_PATH = 'public/uploaded_files'

Modified: incubator/olio/webapp/rails/trunk/config/environments/development.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/config/environments/development.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/config/environments/development.rb (original)
+++ incubator/olio/webapp/rails/trunk/config/environments/development.rb Wed Dec 10 17:34:18 2008
@@ -11,7 +11,7 @@
 # Show full error reports and disable caching
 config.action_controller.consider_all_requests_local = true
 config.action_controller.perform_caching             = false
-config.action_view.cache_template_extensions         = false
+# config.action_view.cache_template_extensions         = false
 config.action_view.debug_rjs                         = true
 
 # Don't care if the mailer can't send

Modified: incubator/olio/webapp/rails/trunk/spec/controllers/events_controller_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/spec/controllers/events_controller_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/spec/controllers/events_controller_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/spec/controllers/events_controller_spec.rb Wed Dec 10 17:34:18 2008
@@ -42,7 +42,6 @@
 
       it "should be successful for a zipcode" do
         session[:zipcode] = @zip
-        Geolocation.should_receive(:find_by_zip).with(@zip)
         do_get
       end
 
@@ -301,8 +300,19 @@
       @event.stub!(:set_date)
       
       @address = mock_model(Address)
+      @address.stub!(:street1).and_return('100 Main St')
+      @address.stub!(:city).and_return('Berkeley')
+      @address.stub!(:state).and_return('CA')
+      @address.stub!(:zip).and_return('94611')
+      @address.stub!(:latitude=)
+      @address.stub!(:longitude=)
       Address.stub!(:new).and_return(@address)
       
+      @geolocation = mock(Geolocation)
+      @geolocation.stub!(:latitude).and_return('33.0000')
+      @geolocation.stub!(:longitude).and_return('-177.0000')
+      Geolocation.stub!(:new).and_return(@geolocation)
+            
       @image = mock_model(Image)
       Image.stub!(:new).and_return(@image)
       @document = mock_model(Document)
@@ -412,11 +422,22 @@
     before(:each) do
       login
       @address = mock_model(Address)
+      @address.stub!(:street1).and_return('100 Main St')
+      @address.stub!(:city).and_return('Berkeley')
+      @address.stub!(:state).and_return('CA')
+      @address.stub!(:zip).and_return('94611')
+      @address.stub!(:latitude=)
+      @address.stub!(:longitude=)
       @controller.stub!(:'verified_request?').and_return(:true)
       @event = mock_model(Event, :to_param => "1", :address => @address)
       Event.stub!(:find).and_return(@event)
       Event.stub!(:find_by_id).with("1").and_return(@event)
       @event.stub!(:set_date)
+
+      @geolocation = mock(Geolocation)
+      @geolocation.stub!(:latitude).and_return('33.0000')
+      @geolocation.stub!(:longitude).and_return('-177.0000')
+      Geolocation.stub!(:new).and_return(@geolocation)
           
       @image = mock_model(Image)
       Image.stub!(:new).and_return(@image)

Modified: incubator/olio/webapp/rails/trunk/spec/models/geolocation_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/spec/models/geolocation_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/spec/models/geolocation_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/spec/models/geolocation_spec.rb Wed Dec 10 17:34:18 2008
@@ -2,91 +2,40 @@
 
 describe Geolocation do
   before(:each) do
-    @geolocation = Geolocation.new
+    Geolocation.url = 'http://localhost:8080/Web20Emulator/geocode?appid=gsd5f'
+    uri = "http://localhost:8080/Web20Emulator/geocode?appid=gsd5f&street=100+Main+St&city=Berkeley&state=CA&zip=94611"
+    Net::HTTP.stub!(:get).with(URI.parse(uri)).and_return <<EOF
+<?xml version="1.0" ?>
+<ResultSet xmlns="urn:yahoo:maps" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/GeocodeResponse.xsd">
+<Result precision="address">
+<Latitude>
+33.0000
+</Latitude><Longitude>
+-177.0000
+</Longitude><Address>
+100 Main St
+</Address><City>
+Berkeley
+</City><State>
+CA
+</State><zip>
+94611
+</zip><Country>
+USA
+</Country>
+</Result>
+</ResultSet>
+EOF
+  end
+  
+  it "should find geolocation using web service" do
+    geo = Geolocation.new('100 Main St', 'Berkeley', 'CA', '94611')
+    geo.latitude.should == '33.0000'
+    geo.longitude.should == '-177.0000'
+    geo.address.should == '100 Main St'
+    geo.city.should == 'Berkeley'
+    geo.state.should == 'CA'
+    geo.country.should == 'USA'
+    geo.zip.should == '94611'
   end
-
-  it "should be valid" do
-    #location = new_geolocation
-    #location.should be_valid
-  end
-
-  it "should not be valid" do
-    @geolocation.should_not be_valid
-  end
-  
-  # Basic requirements
-  it "should require a zip code" do
-    @geolocation.should have(1).errors_on(:zip)
-  end
-  
-  it "should require a city" do
-    @geolocation.should have(1).errors_on(:city)
-  end
-
-  it "should have a numerical latitude" do
-    location = Geolocation.new
-    
-    location.latitude = "ABC"
-    location.should have(1).errors_on(:latitude)
-    location.errors_on(:latitude).should == ["is not a number"]
-    location.latitude.should_not be_instance_of(Numeric)
-    
-    location.latitude = "`@="
-    location.should have(1).errors_on(:latitude)
-    location.errors_on(:latitude).should == ["is not a number"]
-    location.latitude.should_not be_instance_of(Numeric)
-    
-    location.latitude = -11.11111111111
-    location.should have(0).errors_on(:latitude)
-    location.latitude.should be_instance_of(Float)
-  end
-  
-  it "should have a numerical longitude" do
-    location = Geolocation.new
-    
-    location.longitude = "Zsa123"
-    location.should have(1).errors_on(:longitude)
-    location.errors_on(:longitude).should == ["is not a number"]
-    location.longitude.should_not be_instance_of(Numeric)
-    
-    location.longitude = "114[]0"
-    location.should have(1).errors_on(:longitude)
-    location.errors_on(:longitude).should == ["is not a number"]
-    location.longitude.should_not be_instance_of(Numeric)
-    
-    location.longitude = -110.0
-    location.should have(0).errors_on(:longitude)
-    location.longitude.should be_instance_of(Float)
-  end
-  
-  it "should have a valid latitude value" do
-    location = Geolocation.new
-    
-    location.latitude = -90.1
-    location.should have(1).errors_on(:latitude)
-    location.errors_on(:latitude).should == ["must be between -90 and 90 degrees"]
-    
-    location.latitude = 90.1
-    location.should have(1).errors_on(:latitude)
-    location.errors_on(:latitude).should == ["must be between -90 and 90 degrees"]
-    
-    location.latitude = 12
-    location.should have(0).errors_on(:latitude)
-  end
-  
-  it "should have a valid longitude value" do
-    location = Geolocation.new
-    
-    location.longitude = 180.1
-    location.should have(1).errors_on(:longitude)
-    location.errors_on(:longitude).should == ["must be between -180 and 180 degrees"]
-    
-    location.longitude = -180.1
-    location.should have(1).errors_on(:longitude)
-    location.errors_on(:longitude).should == ["must be between -180 and 180 degrees"]
-    
-    location.longitude = -89.0
-    location.should have(0).errors_on(:longitude)
-  end
-  
 end

Modified: incubator/olio/webapp/rails/trunk/spec/models/user_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/spec/models/user_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/spec/models/user_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/spec/models/user_spec.rb Wed Dec 10 17:34:18 2008
@@ -37,10 +37,6 @@
     @user.should have(1).errors_on(:email)
   end
   
-  it "should require an address (id)" do
-    @user.should have(1).errors_on(:address_id)
-  end
-
   it "should require a properly formatted phone number" do
     @user.should have(1).errors_on(:telephone)
     @user.telephone = "555"

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/README
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/README?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/README (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/README Wed Dec 10 17:34:18 2008
@@ -44,6 +44,7 @@
     :path_prefix      # path to store the uploaded files.
                       # Uses public/#{table_name} by default for the filesystem, and just #{table_name} for the S3 backend.  
                       # Setting this sets the :storage to :file_system.
+    :partition        # Partiton files in directories like /0000/0001/image.jpg. Default is true. 
     :storage          # Specifies the storage system to use..
                       # Defaults to :db_file.  Options are :file_system, :db_file, and :s3.
     :processor        # Sets the image processor to use for resizing of the attached image.
@@ -60,7 +61,7 @@
     has_attachment :thumbnails => { :thumb => [50, 50], :geometry => 'x50' }
     has_attachment :storage => :file_system, :path_prefix => 'public/files'
     has_attachment :storage => :file_system, :path_prefix => 'public/files', 
-                   :content_type => :image, :resize_to => [50,50]
+                   :content_type => :image, :resize_to => [50,50], :partition => false
     has_attachment :storage => :file_system, :path_prefix => 'public/files',
                    :thumbnails => { :thumb => [50, 50], :geometry => 'x50' }
     has_attachment :storage => :s3
@@ -160,3 +161,26 @@
       render :action => :new
     end
   end
+
+attachement_fu scripting
+====================================
+
+You may wish to import a large number of images or attachments. 
+The following example shows how to upload a file from a script. 
+
+#!/usr/bin/env ./script/runner
+
+# required to use ActionController::TestUploadedFile 
+require 'action_controller'
+require 'action_controller/test_process.rb'
+
+path = "./public/images/x.jpg"
+
+# mimetype is a string like "image/jpeg". One way to get the mimetype for a given file on a UNIX system
+# mimetype = `file -ib #{path}`.gsub(/\n/,"")
+
+mimetype = "image/jpeg"
+
+# This will "upload" the file at path and create the new model.
+@attachable = AttachmentMetadataModel.new(:uploaded_data => ActionController::TestUploadedFile.new(path, mimetype))
+@attachable.save

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/geometry.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/geometry.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/geometry.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/geometry.rb Wed Dec 10 17:34:18 2008
@@ -25,7 +25,7 @@
   end
 
   # Construct an object from a geometry string
-  RE = /\A(\d*)(?:x(\d+))?([-+]\d+)?([-+]\d+)?([%!<>@]?)\Z/
+  RE = /\A(\d*)(?:x(\d+)?)?([-+]\d+)?([-+]\d+)?([%!<>@]?)\Z/
 
   def self.from_s(str)
     raise(ArgumentError, "no geometry string specified") unless str
@@ -76,7 +76,7 @@
         new_height = orig_height if @flag && orig_height.send(@flag, new_height)
     end
 
-    [new_width, new_height].collect! { |v| v.round }
+    [new_width, new_height].collect! { |v| [v.round, 1].max }
   end
 end
 
@@ -90,4 +90,4 @@
     geometry = Geometry.from_s(geometry) if geometry.is_a?(String)
     geometry.new_dimensions_for first, last
   end
-end
\ No newline at end of file
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb Wed Dec 10 17:34:18 2008
@@ -2,7 +2,37 @@
   module AttachmentFu # :nodoc:
     @@default_processors = %w(ImageScience Rmagick MiniMagick Gd2 CoreImage)
     @@tempfile_path      = File.join(RAILS_ROOT, 'tmp', 'attachment_fu')
-    @@content_types      = ['image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png', 'image/jpg']
+    @@content_types      = [
+      'image/jpeg',
+      'image/pjpeg',
+      'image/jpg',
+      'image/gif',
+      'image/png',
+      'image/x-png',
+      'image/jpg',
+      'image/x-ms-bmp',
+      'image/bmp',
+      'image/x-bmp',
+      'image/x-bitmap',
+      'image/x-xbitmap',
+      'image/x-win-bitmap',
+      'image/x-windows-bmp',
+      'image/ms-bmp',
+      'application/bmp',
+      'application/x-bmp',
+      'application/x-win-bitmap',
+      'application/preview',
+      'image/jp_',
+      'application/jpg',
+      'application/x-jpg',
+      'image/pipeg',
+      'image/vnd.swiftview-jpeg',
+      'image/x-xbitmap',
+      'application/png',
+      'application/x-png',
+      'image/gi_',
+      'image/x-citrix-pjpeg'
+    ]
     mattr_reader :content_types, :tempfile_path, :default_processors
     mattr_writer :tempfile_path
 
@@ -82,8 +112,8 @@
           processors = Technoweenie::AttachmentFu.default_processors.dup
           begin
             if processors.any?
-              attachment_options[:processor] = "#{processors.first}Processor"
-              processor_mod = Technoweenie::AttachmentFu::Processors.const_get(attachment_options[:processor])
+              attachment_options[:processor] = processors.first
+              processor_mod = Technoweenie::AttachmentFu::Processors.const_get("#{attachment_options[:processor].to_s.classify}Processor")
               include processor_mod unless included_modules.include?(processor_mod)
             end
           rescue Object, Exception
@@ -138,6 +168,7 @@
         base.after_save :after_process_attachment
         base.after_destroy :destroy_file
         base.after_validation :process_attachment
+        base.attr_accessible :uploaded_data
         if defined?(::ActiveSupport::Callbacks)
           base.define_callbacks :after_resize, :after_attachment_saved, :before_thumbnail_saved
         end
@@ -244,12 +275,12 @@
       def create_or_update_thumbnail(temp_file, file_name_suffix, *size)
         thumbnailable? || raise(ThumbnailError.new("Can't create a thumbnail if the content type is not an image or there is no parent_id column"))
         returning find_or_initialize_thumbnail(file_name_suffix) do |thumb|
-          thumb.attributes = {
+          thumb.temp_paths.unshift temp_file
+          thumb.send(:'attributes=', {
             :content_type             => content_type,
             :filename                 => thumbnail_name_for(file_name_suffix),
-            :temp_path                => temp_file,
             :thumbnail_resize_options => size
-          }
+          }, false)
           callback_with_args :before_thumbnail_saved, thumb
           thumb.save!
         end
@@ -290,14 +321,21 @@
       #
       # TODO: Allow it to work with Merb tempfiles too.
       def uploaded_data=(file_data)
-        return nil if file_data.nil? || file_data.size == 0
-        self.content_type = file_data.content_type
-        self.filename     = file_data.original_filename if respond_to?(:filename)
+        if file_data.respond_to?(:content_type)
+          return nil if file_data.size == 0
+          self.content_type = file_data.content_type
+          self.filename     = file_data.original_filename if respond_to?(:filename)
+        else
+          return nil if file_data.blank? || file_data['size'] == 0
+          self.content_type = file_data['content_type']
+          self.filename =  file_data['filename']
+          file_data = file_data['tempfile']
+        end
         if file_data.is_a?(StringIO)
           file_data.rewind
-          self.temp_data = file_data.read
+          set_temp_data file_data.read
         else
-          self.temp_path = file_data
+          self.temp_paths.unshift file_data
         end
       end
 
@@ -316,22 +354,14 @@
           [] : [copy_to_temp_file(full_filename)])
       end
 
-      # Adds a new temp_path to the array.  This should take a string or a Tempfile.  This class makes no
-      # attempt to remove the files, so Tempfiles should be used.  Tempfiles remove themselves when they go out of scope.
-      # You can also use string paths for temporary files, such as those used for uploaded files in a web server.
-      def temp_path=(value)
-        temp_paths.unshift value
-        temp_path
-      end
-
       # Gets the data from the latest temp file.  This will read the file into memory.
       def temp_data
         save_attachment? ? File.read(temp_path) : nil
       end
 
       # Writes the given data to a Tempfile and adds it to the collection of temp files.
-      def temp_data=(data)
-        self.temp_path = write_to_temp_file data unless data.nil?
+      def set_temp_data(data)
+        temp_paths.unshift write_to_temp_file data unless data.nil?
       end
 
       # Copies the given file to a randomly named Tempfile.
@@ -364,13 +394,14 @@
         end
 
         def sanitize_filename(filename)
+          return unless filename
           returning filename.strip do |name|
             # NOTE: File.basename doesn't work right with Windows paths on Unix
             # get only the filename, not the whole path
             name.gsub! /^.*(\\|\/)/, ''
 
             # Finally, replace all non alphanumeric, underscore or periods with underscore
-            name.gsub! /[^\w\.\-]/, '_'
+            name.gsub! /[^A-Za-z0-9\.\-]/, '_'
           end
         end
 

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb Wed Dec 10 17:34:18 2008
@@ -31,10 +31,14 @@
           ((respond_to?(:parent_id) && parent_id) || id).to_i
         end
       
-        # overrwrite this to do your own app-specific partitioning. 
-        # you can thank Jamis Buck for this: http://www.37signals.com/svn/archives2/id_partitioning.php
+        # by default paritions files into directories e.g. 0000/0001/image.jpg
+        # to turn this off set :partition => false
         def partitioned_path(*args)
-          ("%08d" % attachment_path_id).scan(/..../) + args
+          if respond_to?(:attachment_options) && attachment_options[:partition] == false 
+            args
+          else 
+            ("%08d" % attachment_path_id).scan(/..../) + args
+          end
         end
       
         # Gets the public path to the file
@@ -94,4 +98,4 @@
       end
     end
   end
-end
\ No newline at end of file
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb Wed Dec 10 17:34:18 2008
@@ -236,8 +236,8 @@
         #
         #   @photo.authenticated_s3_url('thumbnail', :expires_in => 5.hours, :use_ssl => true)
         def authenticated_s3_url(*args)
-          thumbnail = args.first.is_a?(String) ? args.first : nil
-          options   = args.last.is_a?(Hash)    ? args.last  : {}
+          options   = args.extract_options!
+          thumbnail = args.shift
           S3Object.url_for(full_filename(thumbnail), bucket_name, options)
         end
 

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb Wed Dec 10 17:34:18 2008
@@ -44,6 +44,9 @@
             processor.render do |result|
               self.width  = result.extent.size.width  if respond_to?(:width)
               self.height = result.extent.size.height if respond_to?(:height)
+              
+              # Get a new temp_path for the image before saving
+              temp_paths.unshift Tempfile.new(random_tempfile_filename, Technoweenie::AttachmentFu.tempfile_path).path
               result.save self.temp_path, OSX::NSJPEGFileType
               self.size = File.size(self.temp_path)
             end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb Wed Dec 10 17:34:18 2008
@@ -44,7 +44,7 @@
               w, h = [img.width, img.height] / size.to_s
               img.resize!(w, h, false)
             end
-            self.temp_path = random_tempfile_filename
+            temp_paths.unshift random_tempfile_filename
             self.size = img.export(self.temp_path)
           end
 

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb Wed Dec 10 17:34:18 2008
@@ -34,7 +34,7 @@
             # supports.
             filename.sub! /gif$/, 'png'
             content_type.sub!(/gif$/, 'png')
-            self.temp_path = write_to_temp_file(filename)
+            temp_paths.unshift write_to_temp_file(filename)
             grab_dimensions = lambda do |img|
               self.width  = img.width  if respond_to?(:width)
               self.height = img.height if respond_to?(:height)

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb Wed Dec 10 17:34:18 2008
@@ -7,7 +7,7 @@
           base.send :extend, ClassMethods
           base.alias_method_chain :process_attachment, :processing
         end
-
+ 
         module ClassMethods
           # Yields a block containing an MiniMagick Image for the given binary data.
           def with_image(file, &block)
@@ -23,23 +23,29 @@
             !binary_data.nil?
           end
         end
-
+ 
       protected
         def process_attachment_with_processing
           return unless process_attachment_without_processing
           with_image do |img|
             resize_image_or_thumbnail! img
-            self.width  = img[:width] if respond_to?(:width)
-            self.height = img[:height]  if respond_to?(:height)
+            self.width = img[:width] if respond_to?(:width)
+            self.height = img[:height] if respond_to?(:height)
             callback_with_args :after_resize, img
           end if image?
         end
-
+ 
         # Performs the actual resizing operation for a thumbnail
         def resize_image(img, size)
           size = size.first if size.is_a?(Array) && size.length == 1
           img.combine_options do |commands|
             commands.strip unless attachment_options[:keep_profile]
+
+            # gif are not handled correct, this is a hack, but it seems to work.
+            if img.output =~ / GIF /
+              img.format("png")
+            end           
+            
             if size.is_a?(Fixnum) || (size.is_a?(Array) && size.first.is_a?(Fixnum))
               if size.is_a?(Fixnum)
                 size = [size, size]
@@ -47,13 +53,80 @@
               else
                 commands.resize(size.join('x') + '!')
               end
+            # extend to thumbnail size
+            elsif size.is_a?(String) and size =~ /e$/
+              size = size.gsub(/e/, '')
+              commands.resize(size.to_s + '>')
+              commands.background('#ffffff')
+              commands.gravity('center')
+              commands.extent(size)
+            # crop thumbnail, the smart way
+            elsif size.is_a?(String) and size =~ /c$/
+               size = size.gsub(/c/, '')
+              
+              # calculate sizes and aspect ratio
+              thumb_width, thumb_height = size.split("x")
+              thumb_width   = thumb_width.to_f
+              thumb_height  = thumb_height.to_f
+              
+              thumb_aspect = thumb_width.to_f / thumb_height.to_f
+              image_width, image_height = img[:width].to_f, img[:height].to_f
+              image_aspect = image_width / image_height
+              
+              # only crop if image is not smaller in both dimensions
+              unless image_width < thumb_width and image_height < thumb_height
+                command = calculate_offset(image_width,image_height,image_aspect,thumb_width,thumb_height,thumb_aspect)
+
+                # crop image
+                commands.extract(command)
+              end
+
+              # don not resize if image is not as height or width then thumbnail
+              if image_width < thumb_width or image_height < thumb_height                   
+                  commands.background('#ffffff')
+                  commands.gravity('center')
+                  commands.extent(size)
+              # resize image
+              else
+                commands.resize("#{size.to_s}")
+              end
+            # crop end
             else
               commands.resize(size.to_s)
             end
           end
-          self.temp_path = img
+          temp_paths.unshift img
+        end
+
+        def calculate_offset(image_width,image_height,image_aspect,thumb_width,thumb_height,thumb_aspect)
+        # only crop if image is not smaller in both dimensions
+
+          # special cases, image smaller in one dimension then thumbsize
+          if image_width < thumb_width
+            offset = (image_height / 2) - (thumb_height / 2)
+            command = "#{image_width}x#{thumb_height}+0+#{offset}"
+          elsif image_height < thumb_height
+            offset = (image_width / 2) - (thumb_width / 2)
+            command = "#{thumb_width}x#{image_height}+#{offset}+0"
+
+          # normal thumbnail generation
+          # calculate height and offset y, width is fixed                 
+          elsif (image_aspect <= thumb_aspect or image_width < thumb_width) and image_height > thumb_height
+            height = image_width / thumb_aspect
+            offset = (image_height / 2) - (height / 2)
+            command = "#{image_width}x#{height}+0+#{offset}"
+          # calculate width and offset x, height is fixed
+          else
+            width = image_height * thumb_aspect
+            offset = (image_width / 2) - (width / 2)
+            command = "#{width}x#{image_height}+#{offset}+0"
+          end
+          # crop image
+          command
         end
+
+
       end
     end
   end
-end
+end
\ No newline at end of file

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb Wed Dec 10 17:34:18 2008
@@ -46,7 +46,7 @@
             img.change_geometry(size.to_s) { |cols, rows, image| image.resize!(cols<1 ? 1 : cols, rows<1 ? 1 : rows) }
           end
           img.strip! unless attachment_options[:keep_profile]
-          self.temp_path = write_to_temp_file(img.to_blob)
+          temp_paths.unshift write_to_temp_file(img.to_blob)
         end
       end
     end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/file_system_test.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/file_system_test.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/file_system_test.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/file_system_test.rb Wed Dec 10 17:34:18 2008
@@ -52,7 +52,7 @@
     assert_not_created do
       use_temp_file 'files/rails.png' do |file|
         attachment.filename        = 'rails2.png'
-        attachment.temp_path = File.join(fixture_path, file)
+        attachment.temp_paths.unshift File.join(fixture_path, file)
         attachment.save!
         assert  File.exists?(attachment.full_filename), "#{attachment.full_filename} does not exist"    
         assert !File.exists?(old_filename),             "#{old_filename} still exists"

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb Wed Dec 10 17:34:18 2008
@@ -49,6 +49,18 @@
     end
 
     test_against_subclass :test_should_create_authenticated_url, S3Attachment
+    
+    def test_should_create_authenticated_url_for_thumbnail(klass = S3Attachment)
+      attachment_model klass
+      attachment = upload_file :filename => '/files/rails.png'
+      ['large', :large].each do |thumbnail|
+        assert_match(
+          /^http.+rails_large\.png.+AWSAccessKeyId.+Expires.+Signature/, 
+          attachment.authenticated_s3_url(thumbnail), 
+          "authenticated_s3_url failed with #{thumbnail.class} parameter"
+        )
+      end
+    end
 
     def test_should_save_attachment(klass = S3Attachment)
       attachment_model klass

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/base_attachment_tests.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/base_attachment_tests.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/base_attachment_tests.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/base_attachment_tests.rb Wed Dec 10 17:34:18 2008
@@ -12,13 +12,26 @@
     end
   end
   
+  def test_should_create_file_from_merb_temp_file
+    assert_created do
+      attachment = upload_merb_file :filename => '/files/foo.txt'
+      assert_valid attachment
+      assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
+      assert  attachment.image?
+      assert !attachment.size.zero?
+      #assert_equal 3, attachment.size
+      assert_nil      attachment.width
+      assert_nil      attachment.height
+    end
+  end
+  
   def test_reassign_attribute_data
     assert_created 1 do
       attachment = upload_file :filename => '/files/rails.png'
       assert_valid attachment
       assert attachment.size > 0, "no data was set"
       
-      attachment.temp_data = 'wtf'
+      attachment.set_temp_data 'wtf'
       assert attachment.save_attachment?
       attachment.save!
       
@@ -32,7 +45,7 @@
       assert_valid attachment
       assert attachment.size > 0, "no data was set"
       
-      attachment.temp_data = nil
+      attachment.set_temp_data nil
       assert !attachment.save_attachment?
     end
   end
@@ -42,7 +55,7 @@
     assert_not_created do # no new db_file records
       use_temp_file 'files/rails.png' do |file|
         attachment.filename = 'rails2.png'
-        attachment.temp_path = File.join(fixture_path, file)
+        attachment.temp_paths.unshift File.join(fixture_path, file)
         attachment.save!
       end
     end
@@ -54,4 +67,11 @@
     assert !attachment.save_attachment?
     assert_nothing_raised { attachment.save! }
   end
+  
+  def test_should_handle_nil_file_upload
+    attachment = attachment_model.create :uploaded_data => ''
+    assert_raise ActiveRecord::RecordInvalid do
+      attachment.save!
+    end
+  end
 end
\ No newline at end of file

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/basic_test.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/basic_test.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/basic_test.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/basic_test.rb Wed Dec 10 17:34:18 2008
@@ -42,6 +42,12 @@
 
     @attachment.filename = 'f o!O-.bar'
     assert_equal 'f_o_O-.bar', @attachment.filename
+    
+    @attachment.filename = 'sheeps_says_bææ'
+    assert_equal 'sheeps_says_b__', @attachment.filename
+
+    @attachment.filename = nil
+    assert_nil @attachment.filename
   end
   
   def test_should_convert_thumbnail_name

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/extra_attachment_test.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/extra_attachment_test.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/extra_attachment_test.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/extra_attachment_test.rb Wed Dec 10 17:34:18 2008
@@ -24,6 +24,16 @@
     end
   end
   
+  def test_should_create_file_from_merb_temp_file
+    assert_created do
+      attachment = upload_merb_file :filename => '/files/foo.txt'
+      assert_valid attachment
+      assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
+      assert  attachment.image?
+      assert !attachment.size.zero?
+    end
+  end
+  
   def test_should_create_image_from_uploaded_file_with_custom_content_type
     assert_created do
       attachment = upload_file :content_type => 'foo/bar', :filename => '/files/rails.png'

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/fixtures/attachment.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/fixtures/attachment.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/fixtures/attachment.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/fixtures/attachment.rb Wed Dec 10 17:34:18 2008
@@ -35,7 +35,7 @@
 class ImageWithThumbsAttachment < Attachment
   has_attachment :thumbnails => { :thumb => [50, 50], :geometry => 'x50' }, :resize_to => [55,55]
   after_resize do |record, img|
-    record.aspect_ratio = img.columns.to_f / img.rows.to_f
+   # record.aspect_ratio = img.columns.to_f / img.rows.to_f
   end
 end
 
@@ -53,7 +53,7 @@
   has_attachment :path_prefix => 'vendor/plugins/attachment_fu/test/files',
     :thumbnails => { :thumb => [50, 50], :geometry => 'x50' }, :resize_to => [55,55]
   after_resize do |record, img|
-    record.aspect_ratio = img.columns.to_f / img.rows.to_f
+  #  record.aspect_ratio = img.columns.to_f / img.rows.to_f
   end
 end
 
@@ -130,9 +130,44 @@
     has_attachment :path_prefix => 'vendor/plugins/attachment_fu/test/files',
       :processor => :mini_magick, :thumbnails => { :thumb => [50, 51], :geometry => '31>' }, :resize_to => 55
   end
+  class ImageThumbnailCrop < MiniMagickAttachment
+    has_attachment :path_prefix => 'vendor/plugins/attachment_fu/test/files',
+    :thumbnails => { :square => "50x50c", :vertical => "30x60c", :horizontal => "60x30c"}
+    
+    # TODO this is a bad duplication, this method is in the MiniMagick Processor
+    def self.calculate_offset(image_width,image_height,image_aspect,thumb_width,thumb_height,thumb_aspect)
+    # only crop if image is not smaller in both dimensions
+
+      # special cases, image smaller in one dimension then thumbsize
+      if image_width < thumb_width
+        offset = (image_height / 2) - (thumb_height / 2)
+        command = "#{image_width}x#{thumb_height}+0+#{offset}"
+      elsif image_height < thumb_height
+        offset = (image_width / 2) - (thumb_width / 2)
+        command = "#{thumb_width}x#{image_height}+#{offset}+0"
+
+      # normal thumbnail generation
+      # calculate height and offset y, width is fixed                 
+      elsif (image_aspect <= thumb_aspect or image_width < thumb_width) and image_height > thumb_height
+        height = image_width / thumb_aspect
+        offset = (image_height / 2) - (height / 2)
+        command = "#{image_width}x#{height}+0+#{offset}"
+      # calculate width and offset x, height is fixed
+      else
+        width = image_height * thumb_aspect
+        offset = (image_width / 2) - (width / 2)
+        command = "#{width}x#{image_height}+#{offset}+0"
+      end
+      # crop image
+      command
+    end
+  end
+
 rescue MissingSourceFile
 end
 
+
+
 begin
   class S3Attachment < ActiveRecord::Base
     has_attachment :storage => :s3, :processor => :rmagick, :s3_config_path => File.join(File.dirname(__FILE__), '../amazon_s3.yml')

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/geometry_test.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/geometry_test.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/geometry_test.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/attachment_fu/test/geometry_test.rb Wed Dec 10 17:34:18 2008
@@ -23,6 +23,13 @@
       "100" => [100, 128]
   end
   
+  def test_should_resize_no_height_with_x
+    assert_geometry 50, 64,
+      "50x"  => [50, 64],
+      "60x"  => [60, 77],
+      "100x" => [100, 128]
+  end
+  
   def test_should_resize_with_percent
     assert_geometry 50, 64,
       "50x50%"   => [25, 32],