sproutcore 1.7.1.beta → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +44 -0
- data/README.rdoc +20 -20
- data/VERSION.yml +3 -3
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +19 -1
- data/lib/frameworks/sproutcore/Buildfile +19 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
- data/lib/frameworks/sproutcore/README.md +29 -8
- data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
- data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
- data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
- data/lib/frameworks/sproutcore/license.js +2 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
- data/lib/gen/app/USAGE +17 -4
- data/lib/gen/language/Buildfile +4 -4
- data/lib/gen/language/USAGE +4 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
- data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
- data/lib/gen/{html_app → statechart_app}/README +0 -0
- data/lib/gen/statechart_app/USAGE +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/base.rb +19 -1
- data/lib/sproutcore/builders/chance_file.rb +6 -1
- data/lib/sproutcore/builders/handlebars.rb +1 -9
- data/lib/sproutcore/builders/javascript.rb +1 -10
- data/lib/sproutcore/builders/json.rb +25 -0
- data/lib/sproutcore/builders/less.rb +1 -1
- data/lib/sproutcore/builders/sass.rb +1 -1
- data/lib/sproutcore/builders/stylesheet.rb +1 -9
- data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +42 -0
- data/lib/sproutcore/rack/proxy.rb +21 -3
- data/lib/sproutcore/rack/service.rb +3 -2
- data/lib/sproutcore/tools.rb +18 -25
- data/lib/sproutcore/tools/gen.rb +10 -3
- data/lib/sproutcore/tools/init.rb +11 -10
- data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
- data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
- data/spec/lib/builders/json_spec.rb +53 -0
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/lib/chance/parser.rb +1 -1
- metadata +222 -177
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
- data/lib/gen/html_app/USAGE +0 -15
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -6
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
- data/lib/gen/html_project/Buildfile +0 -45
- data/lib/gen/html_project/INIT +0 -3
- data/lib/gen/html_project/README +0 -1
- data/lib/gen/html_project/USAGE +0 -2
- data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
- data/lib/gen/html_project/templates/@filename@/README +0 -4
@@ -129,7 +129,7 @@ SC.mixin(SC.String, {
|
|
129
129
|
// NB: This could be implemented as a wrapper to locWithDefault() but
|
130
130
|
// it would add some overhead to deal with the arguments and adds stack
|
131
131
|
// frames, so we are keeping the implementation separate.
|
132
|
-
if(!SC.Locale.currentLocale) { SC.Locale.createCurrentLocale(); }
|
132
|
+
if (!SC.Locale.currentLocale) { SC.Locale.createCurrentLocale(); }
|
133
133
|
|
134
134
|
var localized = SC.Locale.currentLocale.locWithDefault(str);
|
135
135
|
if (SC.typeOf(localized) !== SC.T_STRING) { localized = str; }
|
@@ -137,9 +137,23 @@ SC.mixin(SC.String, {
|
|
137
137
|
var args = SC.$A(arguments);
|
138
138
|
args.shift(); // remove str param
|
139
139
|
//to extend String.prototype
|
140
|
-
if(args.length>0 && args[0].isSCArray) args=args[0];
|
140
|
+
if (args.length > 0 && args[0] && args[0].isSCArray) { args = args[0]; }
|
141
|
+
|
142
|
+
// I looked up the performance of try/catch. IE and FF do not care so
|
143
|
+
// long as the catch never happens. Safari and Chrome are affected rather
|
144
|
+
// severely (10x), but this is a one-time cost per loc (the code being
|
145
|
+
// executed is likely as expensive as this try/catch cost).
|
146
|
+
//
|
147
|
+
// Also, .loc() is not called SO much to begin with. So, the error handling
|
148
|
+
// that this gives us is worth it.
|
149
|
+
try {
|
150
|
+
return SC.String.fmt(localized, args);
|
151
|
+
} catch (e) {
|
152
|
+
SC.error("Error processing string with key: " + str);
|
153
|
+
SC.error("Localized String: " + localized);
|
154
|
+
SC.error("Error: " + e);
|
155
|
+
}
|
141
156
|
|
142
|
-
return SC.String.fmt(localized, args);
|
143
157
|
},
|
144
158
|
|
145
159
|
/**
|
@@ -280,7 +294,27 @@ SC.mixin(SC.String, {
|
|
280
294
|
*/
|
281
295
|
trimRight: function (str) {
|
282
296
|
return str.replace(SC.STRING_TRIM_RIGHT_REGEXP,"");
|
297
|
+
},
|
298
|
+
|
299
|
+
/**
|
300
|
+
Mulitplies a given string. For instance if you have a string "xyz"
|
301
|
+
and multiply it by 2 the result is "xyzxyz".
|
302
|
+
|
303
|
+
@param {String} str the string to multiply
|
304
|
+
@param {Number} value the number of times to multiply the string
|
305
|
+
@returns {String} the mulitiplied string
|
306
|
+
*/
|
307
|
+
mult: function(str, value) {
|
308
|
+
if (SC.typeOf(value) !== SC.T_NUMBER || value < 1) return null;
|
309
|
+
|
310
|
+
var ret = "";
|
311
|
+
for (var i = 0; i < value; i += 1) {
|
312
|
+
ret += str;
|
313
|
+
}
|
314
|
+
|
315
|
+
return ret;
|
283
316
|
}
|
317
|
+
|
284
318
|
});
|
285
319
|
|
286
320
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
Timers were created for SproutCore as a way to efficiently defer execution
|
20
20
|
of code fragments for use in Animations, event handling, and other tasks.
|
21
21
|
|
22
|
-
Browsers are typically fairly
|
22
|
+
Browsers are typically fairly inconsistent about when they will fire a
|
23
23
|
timeout or interval based on what the browser is currently doing. Timeouts
|
24
24
|
and intervals are also fairly expensive for a browser to execute, which
|
25
25
|
means if you schedule a large number of them it can quickly slow down the
|
@@ -28,7 +28,7 @@
|
|
28
28
|
Timers, on the other handle, are scheduled cooperatively using the
|
29
29
|
SC.RunLoop, which uses exactly one timeout to fire itself when needed and
|
30
30
|
then executes by timers that need to fire on its own. This approach can
|
31
|
-
be many
|
31
|
+
be many times faster than using timers and guarantees that timers scheduled
|
32
32
|
to execute at the same time generally will do so, keeping animations and
|
33
33
|
other operations in sync.
|
34
34
|
|
@@ -319,7 +319,10 @@ SC.Timer = SC.Object.extend(
|
|
319
319
|
invalidate: function() {
|
320
320
|
this.beginPropertyChanges();
|
321
321
|
this.set('isValid', NO);
|
322
|
-
|
322
|
+
|
323
|
+
var runLoop = SC.RunLoop.currentRunLoop;
|
324
|
+
if(runLoop) runLoop.cancelTimer(this);
|
325
|
+
|
323
326
|
this.action = this.target = null ; // avoid memory leaks
|
324
327
|
this.endPropertyChanges();
|
325
328
|
|
@@ -414,7 +417,7 @@ SC.Timer = SC.Object.extend(
|
|
414
417
|
Resets the timer settings with the new settings. This is the method
|
415
418
|
called by the Timer pool when a timer is reused. You will not normally
|
416
419
|
call this method yourself, though you could override it if you need to
|
417
|
-
reset
|
420
|
+
reset additional properties when a timer is reused.
|
418
421
|
|
419
422
|
@params {Hash} props properties to copy over
|
420
423
|
@returns {SC.Timer} receiver
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js
CHANGED
@@ -183,6 +183,27 @@ test("array orderBy using function", function(){
|
|
183
183
|
// ADD SPECIAL CASES HERE
|
184
184
|
//
|
185
185
|
|
186
|
+
test("verify length is correct in arrayObserver didChange method when orderBy is set", function () {
|
187
|
+
content = [];
|
188
|
+
controller = SC.ArrayController.create({
|
189
|
+
content: content,
|
190
|
+
orderBy: 'i haz your content!'
|
191
|
+
});
|
192
|
+
expect(2);
|
193
|
+
|
194
|
+
controller.addArrayObservers({
|
195
|
+
willChange: function () {
|
196
|
+
equals(this.get('length'), 0, 'length should be 0');
|
197
|
+
},
|
198
|
+
|
199
|
+
didChange: function () {
|
200
|
+
equals(this.get('length'), 1, 'length should be 1');
|
201
|
+
}
|
202
|
+
});
|
203
|
+
|
204
|
+
content.pushObject(":{");
|
205
|
+
});
|
206
|
+
|
186
207
|
test("verify rangeObserver fires when content is deleted", function() {
|
187
208
|
|
188
209
|
content = "1 2 3 4 5".w().map(function(x) {
|
@@ -9,7 +9,7 @@ var content, newContent, controller, destroyCount;
|
|
9
9
|
|
10
10
|
// ..........................................................
|
11
11
|
// SINGLE OBSERVABLE OBJECT
|
12
|
-
//
|
12
|
+
//
|
13
13
|
|
14
14
|
SC.TestObject = SC.Object.extend();
|
15
15
|
|
@@ -21,20 +21,20 @@ SC.TestObject.reopen({
|
|
21
21
|
|
22
22
|
module("SC.ObjectController - content destroyed", {
|
23
23
|
setup: function() {
|
24
|
-
content = SC.TestObject.create({
|
24
|
+
content = SC.TestObject.create({
|
25
25
|
foo: "foo1", bar: "bar1"
|
26
26
|
});
|
27
27
|
newContent = SC.Object.create({
|
28
28
|
foo: "foo2"
|
29
29
|
});
|
30
30
|
destroyCount = 0;
|
31
|
-
|
32
|
-
controller = SC.ObjectController.create({
|
31
|
+
|
32
|
+
controller = SC.ObjectController.create({
|
33
33
|
destroyContentOnReplace: YES,
|
34
|
-
content: content
|
34
|
+
content: content
|
35
35
|
});
|
36
36
|
},
|
37
|
-
|
37
|
+
|
38
38
|
teardown: function() {
|
39
39
|
controller.destroy();
|
40
40
|
}
|
@@ -56,4 +56,4 @@ test("Setting content should NOT call 'destroy' on old content if destroyContent
|
|
56
56
|
test("Setting content should NOT call 'destroy' if set to the same object", function() {
|
57
57
|
controller.set('content', content);
|
58
58
|
equals(destroyCount, 0, 'destroyCount');
|
59
|
-
});
|
59
|
+
});
|
@@ -76,6 +76,20 @@ test("Localize a string with mutliple parameters", function() {
|
|
76
76
|
equals(SC.String.loc("Test.Multiple", 'parameter1', 'parameter2'), 'parameter1 parameter2', "Localizing with multiple parameters - using SC.String.loc");
|
77
77
|
});
|
78
78
|
|
79
|
+
test("Localize a string with null or missing parameters", function() {
|
80
|
+
equals("Test".loc(null), "null", "Localizing with null parameter - using String.prototype.loc");
|
81
|
+
equals(SC.String.loc("Test", null), "null", "Localizing with null parameter - using SC.String.loc");
|
82
|
+
|
83
|
+
equals("Test".loc(), "", "Localizing with missing parameter - using String.prototype.loc");
|
84
|
+
equals(SC.String.loc("Test"), "", "Localizing with missing parameter - using SC.String.loc");
|
85
|
+
|
86
|
+
equals("Test.Multiple".loc("p1", null), "p1 null", "Localizing multiple with null parameter - using String.prototype.loc");
|
87
|
+
equals(SC.String.loc("Test.Multiple", "p1", null), "p1 null", "Localizing with null parameter - using SC.String.loc");
|
88
|
+
|
89
|
+
equals("Test.Multiple".loc("p1"), "p1 ", "Localizing multiple with missing parameter - using String.prototype.loc");
|
90
|
+
equals(SC.String.loc("Test.Multiple", "p1"), "p1 ", "Localizing with missing parameter - using SC.String.loc");
|
91
|
+
});
|
92
|
+
|
79
93
|
test("Localize a string even if localized version is empty", function() {
|
80
94
|
equals("empty".loc(), "", "Using String.prototype.loc");
|
81
95
|
equals(SC.String.loc("empty"), "", "Using SC.String.loc");
|
@@ -115,4 +129,12 @@ test("Access a localized layout hash", function() {
|
|
115
129
|
should_throw(function() {
|
116
130
|
"Button".locLayout({left:10});
|
117
131
|
}, Error, "locLayout(): There is a localized value for the key 'Button.left' but a value for 'left' was also specified in the non-localized hash");
|
118
|
-
});
|
132
|
+
});
|
133
|
+
|
134
|
+
test("Multiply string", function() {
|
135
|
+
equals('a'.mult(0), null);
|
136
|
+
equals('a'.mult(1), 'a');
|
137
|
+
equals('a'.mult(2), 'aa');
|
138
|
+
equals('xyz'.mult(1), 'xyz');
|
139
|
+
equals('xyz'.mult(2), 'xyzxyz');
|
140
|
+
});
|
@@ -0,0 +1,66 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
4
|
+
// Portions ©2008-2011 Apple Inc. All rights reserved.
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
|
9
|
+
test("SC.browser.compare()", function() {
|
10
|
+
var browser;
|
11
|
+
|
12
|
+
// Use SC.browser.compare() to determine if the given OS is Mac OS 10.7 "Lion"
|
13
|
+
// like as was/is in use in SC.TextFieldView.
|
14
|
+
equals(SC.browser.compare('10.6.8', '10.7'), -1, "'10.6.8' compared to '10.7' should be -1");
|
15
|
+
equals(SC.browser.compare('10.7', '10.7'), 0, "'10.7' compared to '10.7' should be 0");
|
16
|
+
equals(SC.browser.compare('10.7.1', '10.7'), 0, "'10.7.1' compared to '10.7' should be 0");
|
17
|
+
equals(SC.browser.compare('10.8', '10.7'), 1, "'10.8' compared to '10.7' should be 1");
|
18
|
+
|
19
|
+
equals(SC.browser.compare('10.6.8', 10.7), -1, "'10.6.8' compared to 10.7 should be -1");
|
20
|
+
equals(SC.browser.compare('10.7', 10.7), 0, "'10.7' compared to 10.7 should be 0");
|
21
|
+
equals(SC.browser.compare('10.7.1', 10.7), 0, "'10.7.1' compared to 10.7 should be 0");
|
22
|
+
equals(SC.browser.compare('10.8', 10.7), 1, "'10.8' compared to 10.7 should be 1");
|
23
|
+
|
24
|
+
// Use SC.browser.compare() to determine if the given browser is Firefox 3.5
|
25
|
+
// like as was/is in use in SC.RootResponder.
|
26
|
+
equals(SC.browser.compare('1.8.10', '1.9.1'), -1, "'1.8.10' compared to '1.9.1' should be -1");
|
27
|
+
equals(SC.browser.compare('1.9.0', '1.9.1'), -1, "'1.9.0' compared to '1.9.1' should be -1");
|
28
|
+
equals(SC.browser.compare('1.9', '1.9.1'), 0, "'1.9' compared to '1.9.1' should be 0");
|
29
|
+
equals(SC.browser.compare('1.9.1', '1.9.1'), 0, "'1.9.1' compared to '1.9.1' should be 0");
|
30
|
+
equals(SC.browser.compare('1.10', '1.9.1'), 1, "'1.10' compared to '1.9.1' should be 1");
|
31
|
+
|
32
|
+
equals(SC.browser.compare('1.9.0', 1.9), 0, "'1.9.0' compared to 1.9 should be 0");
|
33
|
+
equals(SC.browser.compare('1.9', 1.9), 0, "'1.9' compared to 1.9 should be 0");
|
34
|
+
equals(SC.browser.compare('1.9.1', 1.9), 0, "'1.9.1' compared to 1.9 should be 0");
|
35
|
+
equals(SC.browser.compare('1.10', 1.9), 1, "'1.10' compared to 1.9 should be 1");
|
36
|
+
|
37
|
+
// Use SC.browser.compare() to determine if the given browser is Safari 5.0.1
|
38
|
+
// like as was/is in use in SC.Event.
|
39
|
+
equals(SC.browser.compare('532.7', '533.7'), -1, "'532.7' compared to '533.7' should be -1");
|
40
|
+
equals(SC.browser.compare('533.6', '533.7'), -1, "'533.6' compared to '533.7' should be -1");
|
41
|
+
equals(SC.browser.compare('533.7', '533.7'), 0, "'533.7' compared to '533.7' should be 0");
|
42
|
+
equals(SC.browser.compare('533', '533.7'), 0, "'533' compared to '533.7' should be 0");
|
43
|
+
equals(SC.browser.compare('533.8', '533.7'), 1, "'533.8' compared to '533.7' should be 1");
|
44
|
+
equals(SC.browser.compare('534.7', '533.7'), 1, "'534.7' compared to '533.7' should be 1");
|
45
|
+
|
46
|
+
equals(SC.browser.compare('532.7', 533.7), -1, "'532.7' compared to 533.7 should be -1");
|
47
|
+
equals(SC.browser.compare('533.6', 533.7), -1, "'533.6' compared to 533.7 should be -1");
|
48
|
+
equals(SC.browser.compare('533.7', 533.7), 0, "'533.7' compared to 533.7 should be 0");
|
49
|
+
equals(SC.browser.compare('533', 533.7), 0, "'533' compared to 533.7 should be 0");
|
50
|
+
equals(SC.browser.compare('533.8', 533.7), 1, "'533.8' compared to 533.7 should be 1");
|
51
|
+
equals(SC.browser.compare('534.7', 533.7), 1, "'534.7' compared to 533.7 should be 1");
|
52
|
+
|
53
|
+
// Use SC.browser.compare() to determine if the given OS is IE7 like as
|
54
|
+
// was/is in use in SC.Pane.
|
55
|
+
equals(SC.browser.compare('6.0', '7.0'), -1, "'6.0' compared to '7.0' should be -1");
|
56
|
+
equals(SC.browser.compare('7.0', '7.0'), 0, "'7.0' compared to '7.0' should be 0");
|
57
|
+
equals(SC.browser.compare('7', '7.0'), 0, "'7' compared to '7.0' should be 0");
|
58
|
+
equals(SC.browser.compare('7.1', '7.0'), 1, "'7.1' compared to '7.0' should be 1");
|
59
|
+
equals(SC.browser.compare('8.0', '7.0'), 1, "'8.0' compared to '7.0' should be 1");
|
60
|
+
|
61
|
+
equals(SC.browser.compare('6.0', 7.0), -1, "'6.0' compared to `7.0 should be -1");
|
62
|
+
equals(SC.browser.compare('7.0', 7.0), 0, "'7.0' compared to 7.0 should be 0");
|
63
|
+
equals(SC.browser.compare('7', 7.0), 0, "'7' compared to 7.0 should be 0");
|
64
|
+
equals(SC.browser.compare('7.1', 7.0), 0, "'7.1' compared to 7.0 should be 0");
|
65
|
+
equals(SC.browser.compare('8.0', 7.0), 1, "'8.0' compared to 7.0 should be 1");
|
66
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
4
|
+
// ©2008-2011 Apple Inc. All rights reserved.
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
// // ========================================================================
|
9
|
+
// SC.Event Tests
|
10
|
+
// ========================================================================
|
11
|
+
(function () {
|
12
|
+
module("SC.Event");
|
13
|
+
|
14
|
+
// WebKit browsers have equal values for keyCode and charCode on keypress event
|
15
|
+
test("commandCodes() : should handle equal keyCode and charCode on keypress", function () {
|
16
|
+
// 115 is also keyCode for F4 button
|
17
|
+
var codes = new SC.Event({ type: 'keypress', keyCode: 115, charCode: 115 }).commandCodes();
|
18
|
+
equals(codes[0], null, 'command');
|
19
|
+
equals(codes[1], 's', 'char');
|
20
|
+
});
|
21
|
+
})();
|
22
|
+
|
@@ -55,27 +55,27 @@ test("Locale.addStrings() : Should be able to add the passed hash of strings to
|
|
55
55
|
//Added the new languages to the existing list of locales
|
56
56
|
SC.Locale.addStrings(newLocales);
|
57
57
|
|
58
|
-
//Result should be true as the new
|
58
|
+
//Result should be true as the new locales added to the list of default locales
|
59
59
|
equals(true, SC.Locale.options().strings.chinese === 'zh' && SC.Locale.options().strings.dutch === 'nl') ;
|
60
60
|
});
|
61
61
|
|
62
62
|
test("Locale.options() : Should provide the registered locales that have not been instantiated", function() {
|
63
63
|
|
64
64
|
//hash of new languages
|
65
|
-
var newLocales = {
|
65
|
+
var newLocales = { jamaican: 'ji', korean: 'ko'};
|
66
66
|
|
67
67
|
//Added the new languages to the existing list of locales
|
68
68
|
SC.Locale.addStrings(newLocales);
|
69
69
|
|
70
|
-
//Options should return the list of registered locales, so checking if the
|
70
|
+
//Options should return the list of registered locales, so checking if the returned object has strings.
|
71
71
|
equals(SC.Locale.options().hasStrings, true) ;
|
72
72
|
|
73
73
|
//Checking the strings with default locales.
|
74
|
-
equals(true, SC.Locale.options().strings.
|
74
|
+
equals(true, SC.Locale.options().strings.jamaican === 'ji' && SC.Locale.options().strings.korean === 'ko') ;
|
75
75
|
});
|
76
76
|
|
77
77
|
test("Locale.normalizeLanguage() : Should provide the two character language code for the passed locale", function() {
|
78
|
-
//If nothing is passed this will
|
78
|
+
//If nothing is passed this will return the default code as 'en'
|
79
79
|
equals(SC.Locale.normalizeLanguage(), 'en') ;
|
80
80
|
|
81
81
|
//If the language is passed as 'English' this will return the code as 'en'
|
@@ -85,17 +85,17 @@ test("Locale.normalizeLanguage() : Should provide the two character language cod
|
|
85
85
|
equals(SC.Locale.normalizeLanguage('ab'), 'ab') ;
|
86
86
|
});
|
87
87
|
|
88
|
-
test("Locale.toString() : Should
|
88
|
+
test("Locale.toString() : Should return the current language set with the guid value", function() {
|
89
89
|
// Creating the new locale by extending an existing Locale object
|
90
90
|
SC.Locale.locales['mx'] = SC.Locale.extend({ _deprecatedLanguageCodes: ['mexican'] }) ;
|
91
91
|
|
92
|
-
//Result should
|
92
|
+
//Result should return the chinese object
|
93
93
|
equals(SC.Locale.locales.mx.currentLocale.isObject, true) ;
|
94
94
|
|
95
95
|
});
|
96
96
|
|
97
|
-
test("Locale.createCurrentLocale() : Should create the
|
98
|
-
//This will match the browser language with the SC
|
97
|
+
test("Locale.createCurrentLocale() : Should create the Locale Object for the language selected", function() {
|
98
|
+
//This will match the browser language with the SC language and create the object accordingly
|
99
99
|
// This test will pass only for the default languages i.e en, fr, de, ja, es, it.
|
100
100
|
equals(true, SC.Locale.createCurrentLocale().language === SC.browser.language) ;
|
101
101
|
|
@@ -123,7 +123,7 @@ test("Locale.define() : Should be able to define a particular type of locale", f
|
|
123
123
|
shortNames: ['C','A','Y','N']
|
124
124
|
});
|
125
125
|
|
126
|
-
//Result should
|
126
|
+
//Result should return the new locale object
|
127
127
|
equals(SC.Locale.locales.xy.isClass, true) ;
|
128
128
|
});
|
129
129
|
|
@@ -135,6 +135,6 @@ test("Locale.extend() : Should make sure important properties of Locale object a
|
|
135
135
|
//Added the new languages to the existing list of locales through the new locale object
|
136
136
|
SC.Locale.locales.mn.addStrings(testLocales);
|
137
137
|
|
138
|
-
//Result should be true as the new
|
138
|
+
//Result should be true as the new locales added to the list of default locales
|
139
139
|
equals(SC.Locale.locales.mn.options().strings.test,'te') ;
|
140
140
|
});
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js
CHANGED
@@ -34,13 +34,13 @@ test("should emit id in tag opts.id", function() {
|
|
34
34
|
|
35
35
|
test("should emit style in tag if opts.styles is defined", function() {
|
36
36
|
context.styles({ alpha: "beta", foo: "bar" }).end();
|
37
|
-
ok(context.get(0).match(/style=\"alpha: beta; foo: bar\"/), '<div> has style="alpha: beta; foo: bar"');
|
37
|
+
ok(context.get(0).match(/style=\"alpha: beta; foo: bar; \"/), '<div> has style="alpha: beta; foo: bar; "');
|
38
38
|
});
|
39
39
|
|
40
40
|
test("should emit style with custom browser attributes", function() {
|
41
41
|
context.styles({ mozColumnCount: '3', webkitColumnCount: '3', oColumnCount: '3', msColumnCount: '3' }).end();
|
42
|
-
ok(context.get(0).match('<div style="-moz-column-count: 3; -webkit-column-count: 3; -o-column-count: 3; -ms-column-count: 3" >'),
|
43
|
-
'<div> has style="-moz-column-count: 3; -webkit-column-count: 3, -o-column-count: 3, -ms-column-count: 3"');
|
42
|
+
ok(context.get(0).match('<div style="-moz-column-count: 3; -webkit-column-count: 3; -o-column-count: 3; -ms-column-count: 3; " >'),
|
43
|
+
'<div> has style="-moz-column-count: 3; -webkit-column-count: 3, -o-column-count: 3, -ms-column-count: 3; "');
|
44
44
|
});
|
45
45
|
|
46
46
|
test("should write arbitrary attrs has in opts", function() {
|
@@ -61,7 +61,7 @@ test("opts.id should override opts.attrs.id", function() {
|
|
61
61
|
|
62
62
|
test("opts.styles should override opts.attrs.style", function() {
|
63
63
|
context.styles({ foo: "foo" }).attr({ style: "bar: bar" }).end();
|
64
|
-
ok(context.get(0).match(/style=\"foo: foo\"/), 'has style="foo: foo"');
|
64
|
+
ok(context.get(0).match(/style=\"foo: foo; \"/), 'has style="foo: foo; "');
|
65
65
|
});
|
66
66
|
|
67
67
|
test("should return receiver if receiver has no prevObject", function() {
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2011 Apple Inc. All rights reserved.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
|
7
|
+
/*global module test equals context */
|
8
|
+
module("Render Context--Escaping HTML");
|
9
|
+
test("Escaping HTML", function() {
|
10
|
+
var input = "<p>HTML!</p><script>alert('hi');<" + "/script> & Hello, World!";
|
11
|
+
var output = SC.RenderContext.escapeHTML(input);
|
12
|
+
|
13
|
+
equals(output, '<p>HTML!</p><script>alert(\'hi\');</script> & Hello, World!', "Properly escapes HTML");
|
14
|
+
});
|
15
|
+
|
16
|
+
test("Tests stolen from Prototype.js", function() {
|
17
|
+
var largeTextEscaped = '<span>test</span>',
|
18
|
+
largeTextUnescaped = '<span>test</span>';
|
19
|
+
for (var i = 0; i < 2048; i++) {
|
20
|
+
largeTextEscaped += ' ABC';
|
21
|
+
largeTextUnescaped += ' ABC';
|
22
|
+
}
|
23
|
+
|
24
|
+
|
25
|
+
var tests = [
|
26
|
+
'foo bar', 'foo bar',
|
27
|
+
'foo <span>bar</span>', 'foo <span>bar</span>',
|
28
|
+
'foo ß bar', 'foo ß bar',
|
29
|
+
'ウィメンズ2007\nクルーズコレクション', 'ウィメンズ2007\nクルーズコレクション',
|
30
|
+
'a<a href="blah">blub</a>b<span><div></div></span>cdef<strong>!!!!</strong>g',
|
31
|
+
'a<a href="blah">blub</a>b<span><div></div></span>cdef<strong>!!!!</strong>g',
|
32
|
+
'1\n2', '1\n2',
|
33
|
+
|
34
|
+
largeTextUnescaped, largeTextEscaped
|
35
|
+
];
|
36
|
+
|
37
|
+
for (var idx = 0; idx < tests.length; idx++) {
|
38
|
+
// some of these strings are REALLY LONG so we don't want to write them out
|
39
|
+
ok(SC.RenderContext.escapeHTML(tests[idx++]) === tests[idx]);
|
40
|
+
}
|
41
|
+
});
|