sproutcore 1.5.0.pre.3 → 1.5.0.pre.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rspec +1 -0
- data/CHANGELOG +42 -0
- data/README.txt +25 -0
- data/VERSION.yml +1 -1
- data/bin/sc-build +1 -1
- data/bin/sc-build-number +1 -1
- data/bin/sc-docs +1 -1
- data/bin/sc-gen +1 -1
- data/bin/sc-init +1 -1
- data/bin/sc-manifest +1 -1
- data/bin/sc-server +1 -1
- data/bin/sproutcore +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +20 -1
- data/lib/frameworks/sproutcore/Buildfile +12 -9
- data/lib/frameworks/sproutcore/CHANGELOG.md +48 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/README +2 -9
- data/lib/frameworks/sproutcore/apps/greenhouse/TODO +11 -27
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +3 -10
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +4 -31
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +5 -4
- data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +3 -3
- data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
- data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +31 -14
- data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +2 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +27 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/list_item.js +1 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/plist_item.js +20 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/theme.js +25 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +161 -24
- data/lib/frameworks/sproutcore/apps/greenhouse/views/tear_off_picker.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +37 -25
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +135 -26
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/controller.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/controllers/object.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/ext/run_loop.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/selection_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/main.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/panes/pane.js +215 -505
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/observable_protocol.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/protocols/sparse_array_delegate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/core.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/resources/view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/application.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/browser.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/core_query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/cursor.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +210 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/event.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/platform.js +31 -5
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/render_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/root_responder.js +83 -110
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/selection_set.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/timer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/array_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/enum_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/null_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/selection_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/array/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/empty_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/multiple_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/controllers/object/single_enumerable_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/mixins/string.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/core_query/within.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/begin.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/element.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/end.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/get.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_attr.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_basic.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_className.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/helpers_style.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/join.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/push_text.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/tag.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/render_context/update.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeKeyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMainPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/makeMenuPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/root_responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/root_responder/targetForAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/add.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/copy.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/indexSetForSource.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/isEqual.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/selection_set/remove.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invalidate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/invokeLater.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/isPaused.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/performAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/timer/schedule.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/normalizeURL.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/append_remove.js +107 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/firstResponder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/keyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/layout.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/pane/sendEvent.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/checkbox_support.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/text_field_support.js +73 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js +295 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/animation.js +19 -18
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/build_children.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/clippingFrame.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertFrames.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/convertLayouts.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createChildViews.js +18 -15
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/createLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/destroyLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/didAppendToDocument.js +11 -8
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/findLayerInParentLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/insertBefore.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisible.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/isVisibleInWindow.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/layoutChildViews.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +640 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/parentViewDidChange.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/prepareContext.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/removeChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +125 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/render_delegate_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/replaceChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/theme.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/updateLayerLocation.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{amber → core_foundation}/tests/views/view/viewDidResize.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/checkbox_support.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +99 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/text_field_support.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1150 -0
- data/lib/frameworks/sproutcore/frameworks/{amber/views → core_foundation/views/view}/layout_style.js +93 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +489 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +362 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +1280 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +27 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +13 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +183 -71
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -46
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +25 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +139 -21
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/{parentless.js → data_store.js} +62 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +51 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → datetime/resources}/strings.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/system/datetime.js +5 -37
- data/lib/frameworks/sproutcore/frameworks/{foundation → datetime}/tests/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/designer/views/designer_drop_target.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +71 -70
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +10 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +33 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +25 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +102 -92
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +22 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +38 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +42 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +513 -230
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/README.md +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +34 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/polymorphic_single_attribute.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphic/single.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +27 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +200 -167
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +52 -137
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +7 -11
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions.js +138 -0
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1338 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +32 -26
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +162 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +123 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +12 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +50 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +163 -333
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +58 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +15 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +31 -143
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +71 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/table/views/table.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +5 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +8 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +2 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +2 -2
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +62 -62
- data/lib/gen/html_app/Buildfile +36 -0
- data/lib/gen/html_app/README +1 -0
- data/lib/gen/html_app/USAGE +15 -0
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +14 -0
- 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 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +1 -0
- data/lib/gen/html_project/Buildfile +45 -0
- data/lib/gen/html_project/INIT +3 -0
- data/lib/gen/html_project/README +1 -0
- data/lib/gen/html_project/USAGE +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +8 -0
- data/lib/gen/html_project/templates/@filename@/README +7 -0
- data/lib/sproutcore/builders/handlebars.rb +30 -0
- data/lib/sproutcore/builders.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +3 -3
- data/lib/sproutcore/tools/init.rb +25 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/handlebars_spec.rb +39 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/template.handlebars +5 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/templates/demo.handlebars +4 -0
- data/spec/lib/builders/handlebars_spec.rb +29 -0
- data/vendor/chance/lib/chance/imagers/data_url.rb +20 -7
- data/vendor/chance/lib/chance/instance.rb +4 -1
- data/vendor/chance/lib/chance/parser.rb +31 -31
- data/vendor/chance/lib/chance/slicing.rb +38 -8
- metadata +195 -225
- data/lib/frameworks/sproutcore/frameworks/amber/system/device.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +0 -174
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/main_pane.js +0 -31
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +0 -267
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutDidChange.js +0 -149
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/layoutStyle.js +0 -602
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render.js +0 -115
- data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/amber/views/view.js +0 -4003
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +0 -105
|
@@ -22,6 +22,34 @@ SC.BENCHMARK_OBJECTS = NO;
|
|
|
22
22
|
// definition because SC.Object is copied frequently and we want to keep the
|
|
23
23
|
// number of class methods to a minimum.
|
|
24
24
|
|
|
25
|
+
SC._detect_base = function _detect_base(func, parent, name) {
|
|
26
|
+
return function invoke_superclass_method() {
|
|
27
|
+
var base = parent[name], args;
|
|
28
|
+
|
|
29
|
+
if (!base) {
|
|
30
|
+
throw new Error("No '" + name + "' method was found on the superclass");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// NOTE: It is possible to cache the base, so that the first
|
|
34
|
+
// call to sc_super will avoid doing the lookup again. However,
|
|
35
|
+
// since the cost of the extra method dispatch is low and is
|
|
36
|
+
// only incurred on sc_super, but also creates another possible
|
|
37
|
+
// weird edge-case (when a class is enhanced after first used),
|
|
38
|
+
// we'll leave it off for now unless profiling demonstrates that
|
|
39
|
+
// it's a hotspot.
|
|
40
|
+
//if(base && func === base) { func.base = function() {}; }
|
|
41
|
+
//else { func.base = base; }
|
|
42
|
+
|
|
43
|
+
if(func.isEnhancement) {
|
|
44
|
+
args = Array.prototype.slice.call(arguments, 1);
|
|
45
|
+
} else {
|
|
46
|
+
args = arguments;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return base.apply(this, args);
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
|
|
25
53
|
/** @private
|
|
26
54
|
Augments a base object by copying the properties from the extended hash.
|
|
27
55
|
In addition to simply copying properties, this method also performs a
|
|
@@ -36,8 +64,8 @@ SC.BENCHMARK_OBJECTS = NO;
|
|
|
36
64
|
@param {Hash} extension
|
|
37
65
|
@returns {Hash} base hash
|
|
38
66
|
*/
|
|
39
|
-
SC._object_extend = function _object_extend(base, ext) {
|
|
40
|
-
if (!ext) throw "SC.Object.extend expects a non-null value. Did you forget to 'sc_require' something? Or were you passing a Protocol to extend() as if it were a mixin?";
|
|
67
|
+
SC._object_extend = function _object_extend(base, ext, proto) {
|
|
68
|
+
if (!ext) { throw "SC.Object.extend expects a non-null value. Did you forget to 'sc_require' something? Or were you passing a Protocol to extend() as if it were a mixin?"; }
|
|
41
69
|
|
|
42
70
|
// set _kvo_cloned for later use
|
|
43
71
|
base._kvo_cloned = null;
|
|
@@ -105,7 +133,8 @@ SC._object_extend = function _object_extend(base, ext) {
|
|
|
105
133
|
// add super to funcs. Be sure not to set the base of a func to
|
|
106
134
|
// itself to avoid infinite loops.
|
|
107
135
|
if (!value.superclass && (value !== (cur=base[key]))) {
|
|
108
|
-
value.superclass =
|
|
136
|
+
value.superclass = cur || K;
|
|
137
|
+
value.base = proto ? SC._detect_base(value, proto, key) : cur || K;
|
|
109
138
|
}
|
|
110
139
|
|
|
111
140
|
// handle regular observers
|
|
@@ -147,6 +176,10 @@ SC._object_extend = function _object_extend(base, ext) {
|
|
|
147
176
|
}
|
|
148
177
|
outlets[outlets.length] = key ;
|
|
149
178
|
}
|
|
179
|
+
|
|
180
|
+
if (value.isEnhancement) {
|
|
181
|
+
value = SC._enhance(base[key], value);
|
|
182
|
+
}
|
|
150
183
|
}
|
|
151
184
|
|
|
152
185
|
// copy property
|
|
@@ -176,6 +209,16 @@ SC._object_extend = function _object_extend(base, ext) {
|
|
|
176
209
|
return base ;
|
|
177
210
|
} ;
|
|
178
211
|
|
|
212
|
+
SC._enhance = function(originalFunction, enhancement) {
|
|
213
|
+
return function() {
|
|
214
|
+
var args = Array.prototype.slice.call(arguments, 0);
|
|
215
|
+
var self = this;
|
|
216
|
+
|
|
217
|
+
args.unshift(function() { return originalFunction.apply(self, arguments); });
|
|
218
|
+
return enhancement.apply(this, args);
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
179
222
|
/** @class
|
|
180
223
|
|
|
181
224
|
Root object for the SproutCore framework. SC.Object is the root class for
|
|
@@ -202,7 +245,10 @@ SC._object_extend = function _object_extend(base, ext) {
|
|
|
202
245
|
@extends SC.Observable
|
|
203
246
|
@since SproutCore 1.0
|
|
204
247
|
*/
|
|
205
|
-
SC.Object = function(props) {
|
|
248
|
+
SC.Object = function(props) {
|
|
249
|
+
this.__sc_super__ = SC.Object.prototype;
|
|
250
|
+
return this._object_init(props);
|
|
251
|
+
};
|
|
206
252
|
|
|
207
253
|
SC.mixin(SC.Object, /** @scope SC.Object */ {
|
|
208
254
|
|
|
@@ -256,7 +302,10 @@ SC.mixin(SC.Object, /** @scope SC.Object */ {
|
|
|
256
302
|
|
|
257
303
|
// build a new constructor and copy class methods. Do this before
|
|
258
304
|
// adding any other properties so they are not overwritten by the copy.
|
|
259
|
-
var prop, ret = function(props) {
|
|
305
|
+
var prop, ret = function(props) {
|
|
306
|
+
this.__sc_super__ = ret.prototype;
|
|
307
|
+
return this._object_init(props);
|
|
308
|
+
} ;
|
|
260
309
|
for(prop in this) {
|
|
261
310
|
if (!this.hasOwnProperty(prop)) continue ;
|
|
262
311
|
ret[prop] = this[prop];
|
|
@@ -267,6 +316,7 @@ SC.mixin(SC.Object, /** @scope SC.Object */ {
|
|
|
267
316
|
|
|
268
317
|
// now setup superclass, guid
|
|
269
318
|
ret.superclass = this ;
|
|
319
|
+
ret.__sc_super__ = this.prototype;
|
|
270
320
|
SC.generateGuid(ret, "sc"); // setup guid
|
|
271
321
|
|
|
272
322
|
ret.subclasses = SC.Set.create();
|
|
@@ -275,7 +325,7 @@ SC.mixin(SC.Object, /** @scope SC.Object */ {
|
|
|
275
325
|
// setup new prototype and add properties to it
|
|
276
326
|
var base = (ret.prototype = SC.beget(this.prototype));
|
|
277
327
|
var idx, len = arguments.length;
|
|
278
|
-
for(idx=0;idx<len;idx++) SC._object_extend(base, arguments[idx]) ;
|
|
328
|
+
for(idx=0;idx<len;idx++) { SC._object_extend(base, arguments[idx], ret.__sc_super__) ; }
|
|
279
329
|
base.constructor = ret; // save constructor
|
|
280
330
|
|
|
281
331
|
if (bench) SC.Benchmark.end('SC.Object.extend') ;
|
|
@@ -283,7 +333,7 @@ SC.mixin(SC.Object, /** @scope SC.Object */ {
|
|
|
283
333
|
},
|
|
284
334
|
|
|
285
335
|
reopen: function(props) {
|
|
286
|
-
return SC._object_extend(this.prototype, props);
|
|
336
|
+
return SC._object_extend(this.prototype, props, this.__sc_super__);
|
|
287
337
|
},
|
|
288
338
|
|
|
289
339
|
/**
|
|
@@ -436,7 +486,7 @@ SC.Object.prototype = {
|
|
|
436
486
|
_object_init: function(extensions) {
|
|
437
487
|
// apply any new properties
|
|
438
488
|
var idx, len = (extensions) ? extensions.length : 0;
|
|
439
|
-
for(idx=0;idx<len;idx++) SC._object_extend(this, extensions[idx]) ;
|
|
489
|
+
for(idx=0;idx<len;idx++) { SC._object_extend(this, extensions[idx], this.__sc_super__) ; }
|
|
440
490
|
SC.generateGuid(this, "sc") ; // add guid
|
|
441
491
|
this.init() ; // call real init
|
|
442
492
|
|
|
@@ -50,11 +50,10 @@ test("SC.isArray" ,function(){
|
|
|
50
50
|
var numarray = [1,2,3],
|
|
51
51
|
number = 23,
|
|
52
52
|
strarray = ["Hello", "Hi"],
|
|
53
|
-
string = "Hello"
|
|
53
|
+
string = "Hello",
|
|
54
54
|
object = {},
|
|
55
55
|
length = {length: 12},
|
|
56
|
-
fn = function() {}
|
|
57
|
-
nodelist = document.getElementsByTagName("body")
|
|
56
|
+
fn = function() {};
|
|
58
57
|
|
|
59
58
|
equals( SC.isArray(numarray), true, "[1,2,3]" );
|
|
60
59
|
equals( SC.isArray(number), false, "23" );
|
|
@@ -62,7 +61,11 @@ test("SC.isArray" ,function(){
|
|
|
62
61
|
equals( SC.isArray(string), false, '"Hello"' );
|
|
63
62
|
equals( SC.isArray(object), false, "{}" );
|
|
64
63
|
equals( SC.isArray(length), true, "{length: 12}" );
|
|
65
|
-
equals( SC.isArray(window), false, "window" )
|
|
66
|
-
equals( SC.isArray(fn), false, "function() {}" )
|
|
67
|
-
|
|
64
|
+
equals( SC.isArray(window), false, "window" );
|
|
65
|
+
equals( SC.isArray(fn), false, "function() {}" );
|
|
66
|
+
|
|
67
|
+
if (window.document) {
|
|
68
|
+
var nodelist = document.getElementsByTagName("body")
|
|
69
|
+
equals( SC.isArray(nodelist), true, "NodeList" );
|
|
70
|
+
}
|
|
68
71
|
});
|
|
@@ -27,4 +27,18 @@ test("should return an array for the object passed ",function(){
|
|
|
27
27
|
equals(SC.isArray(ret),true) ;
|
|
28
28
|
ret = SC.makeArray(arrayA);
|
|
29
29
|
equals(SC.isArray(ret),true) ;
|
|
30
|
-
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test("isArray should return true for empty arguments", function() {
|
|
33
|
+
var func = function(foo, bar) {
|
|
34
|
+
ok(SC.isArray(arguments), "arguments is an array");
|
|
35
|
+
};
|
|
36
|
+
func();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test("SC.$A should return an empty array if passed an empty arguments object", function() {
|
|
40
|
+
var func = function(foo, bar) {
|
|
41
|
+
equals(SC.$A(arguments).length, 0, "returns an empty array");
|
|
42
|
+
};
|
|
43
|
+
func();
|
|
44
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module("chained observers");
|
|
2
|
+
|
|
3
|
+
test("chained observers on enumerable properties are triggered when any item changes", function() {
|
|
4
|
+
var momma = SC.Object.create({
|
|
5
|
+
children: [ SC.Object.create({ name: "Bartholomew" }), SC.Object.create({ name: "Agnes" }), SC.Object.create({ name: "Dan" }) ]
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
var family = SC.Object.create({
|
|
9
|
+
momma: momma
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
var observerFiredCount = 0;
|
|
13
|
+
family.addObserver('momma.children.@each.name', this, function() {
|
|
14
|
+
observerFiredCount++;
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
SC.run(function() { family.getPath('momma.children').objectAt(0).set('name', 'Teddy'); });
|
|
18
|
+
|
|
19
|
+
equals(observerFiredCount, 1, "observer fired after changing a child item's name");
|
|
20
|
+
|
|
21
|
+
//observerFiredCount = 0;
|
|
22
|
+
//SC.run(function() { family.getPath('momma.children').pushObject(SC.Object.create({ name: "Nancy" })); });
|
|
23
|
+
|
|
24
|
+
//equals(observerFiredCount, 1, "observer fired after adding a new item");
|
|
25
|
+
|
|
26
|
+
//observerFiredCount = 0;
|
|
27
|
+
//SC.run(function() { family.getPath('momma.children').objectAt(3).set('name', "Herbert"); });
|
|
28
|
+
|
|
29
|
+
//equals(observerFiredCount, 1, "observer fired after changing property on new object");
|
|
30
|
+
});
|
|
31
|
+
|
|
@@ -427,6 +427,24 @@ test('setting one of two computed properties that depend on a third property sho
|
|
|
427
427
|
equals(object.get('isOn'), NO, 'object.isOn should be NO');
|
|
428
428
|
});
|
|
429
429
|
|
|
430
|
+
test("dependent keys should be able to be specified as property paths", function() {
|
|
431
|
+
var depObj = SC.Object.create({
|
|
432
|
+
menu: SC.Object.create({
|
|
433
|
+
price: 5
|
|
434
|
+
}),
|
|
435
|
+
|
|
436
|
+
menuPrice: function() {
|
|
437
|
+
return this.getPath('menu.price');
|
|
438
|
+
}.property('menu.price').cacheable()
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
equals(depObj.get('menuPrice'), 5, "precond - initial value returns 5");
|
|
442
|
+
|
|
443
|
+
depObj.setPath('menu.price', 6);
|
|
444
|
+
|
|
445
|
+
equals(depObj.get('menuPrice'), 6, "cache is properly invalidated after nested property changes");
|
|
446
|
+
});
|
|
447
|
+
|
|
430
448
|
// ..........................................................
|
|
431
449
|
// OBSERVABLE OBJECTS
|
|
432
450
|
//
|
|
@@ -9,169 +9,57 @@
|
|
|
9
9
|
// ie. setting the actual console.log = null means setting up
|
|
10
10
|
// and tearing down no longer work properly.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
return {
|
|
14
|
-
log: function() { return true; },
|
|
15
|
-
alert: function() { return true; },
|
|
16
|
-
debug: function() { return true; },
|
|
17
|
-
dir: function() { return true; },
|
|
18
|
-
dirxml: function() { return true; },
|
|
19
|
-
error: function() { return true; },
|
|
20
|
-
group: function() { return true; },
|
|
21
|
-
groupEnd: function() { return true; },
|
|
22
|
-
info: function() { return true; },
|
|
23
|
-
profile: function() { return true; },
|
|
24
|
-
profileEnd: function() { return true; },
|
|
25
|
-
time: function() { return true; },
|
|
26
|
-
timeEnd: function() { return true; },
|
|
27
|
-
trace: function() { return true; },
|
|
28
|
-
warn: function() { return true; }
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
module("SC.Logger", {
|
|
33
|
-
setup: function() {
|
|
34
|
-
SC.Logger.set('reporter', testConsole());
|
|
35
|
-
|
|
36
|
-
SC.Logger.debugEnabled = true;
|
|
37
|
-
SC.Logger.format = true;
|
|
38
|
-
SC.Logger.fallBackOnLog = true;
|
|
39
|
-
SC.Logger.fallBackOnAlert = false;
|
|
40
|
-
},
|
|
41
|
-
teardown: function() {
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test("exists", function() {
|
|
46
|
-
equals(SC.Logger.get('exists'), true, "Reporter does exist check");
|
|
47
|
-
|
|
48
|
-
SC.Logger.set('reporter', null);
|
|
49
|
-
equals(SC.Logger.get('exists'), false, "Reporter does not exist check");
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
test("log", function() {
|
|
53
|
-
equals(SC.Logger.log("test"), true, "Function is defined" );
|
|
54
|
-
|
|
55
|
-
var reporter = SC.Logger.get('reporter');
|
|
56
|
-
reporter.log = null;
|
|
57
|
-
equals(SC.Logger.log("test"), false, "Function is null");
|
|
58
|
-
|
|
59
|
-
SC.Logger.fallBackOnAlert = true;
|
|
60
|
-
equals(SC.Logger.log("test"), true, "Function is null -- fallBackOnAlert true");
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
test("debug", function() {
|
|
64
|
-
equals(SC.Logger.debug("Debug"), true, "Function is defined");
|
|
65
|
-
|
|
66
|
-
SC.Logger.get('reporter').debug = null;
|
|
67
|
-
equals(SC.Logger.debug("Debug"), true, "Function is null -- fallBackOnLog true");
|
|
68
|
-
|
|
69
|
-
SC.Logger.fallBackOnLog = false;
|
|
70
|
-
equals(SC.Logger.debug("Debug"), false, "Function is null -- fallBackOnLog false");
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
test("dir", function() {
|
|
74
|
-
equals(SC.Logger.dir({test:"string"}), true, "Function is defined");
|
|
75
|
-
|
|
76
|
-
SC.Logger.get('reporter').dir = null;
|
|
77
|
-
equals(SC.Logger.dir({test:"string"}), true, "Function is null -- fallBackOnLog true");
|
|
78
|
-
|
|
79
|
-
SC.Logger.fallBackOnLog = false;
|
|
80
|
-
equals(SC.Logger.dir({test:"string"}), false, "Function is null -- fallBackOnLog false");
|
|
81
|
-
});
|
|
12
|
+
module("SC.Logger");
|
|
82
13
|
|
|
83
|
-
test("
|
|
84
|
-
|
|
14
|
+
test("addReporter", function() {
|
|
15
|
+
var reporter = {
|
|
16
|
+
log: function() { SC.Logger.set('hasBeenCalled', YES); }
|
|
17
|
+
};
|
|
85
18
|
|
|
86
|
-
SC.Logger.
|
|
87
|
-
|
|
19
|
+
SC.Logger.set('hasBeenCalled', NO);
|
|
20
|
+
SC.Logger.addReporter(reporter);
|
|
21
|
+
SC.Logger.log();
|
|
88
22
|
|
|
89
|
-
SC.Logger.
|
|
90
|
-
|
|
23
|
+
ok(SC.Logger.get('reporters').indexOf(reporter) > -1, "Reporter was added to reporters array");
|
|
24
|
+
ok(SC.Logger.get('hasBeenCalled'), "Function as called when invoked on SC.Logger");
|
|
25
|
+
delete SC.Logger.hasBeenCalled;
|
|
91
26
|
});
|
|
92
27
|
|
|
93
|
-
test("
|
|
94
|
-
|
|
28
|
+
test("clearReporters", function() {
|
|
29
|
+
var reporter = {
|
|
30
|
+
log: function() { SC.Logger.set('hasBeenCalled', YES); }
|
|
31
|
+
};
|
|
95
32
|
|
|
96
|
-
SC.Logger.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
SC.Logger.fallBackOnLog = false;
|
|
100
|
-
equals(SC.Logger.error("Error"), false, "Function is null -- fallBackOnLog false");
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
test("group", function() {
|
|
104
|
-
equals(SC.Logger.group("mygroup"), true, "Function is defined");
|
|
33
|
+
SC.Logger.set('hasBeenCalled', NO);
|
|
34
|
+
SC.Logger.addReporter(reporter);
|
|
105
35
|
|
|
106
|
-
SC.Logger.get('
|
|
107
|
-
equals(SC.Logger.group("mygroup"), false, "Function is null");
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
test("groupEnd", function() {
|
|
111
|
-
equals(SC.Logger.groupEnd("mygroup"), true, "Function is defined");
|
|
36
|
+
ok(SC.Logger.get('reporters').indexOf(reporter) > -1, "precond - Reporter was added to reporters array");
|
|
112
37
|
|
|
113
|
-
SC.Logger.
|
|
114
|
-
equals(SC.Logger.groupEnd("mygroup"), false, "Function is null");
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
test("info", function() {
|
|
118
|
-
equals(SC.Logger.info("Info"), true, "Function is defined");
|
|
38
|
+
SC.Logger.clearReporters(YES);
|
|
119
39
|
|
|
120
|
-
SC.Logger.get('
|
|
121
|
-
equals(SC.Logger.info("Info"), true, "Function is null -- fallBackOnLog true");
|
|
122
|
-
|
|
123
|
-
SC.Logger.fallBackOnLog = false;
|
|
124
|
-
equals(SC.Logger.info("Info"), false, "Function is null -- fallBackOnLog false");
|
|
40
|
+
ok(SC.Logger.get('reporters').indexOf(reporter) === -1, "Reporter was removed from reporters array");
|
|
125
41
|
});
|
|
126
42
|
|
|
127
|
-
test("
|
|
128
|
-
equals(SC.Logger.
|
|
129
|
-
|
|
130
|
-
SC.Logger.get('reporter').profile = null;
|
|
131
|
-
equals(SC.Logger.profile(), false, "Function is null");
|
|
43
|
+
test("log", function() {
|
|
44
|
+
equals(SC.Logger.log("test"), SC.Logger, "Function is defined and returns SC.Logger");
|
|
132
45
|
});
|
|
133
46
|
|
|
134
|
-
test("
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
SC.Logger.get('reporter').profileEnd = null;
|
|
138
|
-
equals(SC.Logger.profileEnd(), false, "Function is null");
|
|
47
|
+
test("debug", function() {
|
|
48
|
+
ok(SC.Logger.debug("Debug"), SC.Logger, "Function is defined and returns SC.Logger");
|
|
139
49
|
});
|
|
140
50
|
|
|
141
|
-
test("
|
|
142
|
-
equals(SC.Logger.
|
|
143
|
-
|
|
144
|
-
SC.Logger.get('reporter').time = null;
|
|
145
|
-
equals(SC.Logger.time('mytime'), false, "Function is null");
|
|
51
|
+
test("dir", function() {
|
|
52
|
+
equals(SC.Logger.dir({test:"string"}), SC.Logger, "Function is defined and returns SC.Logger");
|
|
146
53
|
});
|
|
147
54
|
|
|
148
|
-
test("
|
|
149
|
-
equals(SC.Logger.
|
|
150
|
-
|
|
151
|
-
SC.Logger.get('reporter').timeEnd = null;
|
|
152
|
-
equals(SC.Logger.timeEnd('mytime'), false, "Function is null");
|
|
55
|
+
test("error", function() {
|
|
56
|
+
equals(SC.Logger.error("Error"), SC.Logger, "Function is defined and returns SC.Logger");
|
|
153
57
|
});
|
|
154
58
|
|
|
155
|
-
test("
|
|
156
|
-
equals(SC.Logger.
|
|
157
|
-
|
|
158
|
-
SC.Logger.get('reporter').trace = null;
|
|
159
|
-
equals(SC.Logger.trace(), false, "Function is null");
|
|
59
|
+
test("info", function() {
|
|
60
|
+
equals(SC.Logger.info("Info"), SC.Logger, "Function is defined and returns SC.Logger");
|
|
160
61
|
});
|
|
161
62
|
|
|
162
63
|
test("warn", function() {
|
|
163
|
-
equals(SC.Logger.warn("Warn"),
|
|
164
|
-
|
|
165
|
-
SC.Logger.get('reporter').warn = null;
|
|
166
|
-
equals(SC.Logger.warn("Warn"), true, "Function is null -- fallBackOnLog true");
|
|
167
|
-
|
|
168
|
-
SC.Logger.fallBackOnLog = false;
|
|
169
|
-
equals(SC.Logger.warn("Warn"), false, "Function is null -- fallBackOnLog false");
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
test("_argumentsToString", function() {
|
|
173
|
-
equals(SC.Logger._argumentsToString.apply(SC.Logger, ["test", "test2"]), "test" + SC.LOGGER_LOG_DELIMITER + "test2", "Formatting using default delimiter");
|
|
174
|
-
|
|
175
|
-
SC.LOGGER_LOG_DELIMITER = "|";
|
|
176
|
-
equals(SC.Logger._argumentsToString.apply(SC.Logger, ["test", "test2"]), "test|test2", "Formatting using custom delimiter");
|
|
64
|
+
equals(SC.Logger.warn("Warn"), SC.Logger, "Function is defined and returns SC.Logger");
|
|
177
65
|
});
|
data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
(function(){
|
|
2
|
+
|
|
3
|
+
var klass;
|
|
4
|
+
|
|
5
|
+
module("SC.Object Concatenated Properties", {
|
|
6
|
+
setup: function(){
|
|
7
|
+
klass = SC.Object.extend({
|
|
8
|
+
concatenatedProperties: ['values'],
|
|
9
|
+
values: ['a', 'b', 'c']
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test("concatenates instances", function() {
|
|
15
|
+
var obj = klass.create({
|
|
16
|
+
values: ['d', 'e', 'f']
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var values = obj.get('values'),
|
|
20
|
+
expected = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
21
|
+
ok(values.isEqual(expected), "should concatenate values property (expected: %@, got: %@)".fmt(expected, values));
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test("concatenates subclasses", function() {
|
|
25
|
+
var subKlass = klass.extend({
|
|
26
|
+
values: ['d', 'e', 'f']
|
|
27
|
+
});
|
|
28
|
+
var obj = subKlass.create();
|
|
29
|
+
|
|
30
|
+
var values = obj.get('values'),
|
|
31
|
+
expected = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
32
|
+
ok(values.isEqual(expected), "should concatenate values property (expected: %@, got: %@)".fmt(expected, values));
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("concatenates reopen", function() {
|
|
36
|
+
klass.reopen({
|
|
37
|
+
values: ['d', 'e', 'f']
|
|
38
|
+
});
|
|
39
|
+
var obj = klass.create();
|
|
40
|
+
|
|
41
|
+
var values = obj.get('values'),
|
|
42
|
+
expected = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
43
|
+
ok(values.isEqual(expected), "should concatenate values property (expected: %@, got: %@)".fmt(expected, values));
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test("concatenates mixin", function() {
|
|
47
|
+
var mixin = {
|
|
48
|
+
values: ['d', 'e']
|
|
49
|
+
};
|
|
50
|
+
var subKlass = klass.extend(mixin, {
|
|
51
|
+
values: ['f']
|
|
52
|
+
});
|
|
53
|
+
var obj = subKlass.create();
|
|
54
|
+
|
|
55
|
+
var values = obj.get('values'),
|
|
56
|
+
expected = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
57
|
+
ok(values.isEqual(expected), "should concatenate values property (expected: %@, got: %@)".fmt(expected, values));
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test("concatenates reopen, subclass, and instance", function() {
|
|
61
|
+
klass.reopen({ values: ['d'] });
|
|
62
|
+
var subKlass = klass.extend({ values: ['e'] });
|
|
63
|
+
var obj = subKlass.create({ values: ['f'] });
|
|
64
|
+
|
|
65
|
+
var values = obj.get('values'),
|
|
66
|
+
expected = ['a', 'b', 'c', 'd', 'e', 'f'];
|
|
67
|
+
ok(values.isEqual(expected), "should concatenate values property (expected: %@, got: %@)".fmt(expected, values));
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
})();
|