rhodes 2.2.6 → 2.3.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +20 -0
- data/README.md +46 -0
- data/Rakefile +85 -80
- data/bin/rhodes +2 -2
- data/bin/rhogen +1 -1
- data/doc/application.txt +277 -0
- data/doc/bb-css.txt +209 -0
- data/doc/build.txt +785 -0
- data/doc/configuration.txt +236 -0
- data/doc/connect-to-web-services.txt +282 -0
- data/doc/contributing.txt +64 -0
- data/doc/css-framework.txt +144 -0
- data/doc/device-caps.txt +1152 -0
- data/doc/extensions.txt +528 -0
- data/doc/files.txt +4 -0
- data/doc/generator.txt +141 -0
- data/doc/install.txt +35 -0
- data/doc/introduction.txt +88 -0
- data/doc/rhom.txt +826 -0
- data/doc/standard-css.txt +392 -0
- data/doc/synchronization.txt +542 -0
- data/doc/test-log-debug.txt +148 -0
- data/doc/tutorial.txt +136 -0
- data/doc/ui.txt +766 -0
- data/installer/EnvVarUpdate.nsh +328 -0
- data/installer/README.html +81 -0
- data/installer/RHOSYNC-LICENSE.txt +675 -0
- data/installer/icon.ico +0 -0
- data/installer/instant-rhodes.nsi +427 -0
- data/lib/build/jake.rb +15 -1
- data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/imageprovider.cpp +1 -1
- data/lib/extensions/barcode/ext/barcode/platform/bb/Barcode6.files +45 -0
- data/lib/extensions/barcode/ext/barcode/platform/bb/Rakefile +6 -0
- data/lib/extensions/barcode/ext/barcode/platform/bb/barcode6.jdp +92 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +7 -4
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +2 -1
- data/lib/extensions/barcode/ext/barcode/platform/wm/src/wm_imageprovider.cpp +1 -1
- data/lib/extensions/digest-sha1/ext/build.bat +1 -0
- data/lib/extensions/digest-sha1/ext/digest-sha1.vcproj +335 -0
- data/lib/extensions/esri/ext/build +17 -0
- data/lib/extensions/esri/ext/build.bat +29 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/ESRIViewFactory.h +7 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/ESRIViewFactory.mm +58 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/ESRIViewFactoryRegister.mm +22 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/ESRIViewManager.h +21 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/ESRIViewManager.mm +32 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/InitESRI.c +5 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/MapViewControllerESRI.h +143 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/MapViewControllerESRI.m +919 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/ESRI.xcodeproj/project.pbxproj +320 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/ESRI_Prefix.pch +7 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Rakefile +76 -0
- data/lib/extensions/esri/ext.yml +3 -0
- data/lib/extensions/net-http/monitor.rb +265 -0
- data/lib/extensions/net-http/net/ftp.rb +981 -0
- data/lib/extensions/net-http/thread.rb +367 -0
- data/lib/extensions/rhocgi/cgi.rb +16 -0
- data/lib/extensions/rhospec/rhospec.rb +118 -0
- data/lib/framework/base64.rb +91 -0
- data/lib/framework/builtinME.rb +13 -10
- data/lib/framework/ostruct.rb +145 -0
- data/lib/framework/res/back_btn.wm.png +0 -0
- data/lib/framework/res/blue_pushpin.wm.png +0 -0
- data/lib/framework/res/blue_pushpin_small.wm.png +0 -0
- data/lib/framework/res/callout.wm.png +0 -0
- data/lib/framework/res/callout_link.wm.png +0 -0
- data/lib/framework/res/forward_btn.wm.png +0 -0
- data/lib/framework/res/home_btn.wm.png +0 -0
- data/lib/framework/res/options_btn.wm.png +0 -0
- data/lib/framework/res/refresh_btn.wm.png +0 -0
- data/lib/framework/rho/render.rb +5 -2
- data/lib/framework/rho/rho.rb +320 -50
- data/lib/framework/rho/rhoapplication.rb +48 -10
- data/lib/framework/rho/rhonativeviewmanager.rb +73 -0
- data/lib/framework/rho/rhosupport.rb +15 -1
- data/lib/framework/rho/rhotabbar.rb +29 -0
- data/lib/framework/rho/rhotoolbar.rb +17 -0
- data/lib/framework/rho/rhoutils.rb +22 -6
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rholang/rhomsg_de.rb +4 -3
- data/lib/framework/rholang/rhomsg_en.rb +1 -0
- data/lib/framework/rholang/rhomsg_es.rb +1 -0
- data/lib/framework/rholang/rhomsg_it.rb +1 -0
- data/lib/framework/rhom/rhom.rb +31 -10
- data/lib/framework/rhom/rhom_db_adapter.rb +33 -23
- data/lib/framework/rhom/rhom_object_factory.rb +465 -249
- data/lib/framework/rhom/rhom_source.rb +22 -7
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +83 -20
- data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +5 -0
- data/platform/android/Rhodes/jni/include/rhodes/RhoClassFactory.h +2 -0
- data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +9 -5
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesAppOptions.h +53 -0
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +46 -56
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_SplashScreen.h +10 -0
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_mapview_MapView.h +93 -0
- data/platform/android/Rhodes/jni/include/rhodes/rhocryptimpl.h +38 -0
- data/platform/android/Rhodes/jni/include/rhodes.h +64 -8
- data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +6 -0
- data/platform/android/Rhodes/jni/src/alert.cpp +5 -11
- data/platform/android/Rhodes/jni/src/bluetooth.cpp +66 -29
- data/platform/android/Rhodes/jni/src/callbacks.cpp +24 -21
- data/platform/android/Rhodes/jni/src/camera.cpp +2 -6
- data/platform/android/Rhodes/jni/src/datetimepicker.cpp +13 -11
- data/platform/android/Rhodes/jni/src/event.cpp +9 -15
- data/platform/android/Rhodes/jni/src/fileapi.cpp +13 -27
- data/platform/android/Rhodes/jni/src/logconf.cpp +3 -3
- data/platform/android/Rhodes/jni/src/mapview.cpp +696 -16
- data/platform/android/Rhodes/jni/src/menu.cpp +3 -3
- data/platform/android/Rhodes/jni/src/nativebar.cpp +55 -4
- data/platform/android/Rhodes/jni/src/nativeview.cpp +33 -0
- data/platform/android/Rhodes/jni/src/phonebook.cpp +6 -11
- data/platform/android/Rhodes/jni/src/rhoconf.cpp +4 -4
- data/platform/android/Rhodes/jni/src/rhocryptimpl.cpp +87 -0
- data/platform/android/Rhodes/jni/src/rhodes.cpp +55 -34
- data/platform/android/Rhodes/jni/src/ringtones.cpp +2 -3
- data/platform/android/Rhodes/jni/src/signature.cpp +3 -5
- data/platform/android/Rhodes/jni/src/splashscreen.cpp +7 -0
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +17 -20
- data/platform/android/Rhodes/jni/src/webview.cpp +13 -12
- data/platform/android/Rhodes/res/drawable/callout.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_link.png +0 -0
- data/platform/android/Rhodes/res/drawable/signature_cancel.png +0 -0
- data/platform/android/Rhodes/res/drawable/signature_clear.png +0 -0
- data/platform/android/Rhodes/res/drawable/signature_ok.png +0 -0
- data/platform/android/Rhodes/res/layout/datetime.xml +4 -0
- data/platform/android/Rhodes/res/layout/signature.xml +24 -17
- data/platform/android/Rhodes/res/layout/status_bar_ongoing_event_progress_bar.xml +102 -0
- data/platform/android/Rhodes/res/values/strings.xml +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +6 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Base64.java +575 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +83 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +21 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushReceiver.java +23 -15
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoCryptImpl.java +151 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoMenu.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +372 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesAppOptions.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +58 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +705 -523
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RingtoneManager.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/SplashScreen.java +167 -85
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Utils.java +36 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +4 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/Alert.java +33 -20
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/IRhoBluetoothManager.java +2 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManager.java +2 -24
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerNew.java +106 -36
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerOld.java +15 -58
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothSession.java +0 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/Camera.java +6 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/FileList.java +4 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +91 -27
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePicker.java +6 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePickerScreen.java +275 -42
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/file/RhoFileApi.java +1 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +1 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +120 -43
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +518 -28
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +434 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapTouch.java +20 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +296 -336
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MultiTouchHandler.java +111 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/OneTouchHandler.java +77 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/TouchHandler.java +10 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +0 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +5 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java +6 -11
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +6 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java +0 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/ui/LogViewDialog.java +9 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/PerformOnUiThread.java +8 -8
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientNew.java +5 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +11 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsNew.java +3 -5
- data/platform/android/build/RhodesSRC_build.files +32 -23
- data/platform/android/build/android.rake +28 -11
- data/platform/android/build/androidcommon.rb +2 -0
- data/platform/android/build/librhocommon_build.files +9 -5
- data/platform/android/build/librhodes_build.files +1 -0
- data/platform/android/build/libruby_build.files +1 -0
- data/platform/bb/Hsqldb/Hsqldb.jdp +0 -2
- data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBResult.java +10 -2
- data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBStorage.java +37 -5
- data/platform/bb/Hsqldb/src/org/hsqldb/Column.java +5 -5
- data/platform/bb/Hsqldb/src/org/hsqldb/Expression.java +1 -1
- data/platform/bb/Hsqldb/src/org/hsqldb/Function.java +73 -78
- data/platform/bb/Hsqldb/src/org/hsqldb/Library.java +288 -8
- data/platform/bb/RubyVM/RubyVM.jdp +3 -0
- data/platform/bb/RubyVM/src/com/rho/FilePath.java +13 -1
- data/platform/bb/RubyVM/src/com/rho/IRhoRubyHelper.java +2 -2
- data/platform/bb/RubyVM/src/com/rho/RhoAppAdapter.java +12 -0
- data/platform/bb/RubyVM/src/com/rho/RhoClassFactory.java +18 -1
- data/platform/bb/RubyVM/src/com/rho/RhoConf.java +128 -108
- data/platform/bb/RubyVM/src/com/rho/RhoLogConf.java +9 -10
- data/platform/bb/RubyVM/src/com/rho/RhoLogger.java +16 -1
- data/platform/bb/RubyVM/src/com/rho/RhoProfiler.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/RhoRuby.java +20 -0
- data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +5 -2
- data/platform/bb/RubyVM/src/com/rho/ThreadQueue.java +65 -46
- data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +192 -50
- data/platform/bb/RubyVM/src/com/rho/db/DBAttrManager.java +8 -114
- data/platform/bb/RubyVM/src/com/rho/db/DBException.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/db/IDBCallback.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/db/IDBResult.java +5 -3
- data/platform/bb/RubyVM/src/com/rho/db/IDBStorage.java +5 -1
- data/platform/bb/RubyVM/src/com/rho/file/FileAccessBB.java +109 -0
- data/platform/bb/RubyVM/src/com/rho/file/RhoFile.java +85 -0
- data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +12 -4
- data/platform/bb/RubyVM/src/com/rho/net/NetResponse.java +5 -0
- data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +37 -23
- data/platform/bb/RubyVM/src/com/rho/net/URI.java +84 -0
- data/platform/bb/RubyVM/src/com/rho/sync/ClientRegister.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +119 -61
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +61 -24
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +108 -54
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +121 -163
- data/platform/bb/RubyVM/src/com/xruby/GeneratedMethods/RubyString_Methods.java +23 -0
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyMutex.java +1 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyRange.java +3 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyRegexp.java +3 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyString.java +208 -25
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyTime.java +3 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RhoSupport.java +5 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyAPI.java +12 -5
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyID.java +1 -0
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyKernelModule.java +16 -0
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyKernelModule_Methods.java +5 -0
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyValue.java +1 -1
- data/platform/bb/RubyVM/src/com/xruby/runtime/stdlib/RubyStringIO.java +4 -1
- data/platform/bb/{Hsqldb → RubyVM}/src/j2me/math/Number.java +33 -0
- data/platform/bb/build/RubyVM_build.files +3 -0
- data/platform/bb/build/bb.rake +140 -62
- data/platform/bb/build/hsqldb_build.files +0 -2
- data/platform/bb/build/rhodes_build.files +5 -0
- data/platform/bb/rhodes/platform/4.7/com/rho/RhoMainScreen.java +43 -7
- data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +23 -2
- data/platform/bb/rhodes/platform/5.0/com/rho/RhodesApplicationPlatform.java +5 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/db/SqliteCopyResult.java +143 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/db/SqliteResult.java +269 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/db/SqliteStorage.java +446 -0
- data/platform/bb/rhodes/platform/common/com/rho/BrowserAdapter5.java +3 -0
- data/platform/bb/rhodes/platform/common/com/rho/RhoMainScreen.java +12 -2
- data/platform/bb/rhodes/platform/common/com/rho/db/SqliteCopyResult.java +2 -0
- data/platform/bb/rhodes/platform/common/com/rho/db/SqliteResult.java +2 -0
- data/platform/bb/rhodes/platform/common/com/rho/db/SqliteStorage.java +2 -0
- data/platform/bb/rhodes/resources/mappin.png +0 -0
- data/platform/bb/rhodes/rhodes.jdp +3 -0
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +21 -18
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter5.java +150 -0
- data/platform/bb/rhodes/src/com/rho/IBrowserAdapter.java +1 -0
- data/platform/bb/rhodes/src/com/rho/RhoMainScreen.java +63 -4
- data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +6 -5
- data/platform/bb/rhodes/src/com/rho/RhodesApplicationPlatform.java +242 -2
- data/platform/bb/rhodes/src/com/rho/db/SqliteCopyResult.java +143 -0
- data/platform/bb/rhodes/src/com/rho/db/SqliteResult.java +269 -0
- data/platform/bb/rhodes/src/com/rho/db/SqliteStorage.java +446 -0
- data/platform/bb/rhodes/src/com/rho/file/Jsr75File.java +1 -1
- data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +71 -14
- data/platform/bb/rhodes/src/com/rho/net/bb/BBHttpConnection.java +4 -2
- data/platform/bb/rhodes/src/com/rho/rubyext/Alert.java +28 -12
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +100 -4
- data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +3 -2
- data/platform/bb/rhodes/src/com/rho/rubyext/XMLParser.java +1 -1
- data/platform/bb/rhodes/src/rhomobile/NativeBar.java +32 -0
- data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +9 -2
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +174 -41
- data/platform/bb/rhodes/src/rhomobile/datetime/DateTimePicker.java +52 -3
- data/platform/bb/rhodes/src/rhomobile/datetime/DateTimeScreen.java +33 -1
- data/platform/bb/rhodes/src/rhomobile/mapview/Annotation.java +2 -14
- data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapField.java +686 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapProvider.java +14 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/GeoCoding.java +13 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/GoogleGeoCoding.java +174 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/GoogleMapField.java +104 -330
- data/platform/bb/rhodes/src/rhomobile/mapview/MapTools.java +79 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +35 -12
- data/platform/bb/rhodes/src/rhomobile/mapview/MapViewParent.java +2 -1
- data/platform/bb/rhodes/src/rhomobile/mapview/MapViewScreen.java +336 -44
- data/platform/bb/rhodes/src/rhomobile/mapview/RhoMapField.java +3 -6
- data/platform/iphone/Classes/AppManager/AppManager.m +19 -4
- data/platform/iphone/Classes/DateTime.h +4 -0
- data/platform/iphone/Classes/DateTime.m +1 -1
- data/platform/iphone/Classes/DateTimePicker.m +8 -1
- data/platform/iphone/Classes/DateTimePickerDelegate.m +7 -1
- data/platform/iphone/Classes/Event/Event.m +2 -2
- data/platform/iphone/Classes/MapView/MapViewController.h +4 -1
- data/platform/iphone/Classes/MapView/MapViewController.m +6 -46
- data/platform/iphone/Classes/MapView/MapViewManager.h +26 -0
- data/platform/iphone/Classes/MapView/MapViewManager.m +172 -0
- data/platform/iphone/Classes/NativeBar.h +34 -0
- data/platform/iphone/Classes/NativeBar.m +131 -26
- data/platform/iphone/Classes/NativeView/NVDelegate.h +26 -0
- data/platform/iphone/Classes/NativeView/NVDelegate.m +40 -0
- data/platform/iphone/Classes/NativeView/NVViewController.h +24 -0
- data/platform/iphone/Classes/NativeView/NVViewController.m +90 -0
- data/platform/iphone/Classes/NativeView/RhoNativeViewManager.mm +449 -0
- data/platform/iphone/Classes/{RhoNativeViewManagerOC.h → NativeView/RhoNativeViewManagerOC.h} +15 -0
- data/platform/iphone/Classes/RhoAlert.m +3 -3
- data/platform/iphone/Classes/RhoMainView.h +3 -0
- data/platform/iphone/Classes/Rhodes.h +6 -2
- data/platform/iphone/Classes/Rhodes.m +47 -79
- data/platform/iphone/Classes/Signature/SignatureViewController.m +1 -0
- data/platform/iphone/Classes/SimpleMainView.h +18 -1
- data/platform/iphone/Classes/SimpleMainView.m +180 -35
- data/platform/iphone/Classes/SplitView/LeftViewController.h +1 -1
- data/platform/iphone/Classes/SplitView/LeftViewController.m +13 -7
- data/platform/iphone/Classes/SplitView/RightViewController.h +1 -1
- data/platform/iphone/Classes/SplitView/RightViewController.m +26 -11
- data/platform/iphone/Classes/SplitView/SplittedMainView.h +1 -6
- data/platform/iphone/Classes/SplitView/SplittedMainView.m +14 -52
- data/platform/iphone/Classes/TabbedMainView.h +25 -3
- data/platform/iphone/Classes/TabbedMainView.m +340 -14
- data/platform/iphone/ESRI/BluePushpin.png +0 -0
- data/platform/iphone/ESRI/BluePushpin@2x.png +0 -0
- data/platform/iphone/ESRI/esri.png +0 -0
- data/platform/iphone/ESRI/esri@2x.png +0 -0
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +26 -3
- data/platform/iphone/rbuild/iphone.rake +100 -4
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +12 -0
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +116 -12
- data/platform/shared/SyncClient/SyncClient.cpp +29 -3
- data/platform/shared/SyncClient/SyncClient.h +2 -1
- data/platform/shared/common/IRhoClassFactory.h +3 -0
- data/platform/shared/common/IRhoCrypt.h +16 -0
- data/platform/shared/common/IRhoThreadImpl.h +1 -0
- data/platform/shared/common/RhoAppAdapter.h +2 -0
- data/platform/shared/common/RhoConf.cpp +97 -46
- data/platform/shared/common/RhoConf.h +14 -13
- data/platform/shared/common/RhoFile.cpp +10 -0
- data/platform/shared/common/RhoFile.h +1 -0
- data/platform/shared/common/RhoMath.cpp +43 -0
- data/platform/shared/common/RhoMath.h +27 -0
- data/platform/shared/common/RhoNativeViewManager.h +27 -1
- data/platform/shared/common/RhoPort.h +11 -0
- data/platform/shared/common/RhoStd.h +5 -0
- data/platform/shared/common/RhoThread.cpp +1 -1
- data/platform/shared/common/RhoThread.h +1 -1
- data/platform/shared/common/RhodesApp.cpp +381 -139
- data/platform/shared/common/RhodesApp.h +24 -10
- data/platform/shared/common/RhodesAppBase.cpp +72 -1
- data/platform/shared/common/RhodesAppBase.h +5 -1
- data/platform/shared/common/SplashScreen.h +4 -4
- data/platform/shared/common/ThreadQueue.cpp +44 -17
- data/platform/shared/common/ThreadQueue.h +4 -0
- data/platform/shared/common/app_build_configs.c +0 -1
- data/platform/shared/common/iphone/RhoClassfactory.h +6 -0
- data/platform/shared/common/iphone/RhoCryptImpl.h +47 -0
- data/platform/shared/common/iphone/RhoCryptImpl.mm +286 -0
- data/platform/shared/common/map/ESRIMapEngine.cpp +921 -0
- data/platform/shared/common/map/ESRIMapEngine.h +255 -0
- data/platform/shared/common/map/GoogleMapEngine.cpp +160 -0
- data/platform/shared/common/map/GoogleMapEngine.h +52 -0
- data/platform/shared/common/map/MapEngine.cpp +304 -0
- data/platform/shared/common/map/MapEngine.h +214 -0
- data/platform/shared/db/DBAdapter.cpp +147 -18
- data/platform/shared/db/DBAdapter.h +38 -12
- data/platform/shared/db/DBAttrManager.cpp +4 -3
- data/platform/shared/db/DBAttrManager.h +7 -7
- data/platform/shared/db/res/db/syncdb.triggers +0 -5
- data/platform/shared/db/res/db/syncdb_java.triggers +21 -0
- data/platform/shared/json/JSONIterator.cpp +11 -1
- data/platform/shared/json/JSONIterator.h +1 -0
- data/platform/shared/logging/RhoLogConf.cpp +29 -12
- data/platform/shared/net/CURLNetRequest.cpp +80 -25
- data/platform/shared/net/CURLNetRequest.h +6 -2
- data/platform/shared/net/HttpServer.cpp +12 -6
- data/platform/shared/net/HttpServer.h +2 -1
- data/platform/shared/net/INetRequest.h +1 -0
- data/platform/shared/ruby/ext/alert/alert.i +5 -0
- data/platform/shared/ruby/ext/alert/alert_wrap.c +439 -108
- data/platform/shared/ruby/ext/datetimepicker/datetimepicker.i +42 -0
- data/platform/shared/ruby/ext/datetimepicker/datetimepicker_wrap.c +521 -120
- data/platform/shared/ruby/ext/nativebar/nativebar.i +16 -0
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +623 -128
- data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager.i +18 -0
- data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c +2321 -0
- data/platform/shared/ruby/ext/rho/extensions.c +0 -1
- data/platform/shared/ruby/ext/rho/rhoruby.c +53 -0
- data/platform/shared/ruby/ext/rho/rhoruby.h +6 -0
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +6 -3
- data/platform/shared/ruby/ext/syncengine/syncengine.i +9 -1
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +61 -0
- data/platform/shared/ruby/ext/system/system.i +4 -0
- data/platform/shared/ruby/ext/system/system_wrap.c +33 -5
- data/platform/shared/rubyext/RhoAppAdapter.cpp +11 -1
- data/platform/shared/rubyext/System.cpp +9 -0
- data/platform/shared/rubyext/WebView.h +1 -0
- data/platform/shared/sqlite/crypto.c +907 -0
- data/platform/shared/sqlite/sqlite3.c +6 -0
- data/platform/shared/sync/SyncEngine.cpp +49 -19
- data/platform/shared/sync/SyncEngine.h +0 -1
- data/platform/shared/sync/SyncNotify.cpp +14 -5
- data/platform/shared/sync/SyncNotify.h +2 -2
- data/platform/shared/sync/SyncSource.cpp +79 -33
- data/platform/shared/sync/SyncSource.h +1 -0
- data/platform/shared/sync/SyncThread.cpp +26 -11
- data/platform/shared/xruby/src/com/xruby/compiler/codedom/StringExpression.java +4 -2
- data/platform/wm/RhoLib/RhoLib.vcproj +108 -72
- data/platform/wm/build/wm.rake +6 -0
- data/platform/wm/rhodes/Alert.cpp +4 -3
- data/platform/wm/rhodes/Alert.h +1 -1
- data/platform/wm/rhodes/DateTimePicker.cpp +30 -3
- data/platform/wm/rhodes/DateTimePicker.h +9 -1
- data/platform/wm/rhodes/MainWindow.cpp +121 -61
- data/platform/wm/rhodes/MainWindow.h +29 -4
- data/platform/wm/rhodes/MapView/Graphics.cpp +547 -0
- data/platform/wm/rhodes/MapView/Graphics.h +136 -0
- data/platform/wm/rhodes/MapView/MapViewManager.cpp +391 -0
- data/platform/wm/rhodes/MapView/MapViewManager.h +158 -0
- data/platform/wm/rhodes/RhoCryptImpl.cpp +248 -0
- data/platform/wm/rhodes/RhoCryptImpl.h +51 -0
- data/platform/wm/rhodes/RhoNativeViewManager.cpp +208 -0
- data/platform/wm/rhodes/Rhodes.cpp +94 -102
- data/platform/wm/rhodes/Rhodes.rc +27 -0
- data/platform/wm/rhodes/SyncStatusDlg.cpp +1 -0
- data/platform/wm/rhodes/SyncStatusDlg.h +2 -1
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +7 -4
- data/platform/wm/rhodes/camera/Camera.cpp +36 -15
- data/platform/wm/rhodes/camera/Camera.h +0 -4
- data/platform/wm/rhodes/resource.h +10 -2
- data/platform/wm/rhodes/rho/common/RhoClassFactory.cpp +7 -0
- data/platform/wm/rhodes/rho/common/RhoClassFactory.h +1 -0
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +10 -2
- data/platform/wm/rhodes/rho/net/NetRequestImpl.h +10 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +513 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.h +74 -0
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +22 -10
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +5 -0
- data/platform/wm/rhodes/rhodes.vcproj +38 -2
- data/platform/wm/rhodes/stdafx.h +2 -1
- data/platform/wm/rubylib/rubylib.vcproj +12 -0
- data/rakefile.rb +85 -80
- data/res/build-tools/iphonesim/Source/iPhoneSimulator.m +14 -3
- data/res/build-tools/iphonesim/build/Release/iphonesim +0 -0
- data/res/build-tools/iphonesim/iphonesim.xcodeproj/project.pbxproj +2 -0
- data/res/build-tools/xruby-0.3.3.jar +0 -0
- data/res/generators/templates/application/app/application.rb +2 -2
- data/res/generators/templates/application/app/helpers/application_helper.rb +1 -1
- data/res/generators/templates/application/public/css/android.css +1 -0
- data/res/generators/templates/application/public/jqtouch/jquery.1.3.2.min.js +1 -1
- data/res/generators/templates/application/rhoconfig.txt +66 -14
- data/rhodes.gemspec +3 -3
- data/spec/framework_spec/app/spec/core/file/expand_path_spec.rb +7 -3
- data/spec/framework_spec/build.yml +1 -1
- data/spec/phone_spec/Rakefile +1 -0
- data/spec/phone_spec/app/Account/account.rb +2 -0
- data/spec/phone_spec/app/Account_s/account_s.rb +7 -0
- data/spec/phone_spec/app/spec/{fixtures → array/fixtures}/classes.rb +0 -0
- data/spec/phone_spec/app/spec/{array_pack_spec.rb → array/pack_spec.rb} +2 -1
- data/spec/phone_spec/app/spec/bulksync_spec.rb +1 -0
- data/spec/phone_spec/app/spec/contacts_spec.rb +2 -0
- data/spec/phone_spec/app/spec/rho_spec.rb +34 -233
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +396 -87
- data/spec/phone_spec/app/spec/string/element_set_spec.rb +251 -0
- data/spec/phone_spec/app/spec/string/end_with_spec.rb +49 -0
- data/spec/phone_spec/app/spec/string/fixtures/classes.rb +27 -0
- data/spec/phone_spec/app/spec/{lstrip_spec.rb → string/lstrip_spec.rb} +0 -0
- data/spec/phone_spec/app/spec/string/replace_spec.rb +52 -0
- data/spec/phone_spec/app/spec/{rstrip_spec.rb → string/rstrip_spec.rb} +0 -0
- data/spec/phone_spec/app/spec/string/slice_spec.rb +473 -0
- data/spec/phone_spec/app/spec/string/split_spec.rb +302 -0
- data/spec/phone_spec/app/spec/string/start_with_spec.rb +48 -0
- data/spec/phone_spec/app/spec/{strip_spec.rb → string/strip_spec.rb} +0 -0
- data/spec/phone_spec/app/spec/syncengine_spec.rb +30 -1
- data/spec/phone_spec/app/spec_runner.rb +15 -7
- data/spec/phone_spec/build.yml +2 -2
- metadata +154 -25
- data/README.textile +0 -45
- data/platform/android/Rhodes/AndroidManifest.full.xml +0 -62
- data/platform/android/Rhodes/gen/com/rhomobile/rhodes/Manifest.java +0 -14
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoActivity.java +0 -20
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +0 -193
- data/platform/bb/Hsqldb/src/com/rho/file/FileAccessBB.java +0 -25
- data/platform/bb/RubyVM/src/com/rho/AppBuildConfig.java +0 -22
- data/platform/bb/RubyVM/src/com/rho/Capabilities.java +0 -6
- data/platform/bb/RubyVM/src/com/rho/Extensions.java +0 -11
- data/platform/iphone/Classes/RhoNativeViewManager.mm +0 -226
@@ -26,7 +26,7 @@ public class RubyString extends RubyBasic {
|
|
26
26
|
|
27
27
|
RubyString(RubyClass c, String s) {
|
28
28
|
super(c);
|
29
|
-
sb_ = new StringBuffer(s);
|
29
|
+
sb_ = new StringBuffer(s != null ? s : "");
|
30
30
|
}
|
31
31
|
|
32
32
|
public RubyString(String s) {
|
@@ -53,8 +53,14 @@ public class RubyString extends RubyBasic {
|
|
53
53
|
return sb_.toString();
|
54
54
|
}
|
55
55
|
|
56
|
-
public int toInt()
|
57
|
-
|
56
|
+
public int toInt()
|
57
|
+
{
|
58
|
+
try {
|
59
|
+
return Integer.parseInt(sb_.toString());
|
60
|
+
}catch(NumberFormatException exc)
|
61
|
+
{
|
62
|
+
throw new RubyException(RubyRuntime.TypeErrorClass, "can't convert " + this.getRubyClass().getName() + " into Integer");
|
63
|
+
}
|
58
64
|
}
|
59
65
|
public long toLong() {
|
60
66
|
return Long.parseLong(sb_.toString());
|
@@ -265,16 +271,19 @@ public class RubyString extends RubyBasic {
|
|
265
271
|
if (end < 0) {
|
266
272
|
end = string.length() + end;
|
267
273
|
}
|
268
|
-
|
274
|
+
if (end < 0)
|
275
|
+
return ObjectFactory.createString(getRubyClass(), "");
|
276
|
+
|
269
277
|
if (!isExcludeEnd) {
|
270
278
|
++end;
|
271
279
|
}
|
272
280
|
|
273
281
|
if (begin < 0 || end < 0 || begin > end || begin > string.length() || end > string.length()) {
|
274
282
|
return RubyConstant.QNIL;
|
283
|
+
//return ObjectFactory.createString(getRubyClass(), "");
|
275
284
|
}
|
276
285
|
|
277
|
-
return ObjectFactory.createString(string.substring(begin, end));
|
286
|
+
return ObjectFactory.createString(getRubyClass(), string.substring(begin, end));
|
278
287
|
}
|
279
288
|
|
280
289
|
private RubyString gsub(RubyString g, RubyArray args) {
|
@@ -356,11 +365,11 @@ public class RubyString extends RubyBasic {
|
|
356
365
|
}
|
357
366
|
|
358
367
|
private Collection/*<String>*/ split(RubyString g, RubyRegexp r, RubyArray args) {
|
359
|
-
if (args.size() <= 1) {
|
368
|
+
if (args == null || args.size() <= 1) {
|
360
369
|
return r.split(g.toString(), 0);
|
361
370
|
} else {
|
362
|
-
|
363
|
-
return r.split(g.toString(), i
|
371
|
+
int i = args.get(1).toInt();
|
372
|
+
return r.split(g.toString(), i);
|
364
373
|
}
|
365
374
|
}
|
366
375
|
|
@@ -410,6 +419,8 @@ public class RubyString extends RubyBasic {
|
|
410
419
|
if (this == v) {
|
411
420
|
return RubyConstant.QTRUE;
|
412
421
|
}
|
422
|
+
if ( v == null || v == RubyConstant.QNIL )
|
423
|
+
return RubyConstant.QFALSE;
|
413
424
|
|
414
425
|
if (v instanceof RubyString) {
|
415
426
|
RubyString str = ((RubyString)v);
|
@@ -424,6 +435,8 @@ public class RubyString extends RubyBasic {
|
|
424
435
|
//@RubyLevelMethod(name="end_with?")
|
425
436
|
public RubyValue opEndWith(RubyArray v)
|
426
437
|
{
|
438
|
+
if ( v == null )
|
439
|
+
return RubyConstant.QFALSE;
|
427
440
|
|
428
441
|
for( int i = 0; i < v.size(); i++ )
|
429
442
|
{
|
@@ -434,6 +447,40 @@ public class RubyString extends RubyBasic {
|
|
434
447
|
return RubyConstant.QFALSE;
|
435
448
|
}
|
436
449
|
|
450
|
+
//@RubyLevelMethod(name="start_with?")
|
451
|
+
public RubyValue opStartWith(RubyValue v) {
|
452
|
+
if (this == v) {
|
453
|
+
return RubyConstant.QTRUE;
|
454
|
+
}
|
455
|
+
|
456
|
+
if ( v == null || v == RubyConstant.QNIL )
|
457
|
+
return RubyConstant.QFALSE;
|
458
|
+
|
459
|
+
if (v instanceof RubyString) {
|
460
|
+
RubyString str = ((RubyString)v);
|
461
|
+
|
462
|
+
return this.sb_.toString().startsWith(str.toStr()) ? RubyConstant.QTRUE :
|
463
|
+
RubyConstant.QFALSE;
|
464
|
+
}
|
465
|
+
|
466
|
+
return RubyConstant.QFALSE;
|
467
|
+
}
|
468
|
+
|
469
|
+
//@RubyLevelMethod(name="start_with?")
|
470
|
+
public RubyValue opStartWith(RubyArray v)
|
471
|
+
{
|
472
|
+
if ( v == null )
|
473
|
+
return RubyConstant.QFALSE;
|
474
|
+
|
475
|
+
for( int i = 0; i < v.size(); i++ )
|
476
|
+
{
|
477
|
+
RubyValue res = opStartWith(v.get(i));
|
478
|
+
if ( res == RubyConstant.QTRUE )
|
479
|
+
return RubyConstant.QTRUE;
|
480
|
+
}
|
481
|
+
return RubyConstant.QFALSE;
|
482
|
+
}
|
483
|
+
|
437
484
|
//@RubyLevelMethod(name="ord")
|
438
485
|
public RubyValue ord()
|
439
486
|
{
|
@@ -448,6 +495,22 @@ public class RubyString extends RubyBasic {
|
|
448
495
|
return ObjectFactory.createString(sb_.toString().trim());
|
449
496
|
}
|
450
497
|
|
498
|
+
//@RubyLevelMethod(name="replace")
|
499
|
+
public RubyValue replace(RubyValue arg)
|
500
|
+
{
|
501
|
+
if ( arg == null || arg == RubyConstant.QNIL )
|
502
|
+
sb_ = new StringBuffer("");
|
503
|
+
else
|
504
|
+
{
|
505
|
+
RubyString anotherString = arg.toRubyString();
|
506
|
+
if(this == anotherString)
|
507
|
+
return this;
|
508
|
+
|
509
|
+
sb_ = new StringBuffer(anotherString.toString());
|
510
|
+
}
|
511
|
+
return this;
|
512
|
+
}
|
513
|
+
|
451
514
|
//@RubyLevelMethod(name="strip!")
|
452
515
|
public RubyValue stripBang() {
|
453
516
|
String str = this.sb_.toString();
|
@@ -1111,11 +1174,22 @@ public class RubyString extends RubyBasic {
|
|
1111
1174
|
|
1112
1175
|
//@RubyLevelMethod(name="split")
|
1113
1176
|
public RubyValue split(RubyArray args) {
|
1114
|
-
RubyValue r =
|
1177
|
+
RubyValue r = null;
|
1178
|
+
|
1179
|
+
if (null == args || args.size() == 0)
|
1180
|
+
r = GlobalVariables.get("$;");
|
1181
|
+
else if (args.size() > 0 && (args.get(0) == null || args.get(0) == RubyConstant.QNIL))
|
1182
|
+
r = GlobalVariables.get("$;");
|
1183
|
+
else
|
1184
|
+
r = args.get(0);
|
1185
|
+
|
1115
1186
|
int nLimit = 0;
|
1116
1187
|
if ( args != null && args.size() > 1 )
|
1117
1188
|
nLimit = args.get(1).toInt();
|
1118
1189
|
|
1190
|
+
// if ( nLimit < 0 )
|
1191
|
+
// nLimit = 0;
|
1192
|
+
|
1119
1193
|
Collection/*<String>*/ splitResult;
|
1120
1194
|
boolean bSkipFirstEmptyItem = false;
|
1121
1195
|
if (r == RubyConstant.QNIL) {
|
@@ -1144,11 +1218,31 @@ public class RubyString extends RubyBasic {
|
|
1144
1218
|
//if (str == null)
|
1145
1219
|
// a.add(RubyConstant.QNIL);
|
1146
1220
|
//else
|
1147
|
-
a.add(ObjectFactory.createString(str));
|
1221
|
+
a.add(ObjectFactory.createString(getRubyClass(), str));
|
1148
1222
|
}
|
1149
1223
|
++i;
|
1150
1224
|
}
|
1151
1225
|
|
1226
|
+
if (r instanceof RubyString )
|
1227
|
+
{
|
1228
|
+
String str = ((RubyString) r).toString();
|
1229
|
+
if ( str != null && str.length() == 1 && CharacterMe.isWhitespace(str.charAt(0) ) )
|
1230
|
+
{
|
1231
|
+
boolean bDelete = false;
|
1232
|
+
for( i = a.size()-1; i >=0 ;i--)
|
1233
|
+
{
|
1234
|
+
if ( ((RubyString)a.get(i)).length()>0 )
|
1235
|
+
{
|
1236
|
+
bDelete = true;
|
1237
|
+
continue;
|
1238
|
+
}
|
1239
|
+
|
1240
|
+
if (bDelete)
|
1241
|
+
a.delete_at(i);
|
1242
|
+
}
|
1243
|
+
}
|
1244
|
+
}
|
1245
|
+
|
1152
1246
|
if ( nLimit == 0 )
|
1153
1247
|
{
|
1154
1248
|
for( i = a.size()-1; i >=0 ;i--)
|
@@ -1158,6 +1252,13 @@ public class RubyString extends RubyBasic {
|
|
1158
1252
|
|
1159
1253
|
a.delete_at(i);
|
1160
1254
|
}
|
1255
|
+
}else if ( a.size() < nLimit )
|
1256
|
+
{
|
1257
|
+
int nAdd = nLimit - a.size();
|
1258
|
+
for( i = 0; i < nAdd ;i++)
|
1259
|
+
{
|
1260
|
+
a.add(ObjectFactory.createString(this.getRubyClass(), ""));
|
1261
|
+
}
|
1161
1262
|
}
|
1162
1263
|
|
1163
1264
|
return a;
|
@@ -1247,7 +1348,7 @@ public class RubyString extends RubyBasic {
|
|
1247
1348
|
if (arg instanceof RubyString) {
|
1248
1349
|
String str = ((RubyString) arg).toString();
|
1249
1350
|
if (string.indexOf(str) >= 0) {
|
1250
|
-
return ObjectFactory.createString(str);
|
1351
|
+
return ObjectFactory.createString(arg.getRubyClass(), str);
|
1251
1352
|
} else {
|
1252
1353
|
return RubyConstant.QNIL;
|
1253
1354
|
}
|
@@ -1260,7 +1361,7 @@ public class RubyString extends RubyBasic {
|
|
1260
1361
|
RubyRegexp regexp = (RubyRegexp) arg;
|
1261
1362
|
RubyMatchData match = regexp.match(string);
|
1262
1363
|
if (match != null) {
|
1263
|
-
return ObjectFactory.createString(match.toString());
|
1364
|
+
return ObjectFactory.createString(getRubyClass(), match.toString());
|
1264
1365
|
} else {
|
1265
1366
|
return RubyConstant.QNIL;
|
1266
1367
|
}
|
@@ -1274,14 +1375,26 @@ public class RubyString extends RubyBasic {
|
|
1274
1375
|
return RubyConstant.QNIL;
|
1275
1376
|
} else
|
1276
1377
|
{
|
1277
|
-
return ObjectFactory.createString(string.substring(index, index+1));
|
1378
|
+
return ObjectFactory.createString(getRubyClass(), string.substring(index, index+1));
|
1278
1379
|
}
|
1279
1380
|
}
|
1280
1381
|
} else {
|
1281
1382
|
int start = args.get(0).toInt();
|
1282
|
-
int length = args.get(1).toInt()
|
1383
|
+
int length = args.get(1).toInt();
|
1283
1384
|
|
1284
|
-
|
1385
|
+
if (start < 0) {
|
1386
|
+
start = string.length() + start;
|
1387
|
+
}
|
1388
|
+
if ( start + length > string.length() )
|
1389
|
+
length = string.length() - start;
|
1390
|
+
|
1391
|
+
int end = start + length;
|
1392
|
+
if (start < 0 || end < 0 || start > end || start > string.length() || end > string.length()) {
|
1393
|
+
return RubyConstant.QNIL;
|
1394
|
+
//return ObjectFactory.createString(getRubyClass(), "");
|
1395
|
+
}
|
1396
|
+
|
1397
|
+
return substring(string, start, end, true);
|
1285
1398
|
}
|
1286
1399
|
}
|
1287
1400
|
|
@@ -1290,8 +1403,8 @@ public class RubyString extends RubyBasic {
|
|
1290
1403
|
String string = toString();
|
1291
1404
|
String replacement;
|
1292
1405
|
|
1293
|
-
int start, end;
|
1294
|
-
|
1406
|
+
int start = 0, end = 0;
|
1407
|
+
boolean isExcludeEnd = true;
|
1295
1408
|
if (args.size() == 2) {
|
1296
1409
|
RubyValue arg = args.get(0);
|
1297
1410
|
replacement = ((RubyString) args.get(1)).toString();
|
@@ -1308,9 +1421,11 @@ public class RubyString extends RubyBasic {
|
|
1308
1421
|
RubyRange range = (RubyRange) arg;
|
1309
1422
|
start = range.getLeft().toInt();
|
1310
1423
|
end = range.getRight().toInt();
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1424
|
+
|
1425
|
+
isExcludeEnd = range.isExcludeEnd();
|
1426
|
+
//if (start >= string.length()) {
|
1427
|
+
// throw new RubyException(RubyRuntime.RangeClass, range.toString() + " out of range");
|
1428
|
+
//}
|
1314
1429
|
} else if (arg instanceof RubyRegexp) {
|
1315
1430
|
RubyRegexp regexp = (RubyRegexp) arg;
|
1316
1431
|
RubyMatchData match = regexp.match(string);
|
@@ -1329,12 +1444,37 @@ public class RubyString extends RubyBasic {
|
|
1329
1444
|
replacement = ((RubyString) args.get(2)).toString();
|
1330
1445
|
|
1331
1446
|
start = args.get(0).toInt();
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1447
|
+
if (start < 0) {
|
1448
|
+
start = string.length() + start;
|
1449
|
+
|
1450
|
+
end = args.get(1).toInt() + start;
|
1451
|
+
|
1452
|
+
if ( end >= string.length() )
|
1453
|
+
end = string.length();
|
1454
|
+
}else
|
1455
|
+
end = args.get(1).toInt() + start;
|
1456
|
+
|
1457
|
+
}
|
1458
|
+
|
1459
|
+
if (start < 0) {
|
1460
|
+
start = string.length() + start;
|
1461
|
+
}
|
1462
|
+
|
1463
|
+
if (end < 0) {
|
1464
|
+
end = string.length() + end;
|
1337
1465
|
}
|
1466
|
+
|
1467
|
+
end += isExcludeEnd ? 0 : 1;
|
1468
|
+
if (start < 0) {
|
1469
|
+
return RubyConstant.QNIL;
|
1470
|
+
//return ObjectFactory.createString(getRubyClass(), "");
|
1471
|
+
}
|
1472
|
+
|
1473
|
+
if (start >/*=*/ string.length()) {
|
1474
|
+
throw new RubyException(RubyRuntime.RangeClass,
|
1475
|
+
"Index '" + start + "' out of string:" + string +";end: '" + end + "';replacement:"+replacement+"" );
|
1476
|
+
}
|
1477
|
+
|
1338
1478
|
setString(replace(string, start, end, replacement));
|
1339
1479
|
return ObjectFactory.createString(replacement);
|
1340
1480
|
}
|
@@ -1561,5 +1701,48 @@ public class RubyString extends RubyBasic {
|
|
1561
1701
|
m_valEncoding = arg;
|
1562
1702
|
return this;
|
1563
1703
|
}
|
1704
|
+
|
1705
|
+
public RubyValue binary_encode()
|
1706
|
+
{
|
1707
|
+
StringBuffer res = new StringBuffer(sb_.length());
|
1708
|
+
|
1709
|
+
for( int i = 0; i < sb_.length(); i++ )
|
1710
|
+
{
|
1711
|
+
char ch = sb_.charAt(i);
|
1712
|
+
if ( ch == 0 )
|
1713
|
+
res.append('\u0001');
|
1714
|
+
else if ( ch == 1 )
|
1715
|
+
{
|
1716
|
+
res.append('\u0001');
|
1717
|
+
res.append('\u0001');
|
1718
|
+
}else
|
1719
|
+
res.append(ch);
|
1720
|
+
}
|
1721
|
+
|
1722
|
+
return new RubyString(res);
|
1723
|
+
}
|
1724
|
+
|
1725
|
+
public RubyValue binary_decode()
|
1726
|
+
{
|
1727
|
+
StringBuffer res = new StringBuffer(sb_.length());
|
1728
|
+
|
1729
|
+
for( int i = 0; i < sb_.length(); i++ )
|
1730
|
+
{
|
1731
|
+
char ch = sb_.charAt(i);
|
1732
|
+
if ( ch == 1 )
|
1733
|
+
{
|
1734
|
+
if ( i + 1 < sb_.length() && sb_.charAt(i+1) == 1)
|
1735
|
+
{
|
1736
|
+
res.append('\u0001');
|
1737
|
+
i++;
|
1738
|
+
}else
|
1739
|
+
res.append('\u0000');
|
1740
|
+
}
|
1741
|
+
else
|
1742
|
+
res.append(ch);
|
1743
|
+
}
|
1744
|
+
|
1745
|
+
return new RubyString(res);
|
1746
|
+
}
|
1564
1747
|
|
1565
1748
|
}
|
@@ -44,7 +44,9 @@ public class RubyTime extends RubyBasic {
|
|
44
44
|
}
|
45
45
|
//@RubyAllocMethod
|
46
46
|
public static RubyTime alloc(RubyValue receiver) {
|
47
|
-
|
47
|
+
RubyTime res = new RubyTime();
|
48
|
+
res.setRubyClass((RubyClass) receiver);
|
49
|
+
return res;
|
48
50
|
}
|
49
51
|
|
50
52
|
//RHO_COMMENT : initialize
|
@@ -7,6 +7,8 @@ import com.rho.RhoLogger;
|
|
7
7
|
import com.rho.RhodesApp;
|
8
8
|
import com.xruby.runtime.builtin.ObjectFactory;
|
9
9
|
import com.xruby.runtime.builtin.RubyArray;
|
10
|
+
import com.xruby.runtime.builtin.RubyRegexp;
|
11
|
+
|
10
12
|
import j2me.lang.StringMe;
|
11
13
|
import com.rho.RhoConf;
|
12
14
|
|
@@ -63,7 +65,9 @@ public class RhoSupport {
|
|
63
65
|
}
|
64
66
|
|
65
67
|
public static RhoLog alloc(RubyValue receiver) {
|
66
|
-
|
68
|
+
RhoLog res = new RhoLog();
|
69
|
+
res.setRubyClass((RubyClass) receiver);
|
70
|
+
return res;
|
67
71
|
}
|
68
72
|
|
69
73
|
public RhoLog initialize() {
|
@@ -579,7 +579,7 @@ public class RubyAPI {
|
|
579
579
|
}
|
580
580
|
}
|
581
581
|
}*/
|
582
|
-
|
582
|
+
return callUninitializedConstant(receiver, name);
|
583
583
|
}
|
584
584
|
|
585
585
|
return v;
|
@@ -600,7 +600,7 @@ public class RubyAPI {
|
|
600
600
|
RubyModule m = (RubyModule) receiver;
|
601
601
|
RubyValue v = m.getConstant(name);
|
602
602
|
if (null == v) {
|
603
|
-
|
603
|
+
return callUninitializedConstant(m, name);
|
604
604
|
}
|
605
605
|
|
606
606
|
return v;
|
@@ -618,10 +618,17 @@ public class RubyAPI {
|
|
618
618
|
return RubyConstant.QTRUE;
|
619
619
|
}
|
620
620
|
|
621
|
-
private static
|
621
|
+
private static RubyValue callUninitializedConstant(RubyModule module, String name)
|
622
|
+
{
|
623
|
+
RubyMethod m = module.findMethod(RubyID.constMissingId);
|
624
|
+
if (null != m && !UndefMethod.isUndef(m)) {
|
625
|
+
RubyArray args = new RubyArray(ObjectFactory.createSymbol(name));
|
626
|
+
return m.invoke(module, args, (RubyBlock)null);
|
627
|
+
}
|
628
|
+
|
622
629
|
RubyString str = ObjectFactory.createString();
|
623
|
-
if (
|
624
|
-
|
630
|
+
if (module != RubyRuntime.ObjectClass) {
|
631
|
+
module.to_s(str);
|
625
632
|
if (str.length() > 0) {
|
626
633
|
str.appendString("::");
|
627
634
|
}
|
@@ -76,6 +76,7 @@ public class RubyID {
|
|
76
76
|
|
77
77
|
public static final RubyID methodAddedID = intern("method_added");
|
78
78
|
public static final RubyID methodMissingId = intern("method_missing");
|
79
|
+
public static final RubyID constMissingId = intern("const_missing");
|
79
80
|
public static final RubyID extendObjectID = intern("extend_object");
|
80
81
|
|
81
82
|
public static final RubyID RESPOND_TO_P = intern("respond_to?");
|
@@ -657,6 +657,22 @@ public class RubyKernelModule {
|
|
657
657
|
}
|
658
658
|
|
659
659
|
//@RubyLevelMethod(name="method_missing", module=true)
|
660
|
+
public static RubyValue constMissing(RubyValue receiver, RubyValue arg)
|
661
|
+
{
|
662
|
+
RubySymbol const_name = (RubySymbol)arg;
|
663
|
+
|
664
|
+
RubyString str = ObjectFactory.createString();
|
665
|
+
if (receiver != RubyRuntime.ObjectClass) {
|
666
|
+
((RubyModule)receiver).to_s(str);
|
667
|
+
if (str.length() > 0) {
|
668
|
+
str.appendString("::");
|
669
|
+
}
|
670
|
+
}
|
671
|
+
str.appendString(const_name);
|
672
|
+
throw new RubyException(RubyRuntime.NameErrorClass, "uninitialized constant " + str.toString());
|
673
|
+
}
|
674
|
+
|
675
|
+
//@RubyLevelMethod(name="const_missing", module=true)
|
660
676
|
public static RubyValue methodMissing(RubyValue receiver, RubyArray args) {
|
661
677
|
RubySymbol method_name = (RubySymbol)args.get(0);
|
662
678
|
RubyClass klass = receiver.getRubyClass();
|
@@ -138,6 +138,11 @@ klass.defineModuleMethod( "method_missing", new RubyVarArgMethod(){
|
|
138
138
|
protected RubyValue run(RubyValue receiver, RubyArray args, RubyBlock block ){
|
139
139
|
return RubyKernelModule.methodMissing(receiver, args);}
|
140
140
|
});
|
141
|
+
klass.defineModuleMethod( "const_missing", new RubyOneArgMethod(){
|
142
|
+
protected RubyValue run(RubyValue receiver, RubyValue arg, RubyBlock block ){
|
143
|
+
return RubyKernelModule.constMissing(receiver, arg);}
|
144
|
+
});
|
145
|
+
|
141
146
|
klass.defineModuleMethod( "binding", new RubyVarArgMethod(){
|
142
147
|
protected RubyValue run(RubyValue receiver, RubyArray args, RubyBlock block ){
|
143
148
|
return RubyKernelModule.binding(receiver, args);}
|
@@ -285,7 +285,7 @@ public abstract class RubyValue extends BlockCallStatus implements Cloneable {
|
|
285
285
|
|
286
286
|
RubyClass theClass = this.getRubyClass();
|
287
287
|
if (!this.respondTo(id)) {
|
288
|
-
throw new RubyException("can't convert " + this.getRubyClass().getName() + " into " + klass.getName());
|
288
|
+
throw new RubyException(RubyRuntime.TypeErrorClass, "can't convert " + this.getRubyClass().getName() + " into " + klass.getName());
|
289
289
|
}
|
290
290
|
|
291
291
|
RubyValue v = RubyAPI.callNoArgMethod(this, null, id);
|
@@ -9,6 +9,7 @@ import java.io.IOException;
|
|
9
9
|
|
10
10
|
import com.xruby.runtime.builtin.ObjectFactory;
|
11
11
|
import com.xruby.runtime.builtin.RubyArray;
|
12
|
+
import com.xruby.runtime.builtin.RubyRegexp;
|
12
13
|
import com.xruby.runtime.builtin.RubyString;
|
13
14
|
import com.xruby.runtime.lang.*;
|
14
15
|
|
@@ -28,7 +29,9 @@ public class RubyStringIO extends RubyBasic {
|
|
28
29
|
|
29
30
|
//@RubyAllocMethod
|
30
31
|
public static RubyStringIO alloc(RubyValue receiver) {
|
31
|
-
|
32
|
+
RubyStringIO res = new RubyStringIO();
|
33
|
+
res.setRubyClass((RubyClass) receiver);
|
34
|
+
return res;
|
32
35
|
}
|
33
36
|
|
34
37
|
//@RubyLevelMethod(name="initialize")
|
@@ -20,6 +20,17 @@ public class Number{
|
|
20
20
|
return ((Short)obj).shortValue();
|
21
21
|
else if ( obj instanceof Byte )
|
22
22
|
return ((Byte)obj).byteValue();
|
23
|
+
else if ( obj instanceof byte[] )
|
24
|
+
{
|
25
|
+
String strRes = "";
|
26
|
+
try{
|
27
|
+
strRes = new String( ((byte[])obj), "UTF-8");
|
28
|
+
}catch(java.io.UnsupportedEncodingException exc)
|
29
|
+
{
|
30
|
+
}
|
31
|
+
|
32
|
+
return strRes==null || strRes.length() == 0 ? 0 : Integer.parseInt(strRes);
|
33
|
+
}
|
23
34
|
|
24
35
|
String strRes = obj.toString();
|
25
36
|
return strRes==null || strRes.length() == 0 ? 0 : Integer.parseInt(strRes);
|
@@ -34,6 +45,17 @@ public class Number{
|
|
34
45
|
return ((Short)obj).shortValue();
|
35
46
|
else if ( obj instanceof Byte )
|
36
47
|
return ((Byte)obj).byteValue();
|
48
|
+
else if ( obj instanceof byte[] )
|
49
|
+
{
|
50
|
+
String strRes = "";
|
51
|
+
try{
|
52
|
+
strRes = new String( ((byte[])obj), "UTF-8");
|
53
|
+
}catch(java.io.UnsupportedEncodingException exc)
|
54
|
+
{
|
55
|
+
}
|
56
|
+
|
57
|
+
return strRes==null || strRes.length() == 0 ? 0 : Long.parseLong(strRes);
|
58
|
+
}
|
37
59
|
|
38
60
|
String strRes = obj.toString();
|
39
61
|
return strRes==null || strRes.length() == 0 ? 0 : Long.parseLong(strRes);
|
@@ -52,6 +74,17 @@ public class Number{
|
|
52
74
|
return ((Short)obj).shortValue();
|
53
75
|
else if ( obj instanceof Byte )
|
54
76
|
return ((Byte)obj).byteValue();
|
77
|
+
else if ( obj instanceof byte[] )
|
78
|
+
{
|
79
|
+
String strRes = "";
|
80
|
+
try{
|
81
|
+
strRes = new String( ((byte[])obj), "UTF-8");
|
82
|
+
}catch(java.io.UnsupportedEncodingException exc)
|
83
|
+
{
|
84
|
+
}
|
85
|
+
|
86
|
+
return strRes==null || strRes.length() == 0 ? 0 : Double.parseDouble(strRes);
|
87
|
+
}
|
55
88
|
|
56
89
|
String strRes = obj.toString();
|
57
90
|
return strRes==null || strRes.length() == 0 ? 0 : Double.parseDouble(strRes);
|
@@ -11,6 +11,8 @@ platform/bb/RubyVM/src/com/rho/file/IFileAccess.java
|
|
11
11
|
platform/bb/RubyVM/src/com/rho/file/IRAFile.java
|
12
12
|
platform/bb/RubyVM/src/com/rho/file/SimpleFile.java
|
13
13
|
platform/bb/RubyVM/src/com/rho/file/RandomAccessFile.java
|
14
|
+
platform/bb/RubyVM/src/com/rho/file/FileAccessBB.java
|
15
|
+
platform/bb/RubyVM/src/com/rho/file/RhoFile.java
|
14
16
|
platform/bb/RubyVM/src/com/rho/IRhoLogSink.java
|
15
17
|
platform/bb/RubyVM/src/com/rho/IRhoRubyHelper.java
|
16
18
|
platform/bb/RubyVM/src/com/rho/Mutex.java
|
@@ -254,6 +256,7 @@ platform/bb/RubyVM/src/j2me/lang/UnsupportedOperationException.java
|
|
254
256
|
platform/bb/RubyVM/src/j2me/math/HugeDigit.java
|
255
257
|
platform/bb/RubyVM/src/j2me/math/HugeInt.java
|
256
258
|
platform/bb/RubyVM/src/j2me/math/HugeIntHelper.java
|
259
|
+
platform/bb/RubyVM/src/j2me/math/Number.java
|
257
260
|
platform/bb/RubyVM/src/j2me/nio/Buffer.java
|
258
261
|
platform/bb/RubyVM/src/j2me/nio/BufferUnderflowException.java
|
259
262
|
platform/bb/RubyVM/src/j2me/nio/ByteBuffer.java
|