sproutcore 1.5.0.pre.3 → 1.5.0.pre.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
})();
|