rhodes 3.1.1 → 3.2.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -2
- data/doc/alert-api.txt +51 -0
- data/doc/build.txt +52 -43
- data/doc/configuration.txt +9 -5
- data/doc/connect-to-web-services.txt +4 -4
- data/doc/device-caps.txt +80 -28
- data/doc/extensions.txt +1 -1
- data/doc/install.txt +1 -1
- data/doc/introduction.txt +1 -1
- data/doc/rhodes-api.txt +62 -62
- data/doc/rhom.txt +36 -23
- data/doc/{rhodes-api/ringtonemanager-api.txt → ringtonemanager-api.txt} +0 -0
- data/doc/scanner.txt +507 -0
- data/doc/simulator.txt +6 -1
- data/doc/synchronization.txt +32 -27
- data/doc/{rhodes-api/timer-api.txt → timer-api.txt} +1 -1
- data/doc/tutorial.txt +8 -8
- data/installer/OLD-README.html +81 -0
- data/installer/README.html +6 -4
- data/installer/RHOSTUDIO-LICENSE.txt +675 -0
- data/installer/rhostudio.nsi +147 -20
- data/lib/build/compileRB/compileRB.rb +5 -2
- data/lib/build/jake.rb +3 -2
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/platform/bb/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +391 -111
- data/lib/extensions/digest-md5/ext/Rakefile +1 -1
- data/lib/extensions/digest-sha1/ext/Rakefile +1 -1
- data/lib/extensions/digest/ext/Rakefile +1 -1
- data/lib/extensions/fcntl/ext/Rakefile +1 -1
- data/lib/extensions/mspec/mspec/expectations/expectations.rb +4 -4
- data/lib/extensions/mspec/mspec/expectations/should.rb +9 -8
- data/lib/extensions/mspec/mspec/guards.rb +3 -0
- data/lib/extensions/mspec/mspec/guards/conflict.rb +7 -2
- data/lib/extensions/mspec/mspec/guards/endian.rb +7 -10
- data/lib/extensions/mspec/mspec/guards/feature.rb +47 -0
- data/lib/extensions/mspec/mspec/guards/guard.rb +18 -13
- data/lib/extensions/mspec/mspec/guards/platform.rb +4 -0
- data/lib/extensions/mspec/mspec/guards/specified.rb +66 -0
- data/lib/extensions/mspec/mspec/guards/user.rb +17 -0
- data/lib/extensions/mspec/mspec/helpers.rb +6 -4
- data/lib/extensions/mspec/mspec/helpers/const_lookup.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/datetime.rb +30 -0
- data/lib/extensions/mspec/mspec/helpers/ducktype.rb +4 -4
- data/lib/extensions/mspec/mspec/helpers/encode.rb +21 -0
- data/lib/extensions/mspec/mspec/helpers/environment.rb +13 -9
- data/lib/extensions/mspec/mspec/helpers/fixture.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/flunk.rb +1 -1
- data/lib/extensions/mspec/mspec/helpers/fmode.rb +15 -0
- data/lib/extensions/mspec/mspec/helpers/io.rb +21 -2
- data/lib/extensions/mspec/mspec/helpers/language_version.rb +13 -3
- data/lib/extensions/mspec/mspec/helpers/numeric.rb +89 -0
- data/lib/extensions/mspec/mspec/helpers/ruby_exe.rb +138 -123
- data/lib/extensions/mspec/mspec/helpers/singleton_class.rb +7 -0
- data/lib/extensions/mspec/mspec/helpers/stasy.rb +33 -0
- data/lib/extensions/mspec/mspec/helpers/tmp.rb +34 -26
- data/lib/extensions/mspec/mspec/matchers.rb +9 -0
- data/lib/extensions/mspec/mspec/matchers/base.rb +14 -14
- data/lib/extensions/mspec/mspec/matchers/be_computed_by.rb +36 -0
- data/lib/extensions/mspec/mspec/matchers/be_computed_by_function.rb +35 -0
- data/lib/extensions/mspec/mspec/matchers/be_valid_dns_name.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/equal_utf16.rb +5 -7
- data/lib/extensions/mspec/mspec/matchers/have_class_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_constant.rb +6 -24
- data/lib/extensions/mspec/mspec/matchers/have_data.rb +49 -0
- data/lib/extensions/mspec/mspec/matchers/have_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_instance_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_protected_instance_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_public_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_singleton_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/output_to_fd.rb +71 -71
- data/lib/extensions/mspec/mspec/matchers/raise_error.rb +4 -3
- data/lib/extensions/mspec/mspec/matchers/stringsymboladapter.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/variable.rb +28 -0
- data/lib/extensions/mspec/mspec/mocks/mock.rb +102 -60
- data/lib/extensions/mspec/mspec/mocks/object.rb +5 -1
- data/lib/extensions/mspec/mspec/mocks/proxy.rb +41 -6
- data/lib/extensions/mspec/mspec/runner.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/actions/debug.rb +2 -0
- data/lib/extensions/mspec/mspec/runner/context.rb +58 -13
- data/lib/extensions/mspec/mspec/runner/exception.rb +7 -6
- data/lib/extensions/mspec/mspec/runner/formatters.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/formatters/dotted.rb +15 -3
- data/lib/extensions/mspec/mspec/runner/formatters/profile.rb +70 -0
- data/lib/extensions/mspec/mspec/runner/mspec.rb +32 -19
- data/lib/extensions/mspec/mspec/runner/object.rb +4 -0
- data/lib/extensions/mspec/mspec/runner/shared.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/name_map.rb +8 -1
- data/lib/extensions/mspec/mspec/utils/options.rb +25 -8
- data/lib/extensions/mspec/mspec/utils/ruby_name.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/script.rb +4 -4
- data/lib/extensions/mspec/mspec/version.rb +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +1 -1
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +427 -149
- data/lib/extensions/set/tsort.rb +242 -0
- data/lib/extensions/thread/monitor.rb +277 -0
- data/lib/extensions/thread/thread.rb +357 -0
- data/lib/framework/base64.rb +4 -4
- data/lib/framework/date/format.rb +36 -64
- data/lib/framework/dateOrig.rb +40 -23
- data/lib/framework/ostruct.rb +14 -8
- data/lib/framework/rational.rb +2 -2
- data/lib/framework/rbconfig.rb +71 -0
- data/lib/framework/rho/rho.rb +46 -43
- data/lib/framework/rho/rhocontact.rb +60 -36
- data/lib/framework/rho/rhofsconnector.rb +2 -2
- data/lib/framework/rho/rhoutils.rb +10 -6
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +0 -13
- data/lib/framework/rhom/rhom.rb +64 -1
- data/lib/framework/rhom/rhom_object_factory.rb +4 -4
- data/lib/framework/rhosystem.rb +27 -25
- data/lib/framework/time.rb +48 -16
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/lib/test/framework_test.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +35 -9
- data/platform/android/Rhodes/default.properties +1 -1
- data/platform/android/Rhodes/jni/Android.mk +5 -4
- data/platform/android/Rhodes/jni/include/rhodes.h +65 -3
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +3 -1
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_geolocation_GeoLocationImpl.h +12 -2
- data/platform/android/Rhodes/jni/src/callbacks.cpp +6 -2
- data/platform/android/Rhodes/jni/src/event.cpp +60 -1
- data/platform/android/Rhodes/jni/src/geolocation.cpp +42 -13
- data/platform/android/Rhodes/jni/src/mapview.cpp +169 -42
- data/platform/android/Rhodes/jni/src/phonebook.cpp +90 -74
- data/platform/android/Rhodes/jni/src/rhodes.cpp +91 -3
- data/platform/android/Rhodes/jni/src/rhodesapp.cpp +1 -1
- data/platform/android/Rhodes/res/drawable/callout_a1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_d.png +0 -0
- data/platform/android/Rhodes/res/drawable/google.png +0 -0
- data/platform/android/Rhodes/res/drawable/location.png +0 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +12 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +44 -21
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +12 -25
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/PopupActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothDeviceListActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSettings.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +13 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +127 -37
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +69 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +287 -124
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Annotation.java +6 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +57 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +296 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/CalloutOverlay.java +143 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +109 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +53 -5
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +16 -119
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessor.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +284 -120
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +58 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +42 -77
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/PerformOnUiThread.java +1 -1
- data/platform/android/build/RhodesSRC_build.files +2 -0
- data/platform/android/build/android.rake +90 -40
- data/platform/android/build/android_tools.rb +16 -0
- data/platform/android/build/androidcommon.rb +2 -0
- data/platform/android/build/librhocommon_build.files +3 -0
- data/platform/android/build/libruby_build.files +2 -1
- data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +6 -2
- data/platform/bb/RubyVM/src/com/rho/sync/ClientRegister.java +3 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +17 -24
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +26 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncProtocol_3.java +6 -1
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +4 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +50 -54
- data/platform/bb/build/bb.rake +4 -4
- data/platform/bb/rhodes/src/com/rho/rubyext/RhoPhonebook.java +6 -6
- data/platform/bb/rhodes/src/rhomobile/camera/Camera.java +7 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +10 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +29 -0
- data/platform/iphone/Classes/Dispatcher/Dispatcher.c +1 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.h +2 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.m +23 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.h +6 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.m +5 -1
- data/platform/iphone/Classes/MapView/MapViewController.m +48 -4
- data/platform/iphone/Classes/MapView/MapViewManager.m +7 -0
- data/platform/iphone/Classes/Phonebook/phonebook.m +44 -0
- data/platform/iphone/Classes/Rhodes.m +1 -1
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rbuild/iphone.rake +3 -1
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +18 -7
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +3 -2
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +3 -3
- data/platform/linux/files.txt +2 -2
- data/platform/linux/target/compiler/rubylinux +0 -0
- data/platform/mac/RubyMac/RubyMac.xcodeproj/project.pbxproj +8 -2
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/osx/build/osx.rake +1 -3
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +65 -26
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +5 -1
- data/platform/shared/common/Android.mk +3 -0
- data/platform/shared/common/AppMenu.cpp +2 -2
- data/platform/shared/common/RhoPort.h +2 -2
- data/platform/shared/common/RhodesApp.cpp +20 -2
- data/platform/shared/common/RhodesApp.h +1 -0
- data/platform/shared/common/ThreadQueue.cpp +5 -0
- data/platform/shared/common/ThreadQueue.h +1 -0
- data/platform/shared/common/map/BaseMapEngine.cpp +1393 -0
- data/platform/shared/common/map/BaseMapEngine.h +368 -0
- data/platform/shared/common/map/ESRIMapEngine.cpp +23 -896
- data/platform/shared/common/map/ESRIMapEngine.h +11 -243
- data/platform/shared/common/map/GeocodingMapEngine.cpp +200 -0
- data/platform/shared/common/map/GeocodingMapEngine.h +86 -0
- data/platform/shared/common/map/GoogleMapEngine.cpp +70 -135
- data/platform/shared/common/map/GoogleMapEngine.h +21 -38
- data/platform/shared/common/map/MapEngine.cpp +145 -24
- data/platform/shared/common/map/MapEngine.h +156 -54
- data/platform/shared/common/map/OSMMapEngine.cpp +94 -0
- data/platform/shared/common/map/OSMMapEngine.h +65 -0
- data/platform/shared/curl/lib/config-symbian.h +3 -1
- data/platform/shared/db/DBAdapter.cpp +30 -4
- data/platform/shared/db/DBAdapter.h +24 -1
- data/platform/shared/logging/RhoLog.h +26 -0
- data/platform/shared/net/AsyncHttp.cpp +6 -2
- data/platform/shared/net/CompatWince.cpp +1 -0
- data/platform/shared/net/HttpServer.cpp +5 -2
- data/platform/shared/qt/rhodes/RhoSimulator.h +1 -1
- data/platform/shared/qt/rhodes/impl/GeoLocationImpl.cpp +6 -0
- data/platform/shared/qt/rhodes/impl/MapViewImpl.cpp +4 -0
- data/platform/shared/qt/rhodes/impl/PhonebookImpl.cpp +12 -0
- data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +26 -0
- data/platform/shared/qt/rholib/rholib.pro +14 -19
- data/platform/shared/qt/rubylib/rubylib.pro +7 -4
- data/platform/shared/ruby/Android.mk +3 -2
- data/platform/shared/ruby/GPL +340 -0
- data/platform/shared/ruby/android/ruby/config.h +283 -0
- data/platform/shared/ruby/array.c +1318 -595
- data/platform/shared/ruby/bignum.c +1092 -278
- data/platform/shared/ruby/class.c +689 -201
- data/platform/shared/ruby/compar.c +22 -20
- data/platform/shared/ruby/compile.c +327 -249
- data/platform/shared/ruby/complex.c +593 -138
- data/platform/shared/ruby/cont.c +213 -95
- data/platform/shared/ruby/debug.c +15 -10
- data/platform/shared/ruby/debug.h +1 -1
- data/platform/shared/ruby/dir.c +247 -104
- data/platform/shared/ruby/dln.c +102 -309
- data/platform/shared/ruby/dln.h +3 -3
- data/platform/shared/ruby/dln_find.c +305 -0
- data/platform/shared/ruby/dmydln.c +7 -2
- data/platform/shared/ruby/dmyversion.c +2 -0
- data/platform/shared/ruby/enc/Makefile.in +1 -0
- data/platform/shared/ruby/enc/big5.c +142 -5
- data/platform/shared/ruby/enc/depend +1 -0
- data/platform/shared/ruby/enc/emacs_mule.c +1 -1
- data/platform/shared/ruby/enc/encdb.c +3 -1
- data/platform/shared/ruby/enc/euc_tw.c +1 -10
- data/platform/shared/ruby/enc/iso_2022_jp.h +36 -0
- data/platform/shared/ruby/enc/iso_8859_5.c +1 -1
- data/platform/shared/ruby/enc/koi8_r.c +1 -1
- data/platform/shared/ruby/enc/koi8_u.c +1 -1
- data/platform/shared/ruby/enc/prelude.rb +1 -1
- data/platform/shared/ruby/enc/shift_jis.c +3 -3
- data/platform/shared/ruby/enc/trans/big5-hkscs-tbl.rb +18385 -0
- data/platform/shared/ruby/enc/trans/big5-uao-tbl.rb +19784 -0
- data/platform/shared/ruby/enc/trans/big5.c +53810 -12566
- data/platform/shared/ruby/enc/trans/big5.trans +10 -1
- data/platform/shared/ruby/enc/trans/chinese.c +113 -71
- data/platform/shared/ruby/enc/trans/chinese.trans +6 -4
- data/platform/shared/ruby/enc/trans/escape.c +3 -3
- data/platform/shared/ruby/enc/trans/escape.trans +3 -3
- data/platform/shared/ruby/enc/trans/gb18030-tbl.rb +32 -0
- data/platform/shared/ruby/enc/trans/gb18030.c +17431 -91305
- data/platform/shared/ruby/enc/trans/gb18030.trans +105 -5
- data/platform/shared/ruby/enc/trans/gbk.c +13 -13
- data/platform/shared/ruby/enc/trans/iso2022.c +374 -13
- data/platform/shared/ruby/enc/trans/iso2022.trans +313 -0
- data/platform/shared/ruby/enc/trans/japanese.c +26 -24
- data/platform/shared/ruby/enc/trans/japanese_euc.c +30 -30
- data/platform/shared/ruby/enc/trans/japanese_sjis.c +282 -276
- data/platform/shared/ruby/enc/trans/korean.c +182 -159
- data/platform/shared/ruby/enc/trans/newline.c +18 -14
- data/platform/shared/ruby/enc/trans/newline.trans +15 -11
- data/platform/shared/ruby/enc/trans/single_byte.c +497 -394
- data/platform/shared/ruby/enc/trans/single_byte.trans +1 -2
- data/platform/shared/ruby/enc/trans/transdb.c +1 -1
- data/platform/shared/ruby/enc/trans/utf8_mac-tbl.rb +945 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.c +10853 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.trans +242 -0
- data/platform/shared/ruby/enc/trans/utf_16_32.c +89 -86
- data/platform/shared/ruby/enc/unicode.c +30 -8779
- data/platform/shared/ruby/enc/unicode/name2ctype.h +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.h.blt +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.kwd +16711 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.src +16711 -0
- data/platform/shared/ruby/enc/utf_16be.c +3 -4
- data/platform/shared/ruby/enc/utf_16le.c +3 -4
- data/platform/shared/ruby/enc/utf_8.c +3 -1
- data/platform/shared/ruby/enc/x_emoji.h +26 -0
- data/platform/shared/ruby/encdb.h +18 -2
- data/platform/shared/ruby/encoding.c +248 -111
- data/platform/shared/ruby/enum.c +1006 -200
- data/platform/shared/ruby/enumerator.c +555 -254
- data/platform/shared/ruby/error.c +478 -79
- data/platform/shared/ruby/eval.c +186 -94
- data/platform/shared/ruby/eval_error.c +16 -10
- data/platform/shared/ruby/eval_intern.h +24 -9
- data/platform/shared/ruby/eval_jump.c +2 -1
- data/platform/shared/ruby/ext/geolocation/geolocation.i +10 -1
- data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +49 -6
- data/platform/shared/ruby/ext/mapview/mapview.i +6 -0
- data/platform/shared/ruby/ext/mapview/mapview_wrap.c +279 -0
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +402 -124
- data/platform/shared/ruby/ext/phonebook/phonebook.i +41 -7
- data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +216 -47
- data/platform/shared/ruby/ext/rho/rhoruby.c +9 -5
- data/platform/shared/ruby/ext/rho/rhosupport.c +1 -1
- data/platform/shared/ruby/ext/socket/getaddrinfo.c +4 -0
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +2 -2
- data/platform/shared/ruby/ext/syncengine/syncengine.i +14 -5
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +55 -7
- data/platform/shared/ruby/ext/system/system.i +7 -2
- data/platform/shared/ruby/ext/system/system_wrap.c +28 -2
- data/platform/shared/ruby/file.c +1243 -683
- data/platform/shared/ruby/gc.c +509 -217
- data/platform/shared/ruby/gc.h +7 -5
- data/platform/shared/ruby/generated/insns.inc +11 -9
- data/platform/shared/ruby/generated/insns_info.inc +69 -62
- data/platform/shared/ruby/generated/known_errors.inc +360 -245
- data/platform/shared/ruby/generated/lex.c +49 -47
- data/platform/shared/ruby/generated/node_name.inc +0 -8
- data/platform/shared/ruby/generated/optinsn.inc +1 -1
- data/platform/shared/ruby/generated/parse.c +4480 -4162
- data/platform/shared/ruby/generated/parse.h +13 -14
- data/platform/shared/ruby/generated/vm.inc +485 -269
- data/platform/shared/ruby/generated/vmtc.inc +2 -1
- data/platform/shared/ruby/golf_prelude.c +21 -4
- data/platform/shared/ruby/goruby.c +1 -1
- data/platform/shared/ruby/hash.c +429 -180
- data/platform/shared/ruby/ia64.s +42 -0
- data/platform/shared/ruby/id.c +13 -14
- data/platform/shared/ruby/id.h +25 -18
- data/platform/shared/ruby/include/ruby.h +1 -1
- data/platform/shared/ruby/include/ruby/backward/rubysig.h +2 -2
- data/platform/shared/ruby/include/ruby/defines.h +50 -29
- data/platform/shared/ruby/include/ruby/encoding.h +40 -14
- data/platform/shared/ruby/include/ruby/intern.h +81 -24
- data/platform/shared/ruby/include/ruby/io.h +4 -4
- data/platform/shared/ruby/include/ruby/missing.h +28 -18
- data/platform/shared/ruby/include/ruby/oniguruma.h +22 -7
- data/platform/shared/ruby/include/ruby/re.h +4 -4
- data/platform/shared/ruby/include/ruby/ruby.h +294 -76
- data/platform/shared/ruby/include/ruby/st.h +27 -9
- data/platform/shared/ruby/include/ruby/util.h +14 -6
- data/platform/shared/ruby/include/ruby/version.h +61 -0
- data/platform/shared/ruby/include/ruby/vm.h +21 -1
- data/platform/shared/ruby/include/ruby/win32.h +223 -63
- data/platform/shared/ruby/inits.c +1 -1
- data/platform/shared/ruby/insns.def +236 -111
- data/platform/shared/ruby/io.c +2188 -774
- data/platform/shared/ruby/iphone/ruby/config.h +75 -45
- data/platform/shared/ruby/iseq.c +261 -104
- data/platform/shared/ruby/iseq.h +13 -11
- data/platform/shared/ruby/linux/ruby/config.h +95 -100
- data/platform/shared/ruby/load.c +115 -81
- data/platform/shared/ruby/main.c +122 -0
- data/platform/shared/ruby/marshal.c +418 -230
- data/platform/shared/ruby/math.c +219 -152
- data/platform/shared/ruby/method.h +103 -0
- data/platform/shared/ruby/miniprelude.c +35 -23
- data/platform/shared/ruby/missing/acosh.c +4 -4
- data/platform/shared/ruby/missing/alloca.c +4 -1
- data/platform/shared/ruby/missing/close.c +67 -0
- data/platform/shared/ruby/missing/crypt.c +9 -9
- data/platform/shared/ruby/missing/dup2.c +0 -1
- data/platform/shared/ruby/missing/langinfo.c +4 -3
- data/platform/shared/ruby/missing/signbit.c +19 -0
- data/platform/shared/ruby/newline.c +18 -14
- data/platform/shared/ruby/node.c +921 -0
- data/platform/shared/ruby/node.h +14 -47
- data/platform/shared/ruby/numeric.c +544 -302
- data/platform/shared/ruby/object.c +430 -426
- data/platform/shared/ruby/pack.c +677 -628
- data/platform/shared/ruby/parse.y +847 -523
- data/platform/shared/ruby/proc.c +631 -341
- data/platform/shared/ruby/process.c +811 -421
- data/platform/shared/ruby/random.c +858 -177
- data/platform/shared/ruby/range.c +234 -133
- data/platform/shared/ruby/rational.c +936 -173
- data/platform/shared/ruby/re.c +351 -192
- data/platform/shared/ruby/regcomp.c +125 -138
- data/platform/shared/ruby/regenc.c +26 -25
- data/platform/shared/ruby/regenc.h +7 -3
- data/platform/shared/ruby/regerror.c +44 -34
- data/platform/shared/ruby/regexec.c +31 -38
- data/platform/shared/ruby/regint.h +16 -17
- data/platform/shared/ruby/regparse.c +266 -136
- data/platform/shared/ruby/regparse.h +4 -1
- data/platform/shared/ruby/regsyntax.c +2 -2
- data/platform/shared/ruby/revision.h +0 -1
- data/platform/shared/ruby/ruby.c +276 -248
- data/platform/shared/ruby/safe.c +14 -8
- data/platform/shared/ruby/signal.c +61 -68
- data/platform/shared/ruby/sprintf.c +77 -38
- data/platform/shared/ruby/st.c +437 -61
- data/platform/shared/ruby/strftime.c +252 -110
- data/platform/shared/ruby/string.c +1361 -1009
- data/platform/shared/ruby/struct.c +200 -133
- data/platform/shared/ruby/symbian/ruby/config.h +56 -24
- data/platform/shared/ruby/thread.c +732 -247
- data/platform/shared/ruby/thread_pthread.c +122 -69
- data/platform/shared/ruby/thread_pthread.h +4 -1
- data/platform/shared/ruby/thread_win32.c +73 -41
- data/platform/shared/ruby/thread_win32.h +1 -1
- data/platform/shared/ruby/time.c +3271 -919
- data/platform/shared/ruby/timev.h +21 -0
- data/platform/shared/ruby/transcode.c +289 -95
- data/platform/shared/ruby/transcode_data.h +17 -14
- data/platform/shared/ruby/transdb.h +32 -0
- data/platform/shared/ruby/util.c +330 -123
- data/platform/shared/ruby/variable.c +294 -176
- data/platform/shared/ruby/version.c +71 -2
- data/platform/shared/ruby/version.h +22 -19
- data/platform/shared/ruby/vm.c +368 -203
- data/platform/shared/ruby/vm_core.h +110 -66
- data/platform/shared/ruby/vm_dump.c +51 -44
- data/platform/shared/ruby/vm_eval.c +547 -230
- data/platform/shared/ruby/vm_exec.c +3 -3
- data/platform/shared/ruby/vm_insnhelper.c +397 -200
- data/platform/shared/ruby/vm_insnhelper.h +27 -14
- data/platform/shared/ruby/vm_method.c +493 -296
- data/platform/shared/ruby/vm_opts.h +1 -1
- data/platform/shared/ruby/{missing/vsnprintf.c → vsnprintf.c} +114 -74
- data/platform/shared/ruby/win32/dir.h +5 -4
- data/platform/shared/ruby/win32/miniprelude.c +34 -21
- data/platform/shared/ruby/win32/newline.c +18 -14
- data/platform/shared/ruby/win32/ruby/config.h +58 -20
- data/platform/shared/ruby/win32/win32.c +1398 -475
- data/platform/shared/ruby/wince/direct.c +17 -1
- data/platform/shared/ruby/wince/io_wce.c +16 -8
- data/platform/shared/ruby/wince/ruby/config.h +54 -24
- data/platform/shared/ruby/wince/sys/stat.c +81 -0
- data/platform/shared/ruby/wince/time_wce.c +47 -4
- data/platform/shared/ruby/wince/wince.h +16 -0
- data/platform/shared/rubyext/Android.mk +1 -1
- data/platform/shared/rubyext/GeoLocation.cpp +93 -48
- data/platform/shared/rubyext/GeoLocation.h +9 -4
- data/platform/shared/rubyext/System.cpp +6 -0
- data/platform/shared/sync/ClientRegister.cpp +1 -1
- data/platform/shared/sync/SyncEngine.cpp +15 -55
- data/platform/shared/sync/SyncEngine.h +4 -4
- data/platform/shared/sync/SyncProtocol_3.h +6 -1
- data/platform/shared/sync/SyncSource.cpp +6 -1
- data/platform/shared/sync/SyncSource.h +1 -0
- data/platform/shared/sync/SyncThread.cpp +20 -9
- data/platform/shared/sync/SyncThread.h +14 -9
- data/platform/shared/wtl80/include/atlapp.h +2 -0
- data/platform/symbian/build/symbian.rake +56 -5
- data/platform/symbian/curl/curl.pro +4 -0
- data/platform/symbian/rhodes/rhodes.pro +16 -4
- data/platform/symbian/rhodes/src/phonebook/ruby_phonebook.cpp +10 -0
- data/platform/symbian/rholib/rholib.pro +4 -0
- data/platform/symbian/rubylib/rubylib.pro +6 -2
- data/platform/symbian/sqlite3/sqlite3.pro +2 -1
- data/platform/symbian/syncengine/syncengine.pro +4 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +333 -0
- data/platform/wm/build/build_inf.js +1 -0
- data/platform/wm/build/wm.rake +43 -17
- data/platform/wm/rhodes.sln +140 -76
- data/platform/wm/rhodes/Alert.cpp +1 -1
- data/platform/wm/rhodes/IBrowserEngine.cpp +10 -0
- data/platform/wm/rhodes/IBrowserEngine.h +24 -0
- data/platform/wm/rhodes/IEBrowserEngine.cpp +179 -0
- data/platform/wm/rhodes/IEBrowserEngine.h +36 -0
- data/platform/wm/rhodes/MainWindow.cpp +176 -178
- data/platform/wm/rhodes/MainWindow.h +78 -20
- data/platform/wm/rhodes/MapView/Graphics.h +10 -0
- data/platform/wm/rhodes/MapView/MapViewManager.cpp +7 -0
- data/platform/wm/rhodes/OutlookApp.cpp +3 -3
- data/platform/wm/rhodes/RhoWebKitBrowser.cpp +10 -0
- data/platform/wm/rhodes/Rhodes.cpp +499 -443
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +1 -4
- data/platform/wm/rhodes/bluetooth/Bluetooth.h +1 -1
- data/platform/wm/rhodes/camera/Camera.cpp +3 -6
- data/platform/wm/rhodes/phonebook/phonebook.cpp +20 -11
- data/platform/wm/rhodes/phonebook/phonebook.h +4 -2
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +3 -3
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.cpp +12 -7
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.h +1 -1
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +24 -6
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +0 -32
- data/platform/wm/rhodes/rho/rubyext/calendar.cpp +1 -1
- data/platform/wm/rhodes/rhodes.vcproj +1792 -129
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.cpp +384 -0
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.h +41 -0
- data/platform/wm/rhodes/signature/Signature.cpp +4 -8
- data/platform/wm/rhodes/signature/Signature.h +1 -1
- data/platform/wm/rhodes/simulator/MainWindowQt.cpp +1 -0
- data/platform/wm/rhodes/simulator/MainWindowQt.h +2 -0
- data/platform/wm/rhodes/stdafx.h +17 -5
- data/platform/wm/rhoelements.sln +447 -0
- data/platform/wm/rubylib/rubylib.vcproj +355 -10
- data/platform/wm/sqlite3/sqlite3.vcproj +305 -0
- data/platform/wm/syncengine/syncengine.vcproj +309 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/RhoAppRunner/Program.cs +2 -2
- data/platform/wp7/RhoRubyExtGen/RhoCamera.cs +59 -0
- data/platform/wp7/RhoRubyExtGen/RhoNativeBar.cs +3 -20
- data/platform/wp7/RhoRubyExtGen/RhoRubyExtGen.csproj +1 -0
- data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +6 -9
- data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +2 -1
- data/platform/wp7/RhoRubyLib/rubyext/RhoCamera.cs +130 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoNativeBar.cs +5 -73
- data/res/build-tools/RhoRuby.exe +0 -0
- data/res/build-tools/RubyMac +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/rubylinux +0 -0
- data/res/generators/rhogen.rb +5 -0
- data/res/generators/templates/application/app/helpers/browser_helper.rb +4 -0
- data/res/generators/templates/application/app/index.erb +6 -2
- data/res/generators/templates/application/app/layout.erb +8 -5
- data/res/generators/templates/application/build.yml +3 -1
- data/res/generators/templates/application/gitignore +7 -0
- data/res/generators/templates/application/public/css/android.css +366 -5
- data/res/generators/templates/application/public/css/blackberry.css +16 -5
- data/res/generators/templates/application/public/css/iphone.css +349 -5
- data/res/generators/templates/application/public/css/windows_mobile.css +105 -0
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.css → jquery.mobile-1.0b3.css} +64 -5
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.js → jquery.mobile-1.0b3.js} +1125 -727
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.css +8 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.js +169 -0
- data/res/generators/templates/application/public/jquery/{jquery-1.6.2.js → jquery-1.6.3.js} +226 -163
- data/res/generators/templates/application/public/jquery/jquery-1.6.3.min.js +4 -0
- data/res/generators/templates/application/public/js/wp7.js +5 -0
- data/res/generators/templates/model/edit.erb +6 -2
- data/res/generators/templates/model/index.erb +8 -4
- data/res/generators/templates/model/new.erb +3 -1
- data/res/generators/templates/model/show.erb +6 -2
- data/rhobuild.yml.example +0 -1
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/spec/core/argf/argf_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/argf/binmode_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/argf/bytes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/chars_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/close_spec.rb +31 -5
- data/spec/framework_spec/app/spec/core/argf/closed_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/argf/each_byte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_char_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/each_line_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/eof_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/file_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/filename_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/fileno_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/getc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/gets_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/lineno_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/argf/path_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/pos_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/read_spec.rb +19 -20
- data/spec/framework_spec/app/spec/core/argf/readchar_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readline_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/rewind_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/argf/seek_spec.rb +6 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_byte.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/each_char.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_line.rb +9 -3
- data/spec/framework_spec/app/spec/core/argf/shared/eof.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/filename.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/fileno.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/getc.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/gets.rb +41 -43
- data/spec/framework_spec/app/spec/core/argf/shared/pos.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/readlines.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/skip_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/argf/tell_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_io_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/allocate_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/append_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/array_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/assoc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/choice_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/clear_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/collect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/combination_spec.rb +38 -13
- data/spec/framework_spec/app/spec/core/array/compact_spec.rb +33 -11
- data/spec/framework_spec/app/spec/core/array/comparison_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/array/concat_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/constructor_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/cycle_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/array/delete_at_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/delete_if_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/array/delete_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/array/drop_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/drop_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/each_index_spec.rb +29 -30
- data/spec/framework_spec/app/spec/core/array/each_spec.rb +8 -33
- data/spec/framework_spec/app/spec/core/array/element_reference_spec.rb +30 -6
- data/spec/framework_spec/app/spec/core/array/element_set_spec.rb +19 -2
- data/spec/framework_spec/app/spec/core/array/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/equal_value_spec.rb +34 -3
- data/spec/framework_spec/app/spec/core/array/fetch_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/fill_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/array/find_index_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/first_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/fixtures/classes.rb +447 -6
- data/spec/framework_spec/app/spec/core/array/flatten_spec.rb +42 -19
- data/spec/framework_spec/app/spec/core/array/frozen_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/array/hash_spec.rb +22 -3
- data/spec/framework_spec/app/spec/core/array/include_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/index_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/insert_spec.rb +13 -11
- data/spec/framework_spec/app/spec/core/array/inspect_spec.rb +33 -3
- data/spec/framework_spec/app/spec/core/array/intersection_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/join_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/array/keep_if_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/last_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/array/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/map_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/minus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/array/multiply_spec.rb +23 -10
- data/spec/framework_spec/app/spec/core/array/new_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/nitems_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/pack/a_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/pack/at_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/array/pack/b_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/array/pack/c_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/d_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/e_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/f_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/g_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/h_spec.rb +201 -0
- data/spec/framework_spec/app/spec/core/array/pack/i_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/l_spec.rb +193 -0
- data/spec/framework_spec/app/spec/core/array/pack/m_spec.rb +337 -0
- data/spec/framework_spec/app/spec/core/array/pack/n_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/pack/q_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/array/pack/s_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/basic.rb +57 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/encodings.rb +16 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/float.rb +277 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/integer.rb +381 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/numeric_basic.rb +54 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/string.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/unicode.rb +89 -0
- data/spec/framework_spec/app/spec/core/array/pack/u_spec.rb +130 -0
- data/spec/framework_spec/app/spec/core/array/pack/v_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/w_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/array/pack/x_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/array/pack/z_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/array/pack_spec.rb +409 -369
- data/spec/framework_spec/app/spec/core/array/partition_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/permutation_spec.rb +34 -15
- data/spec/framework_spec/app/spec/core/array/plus_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/pop_spec.rb +17 -4
- data/spec/framework_spec/app/spec/core/array/product_spec.rb +49 -5
- data/spec/framework_spec/app/spec/core/array/push_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/rassoc_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/reject_spec.rb +42 -29
- data/spec/framework_spec/app/spec/core/array/repeated_combination_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/repeated_permutation_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/array/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/reverse_each_spec.rb +26 -39
- data/spec/framework_spec/app/spec/core/array/reverse_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/array/rindex_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/array/rotate_spec.rb +85 -0
- data/spec/framework_spec/app/spec/core/array/sample_spec.rb +4 -10
- data/spec/framework_spec/app/spec/core/array/select_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/array/shared/clone.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/shared/collect.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/shared/enumeratorize.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/shared/eql.rb +9 -5
- data/spec/framework_spec/app/spec/core/array/shared/indexes.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/shared/join.rb +122 -90
- data/spec/framework_spec/app/spec/core/array/shared/keep_if.rb +11 -0
- data/spec/framework_spec/app/spec/core/array/shared/slice.rb +67 -6
- data/spec/framework_spec/app/spec/core/array/shift_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/array/shuffle_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/array/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/slice_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/array/sort_by_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/array/sort_spec.rb +65 -65
- data/spec/framework_spec/app/spec/core/array/take_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/take_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/to_a_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/array/to_ary_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/to_s_spec.rb +2 -5
- data/spec/framework_spec/app/spec/core/array/transpose_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/array/union_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/uniq_spec.rb +41 -15
- data/spec/framework_spec/app/spec/core/array/unshift_spec.rb +9 -7
- data/spec/framework_spec/app/spec/core/array/values_at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/zip_spec.rb +15 -3
- data/spec/framework_spec/app/spec/core/basicobject/__send___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/ancestors_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/basicobject_spec.rb +67 -0
- data/spec/framework_spec/app/spec/core/basicobject/class_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_value_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/common.rb +5 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/remove_method_missing.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/initialize_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_eval_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_exec_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/basicobject/method_missing_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/basicobject/new_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/basicobject/not_equal_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/not_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_added_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_removed_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_undefined_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/basicobject/superclass_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/bignum/abs_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_and_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/bit_or_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_xor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/comparison_spec.rb +143 -20
- data/spec/framework_spec/app/spec/core/bignum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/div_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divide_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divmod_spec.rb +11 -6
- data/spec/framework_spec/app/spec/core/bignum/element_reference_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/equal_value_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/bignum/even_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/exponent_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/bignum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/gt_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/gte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/left_shift_spec.rb +64 -40
- data/spec/framework_spec/app/spec/core/bignum/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/lte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/magnitude_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/bignum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/multiply_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/odd_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/plus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/quo_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/remainder_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/bignum/right_shift_spec.rb +93 -34
- data/spec/framework_spec/app/spec/core/bignum/shared/abs.rb +6 -0
- data/spec/framework_spec/app/spec/core/bignum/shared/divide.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/shared/modulo.rb +13 -4
- data/spec/framework_spec/app/spec/core/bignum/size_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/bignum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/uminus_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/binding/clone_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/dup_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/eval_spec.rb +19 -25
- data/spec/framework_spec/app/spec/core/binding/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/class/allocate_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/class/dup_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/class/fixtures/classes.rb +5 -5
- data/spec/framework_spec/app/spec/core/class/inherited_spec.rb +22 -22
- data/spec/framework_spec/app/spec/core/class/initialize_copy_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/class/initialize_spec.rb +37 -6
- data/spec/framework_spec/app/spec/core/class/new_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/class/superclass_spec.rb +37 -8
- data/spec/framework_spec/app/spec/core/comparable/between_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/equal_value_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/comparable/fixtures/classes.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/gt_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/comparable/gte_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lt_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lte_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/complex/Complex_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/complex/abs2_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/abs_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/angle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/arg_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/coerce_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/conj_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/conjugate_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/denominator_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/complex/divide_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/equal_value_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/exponent_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/fdiv_spec.rb +131 -0
- data/spec/framework_spec/app/spec/core/complex/hash_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/imag_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/imaginary_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/complex/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/minus_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/multiply_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/plus_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/polar_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/complex/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/rationalize_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/real_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/complex/rect_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/complex/rectangular_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/complex/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_s_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/complex/uminus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/continuation/call_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/element_reference_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/new_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/dir/chdir_spec.rb +64 -17
- data/spec/framework_spec/app/spec/core/dir/chroot_spec.rb +50 -26
- data/spec/framework_spec/app/spec/core/dir/close_spec.rb +32 -16
- data/spec/framework_spec/app/spec/core/dir/delete_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/dir_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/each_spec.rb +24 -8
- data/spec/framework_spec/app/spec/core/dir/element_reference_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/entries_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/exist_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/exists_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/fixtures/common.rb +96 -73
- data/spec/framework_spec/app/spec/core/dir/foreach_spec.rb +20 -4
- data/spec/framework_spec/app/spec/core/dir/getwd_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/dir/glob_spec.rb +60 -8
- data/spec/framework_spec/app/spec/core/dir/home_spec.rb +15 -6
- data/spec/framework_spec/app/spec/core/dir/initialize_spec.rb +29 -2
- data/spec/framework_spec/app/spec/core/dir/inspect_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/dir/mkdir_spec.rb +56 -21
- data/spec/framework_spec/app/spec/core/dir/open_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/path_spec.rb +8 -24
- data/spec/framework_spec/app/spec/core/dir/pos_spec.rb +28 -4
- data/spec/framework_spec/app/spec/core/dir/pwd_spec.rb +44 -20
- data/spec/framework_spec/app/spec/core/dir/read_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/dir/rewind_spec.rb +13 -7
- data/spec/framework_spec/app/spec/core/dir/rmdir_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/seek_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/shared/chroot.rb +43 -0
- data/spec/framework_spec/app/spec/core/dir/shared/delete.rb +27 -8
- data/spec/framework_spec/app/spec/core/dir/shared/exists.rb +53 -0
- data/spec/framework_spec/app/spec/core/dir/shared/glob.rb +61 -8
- data/spec/framework_spec/app/spec/core/dir/shared/open.rb +18 -2
- data/spec/framework_spec/app/spec/core/dir/shared/path.rb +29 -0
- data/spec/framework_spec/app/spec/core/dir/shared/pos.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/shared/pwd.rb +13 -13
- data/spec/framework_spec/app/spec/core/dir/tell_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/dir/to_path.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/to_path_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/dir/unlink_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/encoding/_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/aliases_spec.rb +45 -0
- data/spec/framework_spec/app/spec/core/encoding/ascii_compatible_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/compatible_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/asciicompat_encoding_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/constants_spec.rb +133 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convert_spec.rb +46 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convpath_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/finish_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/insert_output_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/last_error_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_convert_spec.rb +137 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_errinfo_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/putback_spec.rb +49 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/replacement_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/search_convpath_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/default_external_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/encoding/default_internal_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/encoding/dummy_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/encoding/find_spec.rb +82 -0
- data/spec/framework_spec/app/spec/core/encoding/fixtures/classes.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/inspect_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/encoding/list_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/encoding/locale_charmap_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/name_list_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/encoding/name_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/names_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/encoding/replicate_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/encoding/shared/name.rb +15 -0
- data/spec/framework_spec/app/spec/core/encoding/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/error_char_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/enumerable/all_spec.rb +2 -15
- data/spec/framework_spec/app/spec/core/enumerable/any_spec.rb +2 -7
- data/spec/framework_spec/app/spec/core/enumerable/chunk_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_concat_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/count_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/cycle_spec.rb +20 -6
- data/spec/framework_spec/app/spec/core/enumerable/detect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/drop_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/enumerable/drop_while_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/each_cons_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_entry_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/enumerable/each_slice_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_with_index_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/enumerable/each_with_object_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/entries_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_all_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/{find_index.rb → find_index_spec.rb} +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/first_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/fixtures/classes.rb +67 -16
- data/spec/framework_spec/app/spec/core/enumerable/flat_map_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/grep_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/enumerable/group_by_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/include_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/inject_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/map_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/max_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/max_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/enumerable/member_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_spec.rb +27 -11
- data/spec/framework_spec/app/spec/core/enumerable/minmax_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/minmax_spec.rb +26 -10
- data/spec/framework_spec/app/spec/core/enumerable/none_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/enumerable/one_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/enumerable/partition_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reduce_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reject_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/reverse_each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/select_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect.rb +13 -5
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect_concat.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerable/shared/entries.rb +5 -1
- data/spec/framework_spec/app/spec/core/enumerable/shared/find.rb +24 -11
- data/spec/framework_spec/app/spec/core/enumerable/shared/find_all.rb +9 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/include.rb +14 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/inject.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/shared/take.rb +5 -3
- data/spec/framework_spec/app/spec/core/enumerable/slice_before_spec.rb +77 -0
- data/spec/framework_spec/app/spec/core/enumerable/sort_by_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/enumerable/sort_spec.rb +22 -9
- data/spec/framework_spec/app/spec/core/enumerable/take_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/take_while_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/enumerable/to_a_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/zip_spec.rb +18 -7
- data/spec/framework_spec/app/spec/core/enumerator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_index_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/enum_for_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/feed_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/generator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/new_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/rewind_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerator/to_enum_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_index_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/append_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/yield_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/env/clear_spec.rb +19 -13
- data/spec/framework_spec/app/spec/core/env/delete_if_spec.rb +26 -28
- data/spec/framework_spec/app/spec/core/env/delete_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/each_key_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/each_pair_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_value_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/element_reference_spec.rb +25 -2
- data/spec/framework_spec/app/spec/core/env/element_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/empty_spec.rb +23 -24
- data/spec/framework_spec/app/spec/core/env/fetch_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/has_key_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/has_value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/index_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/indexes_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/indices_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/inspect_spec.rb +11 -12
- data/spec/framework_spec/app/spec/core/env/invert_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/key_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/env/keys_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/env/length_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/rehash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/reject_spec.rb +88 -89
- data/spec/framework_spec/app/spec/core/env/replace_spec.rb +15 -16
- data/spec/framework_spec/app/spec/core/env/select_spec.rb +32 -23
- data/spec/framework_spec/app/spec/core/env/shared/each.rb +10 -1
- data/spec/framework_spec/app/spec/core/env/shared/key.rb +15 -0
- data/spec/framework_spec/app/spec/core/env/shared/store.rb +18 -12
- data/spec/framework_spec/app/spec/core/env/shared/value.rb +7 -0
- data/spec/framework_spec/app/spec/core/env/shift_spec.rb +27 -28
- data/spec/framework_spec/app/spec/core/env/size_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/store_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/to_a_spec.rb +21 -13
- data/spec/framework_spec/app/spec/core/env/to_hash_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/update_spec.rb +1 -2
- data/spec/framework_spec/app/spec/core/env/value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/values_at_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/env/values_spec.rb +23 -16
- data/spec/framework_spec/app/spec/core/exception/args_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/arguments_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/backtrace_spec.rb +51 -1
- data/spec/framework_spec/app/spec/core/exception/case_compare_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/equal_value_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/exception/errno_spec.rb +16 -1
- data/spec/framework_spec/app/spec/core/exception/error_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/error_char_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/exception_spec.rb +69 -5
- data/spec/framework_spec/app/spec/core/exception/exit_value_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/fixtures/common.rb +33 -1
- data/spec/framework_spec/app/spec/core/exception/incomplete_input_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/io_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/message_spec.rb +14 -4
- data/spec/framework_spec/app/spec/core/exception/name_error_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/name_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/new_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/exception/no_method_error_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/exception/range_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/readagain_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/reason_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/script_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/set_backtrace_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/exception/shared/new.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/shared/to_s.rb +3 -3
- data/spec/framework_spec/app/spec/core/exception/signm_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/signo_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/standard_error_spec.rb +56 -55
- data/spec/framework_spec/app/spec/core/exception/status_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/success_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/exception/to_s_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/exception/to_str_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/false/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fiber/new_spec.rb +48 -49
- data/spec/framework_spec/app/spec/core/fiber/resume_spec.rb +39 -23
- data/spec/framework_spec/app/spec/core/fiber/yield_spec.rb +34 -36
- data/spec/framework_spec/app/spec/core/file/absolute_path_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/file/atime_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/file/basename_spec.rb +25 -26
- data/spec/framework_spec/app/spec/core/file/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chardev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chmod_spec.rb +14 -10
- data/spec/framework_spec/app/spec/core/file/chown_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/file/constants/constants_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/file/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/file/ctime_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/file/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/file/dirname_spec.rb +12 -2
- data/spec/framework_spec/app/spec/core/file/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/expand_path_spec.rb +133 -31
- data/spec/framework_spec/app/spec/core/file/extname_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/file/file_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/fixtures/common.rb +22 -0
- data/spec/framework_spec/app/spec/core/file/fixtures/file_types.rb +3 -9
- data/spec/framework_spec/app/spec/core/file/flock_spec.rb +56 -18
- data/spec/framework_spec/app/spec/core/file/fnmatch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/ftype_spec.rb +43 -45
- data/spec/framework_spec/app/spec/core/file/grpowned_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/initialize_spec.rb +25 -1
- data/spec/framework_spec/app/spec/core/file/inspect_spec.rb +14 -7
- data/spec/framework_spec/app/spec/core/file/join_spec.rb +37 -10
- data/spec/framework_spec/app/spec/core/file/lchmod_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/file/lchown_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/file/link_spec.rb +7 -9
- data/spec/framework_spec/app/spec/core/file/lstat_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/file/mtime_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/file/new_spec.rb +60 -44
- data/spec/framework_spec/app/spec/core/file/open_spec.rb +104 -120
- data/spec/framework_spec/app/spec/core/file/owned_spec.rb +26 -3
- data/spec/framework_spec/app/spec/core/file/path_spec.rb +11 -10
- data/spec/framework_spec/app/spec/core/file/pipe_spec.rb +25 -3
- data/spec/framework_spec/app/spec/core/file/read_spec.rb +6 -0
- data/spec/framework_spec/app/spec/core/file/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readlink_spec.rb +17 -13
- data/spec/framework_spec/app/spec/core/file/realdirpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/realpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/rename_spec.rb +24 -27
- data/spec/framework_spec/app/spec/core/file/reopen_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/file/setgid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/setuid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/shared/fnmatch.rb +11 -5
- data/spec/framework_spec/app/spec/core/file/shared/open.rb +9 -0
- data/spec/framework_spec/app/spec/core/file/shared/read.rb +21 -0
- data/spec/framework_spec/app/spec/core/file/shared/stat.rb +31 -17
- data/spec/framework_spec/app/spec/core/file/shared/unlink.rb +8 -4
- data/spec/framework_spec/app/spec/core/file/size_spec.rb +111 -22
- data/spec/framework_spec/app/spec/core/file/socket_spec.rb +24 -3
- data/spec/framework_spec/app/spec/core/file/split_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/file/stat/atime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/blksize_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/blockdev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/blocks_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/chardev_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/file/stat/comparison_spec.rb +14 -9
- data/spec/framework_spec/app/spec/core/file/stat/ctime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/dev_major_spec.rb +12 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/directory_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/file_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ftype_spec.rb +14 -17
- data/spec/framework_spec/app/spec/core/file/stat/gid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/grpowned_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ino_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/inspect_spec.rb +8 -10
- data/spec/framework_spec/app/spec/core/file/stat/mode_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/mtime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/new_spec.rb +11 -4
- data/spec/framework_spec/app/spec/core/file/stat/nlink_spec.rb +5 -6
- data/spec/framework_spec/app/spec/core/file/stat/owned_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/file/stat/pipe_spec.rb +25 -4
- data/spec/framework_spec/app/spec/core/file/stat/rdev_major_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/readable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/readable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setgid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setuid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/size_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/file/stat/socket_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/sticky_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/symlink_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/uid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/world_readable_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/file/stat/world_writable_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/file/stat/writable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/writable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/zero_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/file/sticky_spec.rb +49 -3
- data/spec/framework_spec/app/spec/core/file/symlink_spec.rb +18 -11
- data/spec/framework_spec/app/spec/core/file/to_path_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/file/truncate_spec.rb +34 -39
- data/spec/framework_spec/app/spec/core/file/umask_spec.rb +20 -21
- data/spec/framework_spec/app/spec/core/file/unlink_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/utime_spec.rb +20 -5
- data/spec/framework_spec/app/spec/core/file/world_readable_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/file/world_writable_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/file/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/chardev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/filetest/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/file_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/grpowned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/owned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/pipe_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/setgid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/setuid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/size_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/filetest/socket_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/sticky_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/filetest/symlink_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/filetest/world_readable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/world_writable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/abs_spec.rb +4 -8
- data/spec/framework_spec/app/spec/core/fixnum/bit_and_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_or_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_xor_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/fixnum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/coerce_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/comparison_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/div_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/fixnum/divmod_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/element_reference_spec.rb +45 -19
- data/spec/framework_spec/app/spec/core/fixnum/equal_value_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/fixnum/even_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/exponent_spec.rb +59 -7
- data/spec/framework_spec/app/spec/core/fixnum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/gt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/gte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/id2name_spec.rb +15 -13
- data/spec/framework_spec/app/spec/core/fixnum/induced_from_spec.rb +36 -35
- data/spec/framework_spec/app/spec/core/fixnum/left_shift_spec.rb +72 -42
- data/spec/framework_spec/app/spec/core/fixnum/lt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/lte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/fixnum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/multiply_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/odd_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/quo_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/right_shift_spec.rb +84 -40
- data/spec/framework_spec/app/spec/core/fixnum/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/fixnum/shared/modulo.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/size_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/to_sym_spec.rb +16 -14
- data/spec/framework_spec/app/spec/core/fixnum/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/abs_spec.rb +2 -6
- data/spec/framework_spec/app/spec/core/float/angle_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/arg_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/ceil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/comparison_spec.rb +52 -1
- data/spec/framework_spec/app/spec/core/float/constants_spec.rb +25 -17
- data/spec/framework_spec/app/spec/core/float/denominator_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/float/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/float/divmod_spec.rb +26 -1
- data/spec/framework_spec/app/spec/core/float/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/equal_value_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/exponent_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/float/fdiv_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/float/finite_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/float/fixtures/coerce.rb +15 -0
- data/spec/framework_spec/app/spec/core/float/floor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/induced_from_spec.rb +38 -37
- data/spec/framework_spec/app/spec/core/float/infinite_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/minus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/multiply_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/nan_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/numerator_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/float/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/rationalize_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/float/round_spec.rb +32 -6
- data/spec/framework_spec/app/spec/core/float/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/float/shared/modulo.rb +14 -3
- data/spec/framework_spec/app/spec/core/float/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/to_int_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/float/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/to_s_spec.rb +93 -18
- data/spec/framework_spec/app/spec/core/float/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/zero_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/gc/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/disable_spec.rb +17 -1
- data/spec/framework_spec/app/spec/core/gc/enable_spec.rb +12 -1
- data/spec/framework_spec/app/spec/core/gc/garbage_collect_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/gc/profiler/clear_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/disable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enabled_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/report_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/total_time_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/start_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/gc/stress_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/hash/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/assoc_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/hash/clear_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/clone_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/compare_by_identity_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/hash/constructor_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/hash/default_proc_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/hash/default_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/delete_if_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/each_key_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/each_pair_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/each_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/element_reference_spec.rb +111 -115
- data/spec/framework_spec/app/spec/core/hash/element_set_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/eql_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/hash/equal_value_spec.rb +18 -14
- data/spec/framework_spec/app/spec/core/hash/fetch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/flatten_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/hash/has_key_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/hash/has_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/hash_spec.rb +20 -1
- data/spec/framework_spec/app/spec/core/hash/include_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/index_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/hash/inspect_spec.rb +3 -41
- data/spec/framework_spec/app/spec/core/hash/invert_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/keep_if_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/hash/key_spec.rb +14 -15
- data/spec/framework_spec/app/spec/core/hash/keys_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/member_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/merge_spec.rb +10 -17
- data/spec/framework_spec/app/spec/core/hash/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/rassoc_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/hash/rehash_spec.rb +51 -60
- data/spec/framework_spec/app/spec/core/hash/reject_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/hash/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/select_spec.rb +38 -5
- data/spec/framework_spec/app/spec/core/hash/shared/each.rb +46 -6
- data/spec/framework_spec/app/spec/core/hash/shared/eql.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/index.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/iteration.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/key.rb +5 -3
- data/spec/framework_spec/app/spec/core/hash/shared/replace.rb +22 -11
- data/spec/framework_spec/app/spec/core/hash/shared/store.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/to_s.rb +22 -21
- data/spec/framework_spec/app/spec/core/hash/shared/update.rb +27 -8
- data/spec/framework_spec/app/spec/core/hash/shift_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/sort_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/store_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/to_a_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/hash/to_hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/to_s_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/try_convert_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/hash/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/values_at_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/values_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/ceil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/chr_spec.rb +141 -18
- data/spec/framework_spec/app/spec/core/integer/denominator_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/integer/downto_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/integer/even_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/floor_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/gcd_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/gcdlcm_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/integer/induced_from_spec.rb +43 -42
- data/spec/framework_spec/app/spec/core/integer/integer_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/lcm_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/next_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/numerator_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/integer/odd_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/ord_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/integer/pred_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/rationalize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/integer/round_spec.rb +35 -2
- data/spec/framework_spec/app/spec/core/integer/shared/next.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/succ_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/times_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/integer/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_r_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/integer/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/upto_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/io/binmode_spec.rb +21 -5
- data/spec/framework_spec/app/spec/core/io/binread_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/bytes_spec.rb +27 -16
- data/spec/framework_spec/app/spec/core/io/chars_spec.rb +35 -19
- data/spec/framework_spec/app/spec/core/io/close_on_exec_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/io/close_read_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/io/close_spec.rb +15 -19
- data/spec/framework_spec/app/spec/core/io/close_write_spec.rb +13 -14
- data/spec/framework_spec/app/spec/core/io/closed_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/io/codepoints_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/copy_stream_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/io/dup_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/each_byte_spec.rb +32 -26
- data/spec/framework_spec/app/spec/core/io/each_char_spec.rb +35 -22
- data/spec/framework_spec/app/spec/core/io/each_codepoint_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/io/each_line_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/io/each_spec.rb +8 -6
- data/spec/framework_spec/app/spec/core/io/eof_spec.rb +59 -45
- data/spec/framework_spec/app/spec/core/io/external_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fcntl_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fdatasync_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fileno_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fixtures/classes.rb +57 -15
- data/spec/framework_spec/app/spec/core/io/fixtures/empty.txt +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/{gets.txt → lines.txt} +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/reopen_stdout.rb +3 -0
- data/spec/framework_spec/app/spec/core/io/flush_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/for_fd_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/foreach_spec.rb +132 -90
- data/spec/framework_spec/app/spec/core/io/fsync_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/io/getbyte_spec.rb +27 -21
- data/spec/framework_spec/app/spec/core/io/getc_spec.rb +30 -24
- data/spec/framework_spec/app/spec/core/io/gets_spec.rb +144 -127
- data/spec/framework_spec/app/spec/core/io/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/initialize_spec.rb +33 -16
- data/spec/framework_spec/app/spec/core/io/inspect_spec.rb +4 -15
- data/spec/framework_spec/app/spec/core/io/internal_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/io_spec.rb +1 -5
- data/spec/framework_spec/app/spec/core/io/ioctl_spec.rb +42 -5
- data/spec/framework_spec/app/spec/core/io/isatty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/lineno_spec.rb +65 -52
- data/spec/framework_spec/app/spec/core/io/lines_spec.rb +28 -22
- data/spec/framework_spec/app/spec/core/io/new_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/open_spec.rb +52 -49
- data/spec/framework_spec/app/spec/core/io/output_spec.rb +22 -14
- data/spec/framework_spec/app/spec/core/io/pid_spec.rb +20 -11
- data/spec/framework_spec/app/spec/core/io/pipe_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/io/popen_spec.rb +107 -37
- data/spec/framework_spec/app/spec/core/io/pos_spec.rb +5 -44
- data/spec/framework_spec/app/spec/core/io/print_spec.rb +56 -59
- data/spec/framework_spec/app/spec/core/io/printf_spec.rb +25 -19
- data/spec/framework_spec/app/spec/core/io/putc_spec.rb +5 -43
- data/spec/framework_spec/app/spec/core/io/puts_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/io/read_nonblock_spec.rb +54 -3
- data/spec/framework_spec/app/spec/core/io/read_spec.rb +127 -50
- data/spec/framework_spec/app/spec/core/io/readbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/readchar_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/io/readline_spec.rb +29 -25
- data/spec/framework_spec/app/spec/core/io/readlines_spec.rb +174 -146
- data/spec/framework_spec/app/spec/core/io/readpartial_spec.rb +16 -4
- data/spec/framework_spec/app/spec/core/io/reopen_spec.rb +226 -82
- data/spec/framework_spec/app/spec/core/io/rewind_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/io/seek_spec.rb +21 -29
- data/spec/framework_spec/app/spec/core/io/select_spec.rb +34 -7
- data/spec/framework_spec/app/spec/core/io/set_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/shared/codepoints.rb +46 -0
- data/spec/framework_spec/app/spec/core/io/shared/each.rb +97 -112
- data/spec/framework_spec/app/spec/core/io/shared/gets_ascii.rb +27 -0
- data/spec/framework_spec/app/spec/core/io/shared/new.rb +74 -99
- data/spec/framework_spec/app/spec/core/io/shared/pos.rb +43 -4
- data/spec/framework_spec/app/spec/core/io/shared/tty.rb +10 -7
- data/spec/framework_spec/app/spec/core/io/shared/write.rb +4 -4
- data/spec/framework_spec/app/spec/core/io/stat_spec.rb +20 -7
- data/spec/framework_spec/app/spec/core/io/sync_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysopen_spec.rb +32 -14
- data/spec/framework_spec/app/spec/core/io/sysread_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysseek_spec.rb +17 -42
- data/spec/framework_spec/app/spec/core/io/syswrite_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/io/tell_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/io/to_i_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/to_io_spec.rb +15 -10
- data/spec/framework_spec/app/spec/core/io/try_convert_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/io/tty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/ungetbyte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/ungetc_spec.rb +55 -48
- data/spec/framework_spec/app/spec/core/io/write_nonblock_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/io/write_spec.rb +17 -12
- data/spec/framework_spec/app/spec/core/kernel/Array_spec.rb +76 -31
- data/spec/framework_spec/app/spec/core/kernel/Complex_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/Float_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/kernel/Integer_spec.rb +243 -7
- data/spec/framework_spec/app/spec/core/kernel/Rational_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/String_spec.rb +65 -33
- data/spec/framework_spec/app/spec/core/kernel/__callee___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/kernel/__id___spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/__method___spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/kernel/__send___spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/abort_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/kernel/at_exit_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/kernel/autoload_spec.rb +127 -114
- data/spec/framework_spec/app/spec/core/kernel/backtick_spec.rb +24 -24
- data/spec/framework_spec/app/spec/core/kernel/binding_spec.rb +45 -23
- data/spec/framework_spec/app/spec/core/kernel/block_given_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/callcc_spec.rb +9 -65
- data/spec/framework_spec/app/spec/core/kernel/caller_spec.rb +162 -91
- data/spec/framework_spec/app/spec/core/kernel/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/catch_spec.rb +70 -13
- data/spec/framework_spec/app/spec/core/kernel/chomp_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/chop_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/class_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/clone_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/kernel/comparison_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/kernel/const_lookup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/{define_singleton_method.rb → define_singleton_method_spec.rb} +31 -9
- data/spec/framework_spec/app/spec/core/kernel/display_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/enum_for_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/equal_spec.rb +32 -3
- data/spec/framework_spec/app/spec/core/kernel/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/eval_spec.rb +285 -182
- data/spec/framework_spec/app/spec/core/kernel/exec_spec.rb +18 -5
- data/spec/framework_spec/app/spec/core/kernel/exit_spec.rb +70 -4
- data/spec/framework_spec/app/spec/core/kernel/extend_spec.rb +29 -7
- data/spec/framework_spec/app/spec/core/kernel/fail_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/fixtures/__method__.rb +25 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/autoload_d.rb +5 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/caller_fixture1.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/fixtures/classes.rb +173 -67
- data/spec/framework_spec/app/spec/core/kernel/fixtures/eval_locals.rb +6 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/test.rb +80 -80
- data/spec/framework_spec/app/spec/core/kernel/fork_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/format_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/freeze_spec.rb +75 -37
- data/spec/framework_spec/app/spec/core/kernel/frozen_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/getc_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/gets_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/global_variables_spec.rb +24 -12
- data/spec/framework_spec/app/spec/core/kernel/gsub_spec.rb +76 -72
- data/spec/framework_spec/app/spec/core/kernel/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/id_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_clone_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_dup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_eval_spec.rb +154 -113
- data/spec/framework_spec/app/spec/core/kernel/instance_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_defined_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_get_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_set_spec.rb +25 -12
- data/spec/framework_spec/app/spec/core/kernel/instance_variables_spec.rb +48 -3
- data/spec/framework_spec/app/spec/core/kernel/is_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/iterator_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/kind_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/lambda_spec.rb +68 -7
- data/spec/framework_spec/app/spec/core/kernel/load_spec.rb +22 -217
- data/spec/framework_spec/app/spec/core/kernel/local_variables_spec.rb +38 -18
- data/spec/framework_spec/app/spec/core/kernel/loop_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/method_missing_spec.rb +9 -54
- data/spec/framework_spec/app/spec/core/kernel/method_spec.rb +29 -31
- data/spec/framework_spec/app/spec/core/kernel/methods_spec.rb +93 -78
- data/spec/framework_spec/app/spec/core/kernel/nil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/not_match_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/object_id_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/open_spec.rb +30 -32
- data/spec/framework_spec/app/spec/core/kernel/p_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/kernel/print_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/printf_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/private_methods_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/kernel/proc_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/kernel/protected_methods_spec.rb +44 -2
- data/spec/framework_spec/app/spec/core/kernel/public_method_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/kernel/public_methods_spec.rb +70 -12
- data/spec/framework_spec/app/spec/core/kernel/public_send_spec.rb +76 -0
- data/spec/framework_spec/app/spec/core/kernel/putc_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/kernel/puts_spec.rb +100 -87
- data/spec/framework_spec/app/spec/core/kernel/raise_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/rand_spec.rb +39 -13
- data/spec/framework_spec/app/spec/core/kernel/readline_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/remove_instance_variable_spec.rb +32 -2
- data/spec/framework_spec/app/spec/core/kernel/require_relative_spec.rb +154 -0
- data/spec/framework_spec/app/spec/core/kernel/require_spec.rb +20 -289
- data/spec/framework_spec/app/spec/core/kernel/respond_to_missing_spec.rb +88 -0
- data/spec/framework_spec/app/spec/core/kernel/respond_to_spec.rb +41 -33
- data/spec/framework_spec/app/spec/core/kernel/scan_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/select_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/send_spec.rb +31 -65
- data/spec/framework_spec/app/spec/core/kernel/set_trace_func_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/shared/__method__.rb +6 -7
- data/spec/framework_spec/app/spec/core/kernel/shared/abort.rb +26 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/lambda.rb +12 -25
- data/spec/framework_spec/app/spec/core/kernel/shared/load.rb +93 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/method.rb +59 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/object_id.rb +22 -6
- data/spec/framework_spec/app/spec/core/kernel/shared/require.rb +529 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/send.rb +110 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_class_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_added_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_removed_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_undefined_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_methods_spec.rb +179 -58
- data/spec/framework_spec/app/spec/core/kernel/sleep_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/kernel/spawn_spec.rb +152 -0
- data/spec/framework_spec/app/spec/core/kernel/split_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/sprintf_spec.rb +351 -5
- data/spec/framework_spec/app/spec/core/kernel/srand_spec.rb +33 -6
- data/spec/framework_spec/app/spec/core/kernel/sub_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/syscall_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/system_spec.rb +90 -61
- data/spec/framework_spec/app/spec/core/kernel/taint_spec.rb +9 -4
- data/spec/framework_spec/app/spec/core/kernel/tainted_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/tap_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/test_spec.rb +36 -16
- data/spec/framework_spec/app/spec/core/kernel/throw_spec.rb +29 -24
- data/spec/framework_spec/app/spec/core/kernel/to_a_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/kernel/to_enum_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trap_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/type_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untaint_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrusted_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/warn_spec.rb +59 -60
- data/spec/framework_spec/app/spec/core/marshal/dump_spec.rb +314 -70
- data/spec/framework_spec/app/spec/core/marshal/fixtures/marshal_data.rb +165 -0
- data/spec/framework_spec/app/spec/core/marshal/fixtures/random.dump +0 -0
- data/spec/framework_spec/app/spec/core/marshal/load_spec.rb +483 -170
- data/spec/framework_spec/app/spec/core/marshal/restore_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/matchdata/begin_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/captures_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/element_reference_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/matchdata/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/equal_value_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/matchdata/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/inspect_spec.rb +19 -1
- data/spec/framework_spec/app/spec/core/matchdata/length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/names_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/matchdata/offset_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/post_match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/pre_match_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/regexp_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/matchdata/select_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/shared/eql.rb +26 -0
- data/spec/framework_spec/app/spec/core/matchdata/size_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/string_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/values_at_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/versions/element_reference_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/matchdata/versions/names_1.9.rb +33 -0
- data/spec/framework_spec/app/spec/core/math/acos_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/math/acosh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/asin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/asinh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/atan2_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/atan_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/atanh_spec.rb +8 -64
- data/spec/framework_spec/app/spec/core/math/cbrt_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/math/constants_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/math/cos_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/cosh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/erf_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/math/erfc_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/math/exp_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/fixtures/classes.rb +2 -2
- data/spec/framework_spec/app/spec/core/math/frexp_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/gamma_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/math/hypot_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/math/ldexp_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/math/lgamma_spec.rb +87 -0
- data/spec/framework_spec/app/spec/core/math/log10_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/log2_spec.rb +30 -3
- data/spec/framework_spec/app/spec/core/math/log_spec.rb +30 -11
- data/spec/framework_spec/app/spec/core/math/sin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/sinh_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/math/sqrt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/math/tan_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/tanh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/method/arity_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/method/call_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/element_reference_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/method/equal_value_spec.rb +3 -40
- data/spec/framework_spec/app/spec/core/method/fixtures/classes.rb +104 -13
- data/spec/framework_spec/app/spec/core/method/fixtures/classes_1.9.rb +12 -0
- data/spec/framework_spec/app/spec/core/method/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/method/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/method/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/parameters_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/method/receiver_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/shared/call.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/shared/eql.rb +102 -0
- data/spec/framework_spec/app/spec/core/method/shared/to_s.rb +5 -5
- data/spec/framework_spec/app/spec/core/method/source_location_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/method/to_proc_spec.rb +20 -2
- data/spec/framework_spec/app/spec/core/method/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/unbind_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/versions/parameters_1.9.rb +189 -0
- data/spec/framework_spec/app/spec/core/module/alias_method_spec.rb +20 -8
- data/spec/framework_spec/app/spec/core/module/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/ancestors_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/append_features_spec.rb +15 -4
- data/spec/framework_spec/app/spec/core/module/attr_accessor_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/attr_reader_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/module/attr_spec.rb +61 -63
- data/spec/framework_spec/app/spec/core/module/attr_writer_spec.rb +23 -12
- data/spec/framework_spec/app/spec/core/module/autoload_spec.rb +177 -84
- data/spec/framework_spec/app/spec/core/module/case_compare_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/class_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/class_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/class_variable_defined_spec.rb +22 -7
- data/spec/framework_spec/app/spec/core/module/class_variable_get_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/module/class_variable_set_spec.rb +37 -15
- data/spec/framework_spec/app/spec/core/module/class_variables_spec.rb +50 -17
- data/spec/framework_spec/app/spec/core/module/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/module/const_defined_spec.rb +41 -5
- data/spec/framework_spec/app/spec/core/module/const_get_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/module/const_missing_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/module/const_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/constants_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/define_method_spec.rb +283 -15
- data/spec/framework_spec/app/spec/core/module/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/extend_object_spec.rb +23 -28
- data/spec/framework_spec/app/spec/core/module/extended_spec.rb +18 -10
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_ex1.rb +16 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_k.rb +3 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_s.rb +5 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_w2.rb +1 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/classes.rb +97 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/name.rb +10 -0
- data/spec/framework_spec/app/spec/core/module/freeze_spec.rb +33 -13
- data/spec/framework_spec/app/spec/core/module/gt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/gte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/include_spec.rb +159 -33
- data/spec/framework_spec/app/spec/core/module/included_modules_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/included_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/module/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/instance_method_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/instance_methods_spec.rb +51 -17
- data/spec/framework_spec/app/spec/core/module/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/lte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_added_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/module/method_defined_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/module/method_removed_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_undefined_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/module_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/module_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/module_function_spec.rb +82 -76
- data/spec/framework_spec/app/spec/core/module/name_spec.rb +24 -6
- data/spec/framework_spec/app/spec/core/module/nesting_spec.rb +13 -9
- data/spec/framework_spec/app/spec/core/module/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/private_class_method_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/private_instance_methods_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/private_method_defined_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/module/private_spec.rb +21 -3
- data/spec/framework_spec/app/spec/core/module/protected_instance_methods_spec.rb +66 -18
- data/spec/framework_spec/app/spec/core/module/protected_method_defined_spec.rb +40 -18
- data/spec/framework_spec/app/spec/core/module/protected_spec.rb +24 -7
- data/spec/framework_spec/app/spec/core/module/public_class_method_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/public_instance_method_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/public_instance_methods_spec.rb +38 -14
- data/spec/framework_spec/app/spec/core/module/public_method_defined_spec.rb +28 -6
- data/spec/framework_spec/app/spec/core/module/public_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/remove_class_variable_spec.rb +46 -2
- data/spec/framework_spec/app/spec/core/module/remove_const_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/module/remove_method_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/module/shared/class_eval.rb +36 -14
- data/spec/framework_spec/app/spec/core/module/shared/class_exec.rb +24 -0
- data/spec/framework_spec/app/spec/core/module/shared/equal_value.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/to_s_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/module/undef_method_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/mutex/lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/locked_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/sleep_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/synchronize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/try_lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/unlock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/nil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/rationalize_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/nil/to_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/to_c_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_r_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/nil/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/numeric/abs2_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/numeric/abs_spec.rb +3 -17
- data/spec/framework_spec/app/spec/core/numeric/angle_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/arg_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/ceil_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/numeric/coerce_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/numeric/comparison_spec.rb +35 -6
- data/spec/framework_spec/app/spec/core/numeric/conj_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/conjugate_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/denominator_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/numeric/div_spec.rb +22 -10
- data/spec/framework_spec/app/spec/core/numeric/divmod_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/numeric/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/fdiv_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/numeric/fixtures/classes.rb +16 -4
- data/spec/framework_spec/app/spec/core/numeric/floor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/i_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/numeric/imag_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/imaginary_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/initialize_copy_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/integer_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/numeric/modulo_spec.rb +33 -9
- data/spec/framework_spec/app/spec/core/numeric/nonzero_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/numeric/numerator_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/numeric/phase_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/polar_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/quo_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/rationalize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/numeric/real_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/numeric/rect_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/rectangular_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/remainder_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/numeric/round_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/shared/abs.rb +19 -0
- data/spec/framework_spec/app/spec/core/numeric/shared/rect.rb +48 -0
- data/spec/framework_spec/app/spec/core/numeric/singleton_method_added_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/step_spec.rb +215 -162
- data/spec/framework_spec/app/spec/core/numeric/to_c_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/numeric/to_int_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/truncate_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/uminus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/zero_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/object/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/fixtures/classes.rb +17 -0
- data/spec/framework_spec/app/spec/core/object/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/object/instance_exec_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/object/instance_of_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/object/is_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/kind_of_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/match_spec.rb +25 -10
- data/spec/framework_spec/app/spec/core/object/metaclass_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/object/new_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/object/shared/kind_of.rb +3 -3
- data/spec/framework_spec/app/spec/core/objectspace/_id2ref_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/objectspace/add_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/call_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/count_objects_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/objectspace/define_finalizer_spec.rb +44 -3
- data/spec/framework_spec/app/spec/core/objectspace/each_object_spec.rb +27 -5
- data/spec/framework_spec/app/spec/core/objectspace/finalizers_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/fixtures.rb +5 -0
- data/spec/framework_spec/app/spec/core/objectspace/garbage_collect_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/objectspace/remove_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/undefine_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/precision/included_spec.rb +14 -12
- data/spec/framework_spec/app/spec/core/precision/prec_f_spec.rb +9 -8
- data/spec/framework_spec/app/spec/core/precision/prec_i_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/precision/prec_spec.rb +19 -14
- data/spec/framework_spec/app/spec/core/proc/arity_spec.rb +104 -53
- data/spec/framework_spec/app/spec/core/proc/binding_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/proc/block_pass_spec.rb +21 -1
- data/spec/framework_spec/app/spec/core/proc/call_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/proc/case_compare_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/proc/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/curry_spec.rb +142 -0
- data/spec/framework_spec/app/spec/core/proc/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/element_reference_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/proc/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/proc/equal_value_spec.rb +4 -12
- data/spec/framework_spec/app/spec/core/proc/fixtures/common.rb +42 -0
- data/spec/framework_spec/app/spec/core/proc/fixtures/source_location.rb +51 -0
- data/spec/framework_spec/app/spec/core/proc/hash_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/proc/lambda_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/proc/new_spec.rb +135 -46
- data/spec/framework_spec/app/spec/core/proc/parameters_spec.rb +2 -0
- data/spec/framework_spec/app/spec/core/proc/shared/call.rb +86 -34
- data/spec/framework_spec/app/spec/core/proc/shared/call_arguments.rb +7 -0
- data/spec/framework_spec/app/spec/core/proc/shared/equal.rb +93 -0
- data/spec/framework_spec/app/spec/core/proc/source_location_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/proc/to_proc_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/proc/to_s_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.8.7.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.9.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/parameters_1.9.rb +73 -0
- data/spec/framework_spec/app/spec/core/proc/yield_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/process/abort_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/process/constants_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/process/daemon_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/detach_spec.rb +5 -9
- data/spec/framework_spec/app/spec/core/process/egid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/euid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/process/exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/exit_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/process/fork_spec.rb +38 -26
- data/spec/framework_spec/app/spec/core/process/getpgid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/process/getpgrp_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/getpriority_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/process/getrlimit_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/gid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/gid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/groups_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/process/initgroups_spec.rb +3 -6
- data/spec/framework_spec/app/spec/core/process/kill_spec.rb +21 -17
- data/spec/framework_spec/app/spec/core/process/maxgroups_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/process/pid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/process/ppid_spec.rb +16 -15
- data/spec/framework_spec/app/spec/core/process/setpgid_spec.rb +16 -21
- data/spec/framework_spec/app/spec/core/process/setpgrp_spec.rb +3 -8
- data/spec/framework_spec/app/spec/core/process/setpriority_spec.rb +42 -60
- data/spec/framework_spec/app/spec/core/process/setrlimit_spec.rb +38 -46
- data/spec/framework_spec/app/spec/core/process/setsid_spec.rb +20 -22
- data/spec/framework_spec/app/spec/core/process/spawn_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/process/status/_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/coredump_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/equal_value_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/exited_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/process/status/exitstatus_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/inspect_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/pid_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/right_shift_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/signaled_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/process/status/stopped_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/stopsig_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/success_spec.rb +53 -0
- data/spec/framework_spec/app/spec/core/process/status/termsig_spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/process/status/to_i_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_int_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_s_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/geteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/issetugid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/seteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setregid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setreuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setrgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setruid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/process/uid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/uid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/wait2_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/process/wait_spec.rb +25 -7
- data/spec/framework_spec/app/spec/core/process/waitall_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/process/waitpid2_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/waitpid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/random/bytes_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/random/equal_value_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/random/new_seed_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/random/new_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/random/rand_spec.rb +218 -0
- data/spec/framework_spec/app/spec/core/random/seed_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/random/srand_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/range/begin_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/cover_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/range/each_spec.rb +5 -4
- data/spec/framework_spec/app/spec/core/range/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/exclude_end_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/first_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/last_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/max_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/min_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/new_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/range/shared/equal_value.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/shared/include.rb +9 -0
- data/spec/framework_spec/app/spec/core/range/step_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/range/to_a_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/range/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/rational/Rational_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/rational/abs_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/ceil_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/coerce_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/comparison_spec.rb +23 -0
- data/spec/framework_spec/app/spec/core/rational/denominator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/div_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divide_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divmod_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/rational/equal_value_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/exponent_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/floor_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/initialize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/rational/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/modulo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/multiply_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/plus_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/rational/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/rationalize_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/rational/remainder_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/truncate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/zero_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/regexp/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/casefold_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/compile_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/encoding_spec.rb +56 -0
- data/spec/framework_spec/app/spec/core/regexp/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/escape_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/regexp/fixed_encoding_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/regexp/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/inspect_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/regexp/kcode_spec.rb +17 -16
- data/spec/framework_spec/app/spec/core/regexp/last_match_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/regexp/match_spec.rb +31 -3
- data/spec/framework_spec/app/spec/core/regexp/named_captures_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/names_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/options_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/quote_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/shared/match.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/shared/new.rb +65 -53
- data/spec/framework_spec/app/spec/core/regexp/source_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/try_convert_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/regexp/union_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/regexp/versions/named_captures_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/regexp/versions/names_1.9.rb +29 -0
- data/spec/framework_spec/app/spec/core/signal/list_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/signal/trap_spec.rb +106 -1
- data/spec/framework_spec/app/spec/core/string/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/ascii_only_spec.rb +44 -29
- data/spec/framework_spec/app/spec/core/string/bytes_spec.rb +25 -18
- data/spec/framework_spec/app/spec/core/string/bytesize_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/string/capitalize_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/casecmp_spec.rb +117 -64
- data/spec/framework_spec/app/spec/core/string/center_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/string/chars_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/chomp_spec.rb +68 -39
- data/spec/framework_spec/app/spec/core/string/chop_spec.rb +34 -56
- data/spec/framework_spec/app/spec/core/string/chr_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/string/clear_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/string/codepoints_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/concat_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/count_spec.rb +26 -11
- data/spec/framework_spec/app/spec/core/string/crypt_spec.rb +35 -35
- data/spec/framework_spec/app/spec/core/string/delete_spec.rb +25 -8
- data/spec/framework_spec/app/spec/core/string/downcase_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/dump_spec.rb +13 -4
- data/spec/framework_spec/app/spec/core/string/each_byte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_char_spec.rb +3 -29
- data/spec/framework_spec/app/spec/core/string/each_codepoint_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/each_line_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/element_reference_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/string/element_set_spec.rb +54 -10
- data/spec/framework_spec/app/spec/core/string/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/encode_spec.rb +114 -0
- data/spec/framework_spec/app/spec/core/string/encoding_spec.rb +181 -0
- data/spec/framework_spec/app/spec/core/string/end_with_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/entries_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/equal_value_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/fixtures/classes.rb +12 -9
- data/spec/framework_spec/app/spec/core/string/fixtures/iso-8859-9-encoding.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/fixtures/utf-8-encoding.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/force_encoding_spec.rb +61 -0
- data/spec/framework_spec/app/spec/core/string/getbyte_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/gsub_spec.rb +228 -75
- data/spec/framework_spec/app/spec/core/string/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/hex_spec.rb +23 -9
- data/spec/framework_spec/app/spec/core/string/include_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/string/index_spec.rb +46 -52
- data/spec/framework_spec/app/spec/core/string/initialize_spec.rb +19 -21
- data/spec/framework_spec/app/spec/core/string/insert_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/inspect_spec.rb +661 -41
- data/spec/framework_spec/app/spec/core/string/intern_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/lines_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/ljust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/lstrip_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/string/match_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/string/modulo_spec.rb +103 -45
- data/spec/framework_spec/app/spec/core/string/multiply_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/string/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/next_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/oct_spec.rb +59 -16
- data/spec/framework_spec/app/spec/core/string/ord_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/partition_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/plus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/string/replace_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/string/reverse_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/string/rindex_spec.rb +75 -69
- data/spec/framework_spec/app/spec/core/string/rjust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/rpartition_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/string/rstrip_spec.rb +52 -20
- data/spec/framework_spec/app/spec/core/string/scan_spec.rb +48 -23
- data/spec/framework_spec/app/spec/core/string/setbyte_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/string/shared/chars.rb +70 -0
- data/spec/framework_spec/app/spec/core/string/shared/codepoints.rb +66 -0
- data/spec/framework_spec/app/spec/core/string/shared/concat.rb +9 -6
- data/spec/framework_spec/app/spec/core/string/shared/each_line.rb +27 -6
- data/spec/framework_spec/app/spec/core/string/shared/encode.rb +112 -0
- data/spec/framework_spec/app/spec/core/string/shared/slice.rb +13 -11
- data/spec/framework_spec/app/spec/core/string/shared/succ.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/shared/to_s.rb +1 -1
- data/spec/framework_spec/app/spec/core/string/shared/to_sym.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/shared/versions/slice_1.9.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/size_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/slice_spec.rb +54 -42
- data/spec/framework_spec/app/spec/core/string/split_spec.rb +109 -60
- data/spec/framework_spec/app/spec/core/string/squeeze_spec.rb +21 -7
- data/spec/framework_spec/app/spec/core/string/start_with_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/strip_spec.rb +49 -12
- data/spec/framework_spec/app/spec/core/string/sub_spec.rb +91 -43
- data/spec/framework_spec/app/spec/core/string/succ_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/sum_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/string/swapcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/to_c_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/string/to_f_spec.rb +8 -16
- data/spec/framework_spec/app/spec/core/string/to_i_spec.rb +38 -16
- data/spec/framework_spec/app/spec/core/string/to_r_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_str_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_sym_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/tr_s_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/string/tr_spec.rb +37 -5
- data/spec/framework_spec/app/spec/core/string/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/string/unpack/a_spec.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/at_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/string/unpack/b_spec.rb +184 -0
- data/spec/framework_spec/app/spec/core/string/unpack/c_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/unpack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/d_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/e_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/f_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/g_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/h_spec.rb +124 -0
- data/spec/framework_spec/app/spec/core/string/unpack/i_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/l_spec.rb +216 -0
- data/spec/framework_spec/app/spec/core/string/unpack/m_spec.rb +165 -0
- data/spec/framework_spec/app/spec/core/string/unpack/n_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/unpack/q_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/string/unpack/s_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/basic.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/float.rb +267 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/integer.rb +343 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/string.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/unicode.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/unpack/u_spec.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/unpack/v_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/w_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/x_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/string/unpack/z_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/string/unpack_spec.rb +121 -32
- data/spec/framework_spec/app/spec/core/string/upcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/upto_spec.rb +21 -11
- data/spec/framework_spec/app/spec/core/string/valid_encoding_spec.rb +122 -0
- data/spec/framework_spec/app/spec/core/struct/each_pair_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/each_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/element_reference_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/struct/element_set_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/eql_spec.rb +10 -4
- data/spec/framework_spec/app/spec/core/struct/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/fixtures/classes.rb +24 -8
- data/spec/framework_spec/app/spec/core/struct/hash_spec.rb +24 -10
- data/spec/framework_spec/app/spec/core/struct/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/struct/initialize_spec.rb +9 -5
- data/spec/framework_spec/app/spec/core/struct/inspect_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/struct/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/members_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/struct/new_spec.rb +61 -32
- data/spec/framework_spec/app/spec/core/struct/select_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/struct/shared/equal_value.rb +20 -5
- data/spec/framework_spec/app/spec/core/struct/shared/inspect.rb +13 -0
- data/spec/framework_spec/app/spec/core/struct/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/struct_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/tms/cstime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/cutime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/element_reference_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/members_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/new_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/stime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/utime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/to_a_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/to_s_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/struct/values_at_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/values_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/symbol/all_symbols_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/symbol/capitalize_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/symbol/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/casecmp_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/symbol/comparison_spec.rb +52 -0
- data/spec/framework_spec/app/spec/core/symbol/downcase_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/symbol/element_reference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/empty_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/symbol/encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/id2name_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/inspect_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/symbol/intern_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/symbol/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/match_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/symbol/next_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/slice_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/swapcase_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/symbol/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_proc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/symbol/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_sym_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/symbol/upcase_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/systemexit/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/thread/abort_on_exception_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/thread/add_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/alive_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/thread/allocate_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/thread/backtrace_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/critical_spec.rb +77 -75
- data/spec/framework_spec/app/spec/core/thread/current_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/element_reference_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/element_set_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/exclusive_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/exit_spec.rb +15 -5
- data/spec/framework_spec/app/spec/core/thread/fixtures/classes.rb +53 -40
- data/spec/framework_spec/app/spec/core/thread/fork_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/group_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/thread/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/inspect_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/join_spec.rb +17 -6
- data/spec/framework_spec/app/spec/core/thread/key_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/thread/keys_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/kill_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/thread/list_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/thread/main_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/new_spec.rb +40 -3
- data/spec/framework_spec/app/spec/core/thread/pass_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/priority_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/raise_spec.rb +41 -27
- data/spec/framework_spec/app/spec/core/thread/run_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/safe_level_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/thread/set_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/shared/exit.rb +38 -30
- data/spec/framework_spec/app/spec/core/thread/shared/start.rb +51 -0
- data/spec/framework_spec/app/spec/core/thread/shared/wakeup.rb +25 -13
- data/spec/framework_spec/app/spec/core/thread/start_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/status_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/stop_spec.rb +12 -8
- data/spec/framework_spec/app/spec/core/thread/terminate_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/thread/value_spec.rb +21 -8
- data/spec/framework_spec/app/spec/core/thread/wakeup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/threadgroup/add_spec.rb +36 -37
- data/spec/framework_spec/app/spec/core/threadgroup/enclose_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/enclosed_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/list_spec.rb +24 -25
- data/spec/framework_spec/app/spec/core/time/_dump_spec.rb +13 -2
- data/spec/framework_spec/app/spec/core/time/_load_spec.rb +24 -2
- data/spec/framework_spec/app/spec/core/time/asctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/at_spec.rb +34 -14
- data/spec/framework_spec/app/spec/core/time/comparison_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/ctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/day_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dst_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dup_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/time/eql_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/time/fixtures/classes.rb +5 -0
- data/spec/framework_spec/app/spec/core/time/fixtures/methods.rb +1 -29
- data/spec/framework_spec/app/spec/core/time/friday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/getgm_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/getlocal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/getutc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gm_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/gmt_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmt_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/gmtime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmtoff_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/hash_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/time/hour_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/inspect_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/isdst_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/local_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/localtime_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/mday_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/min_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/minus_spec.rb +53 -33
- data/spec/framework_spec/app/spec/core/time/mktime_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/mon_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/monday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/month_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/now_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/plus_spec.rb +64 -19
- data/spec/framework_spec/app/spec/core/time/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/saturday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/sec_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/shared/gmt_offset.rb +23 -0
- data/spec/framework_spec/app/spec/core/time/shared/inspect.rb +25 -0
- data/spec/framework_spec/app/spec/core/time/shared/isdst.rb +1 -1
- data/spec/framework_spec/app/spec/core/time/shared/local.rb +8 -0
- data/spec/framework_spec/app/spec/core/time/shared/now.rb +12 -4
- data/spec/framework_spec/app/spec/core/time/shared/time_params.rb +134 -35
- data/spec/framework_spec/app/spec/core/time/strftime_spec.rb +141 -2
- data/spec/framework_spec/app/spec/core/time/subsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/succ_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/sunday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/thursday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_a_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/time/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_i_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/to_r_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/time/to_s_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/tuesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_sec_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/tv_usec_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/time/usec_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/time/utc_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/utc_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/time/wday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/wednesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/yday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/year_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/zone_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/true/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/arity_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/bind_spec.rb +26 -6
- data/spec/framework_spec/app/spec/core/unboundmethod/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/fixtures/classes.rb +4 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/inspect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/unboundmethod/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/unboundmethod/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/parameters_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/shared/to_s.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/source_location_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/to_s_spec.rb +3 -3
- data/spec/framework_spec/app/spec/fixtures/class.rb +39 -16
- data/spec/framework_spec/app/spec/fixtures/class_variables.rb +7 -7
- data/spec/framework_spec/app/spec/fixtures/code/file_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/line_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_ext_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/methods_fixture.rb +364 -0
- data/spec/framework_spec/app/spec/fixtures/code/raise_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_load_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_require_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code/wrap_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code_loading.rb +30 -0
- data/spec/framework_spec/app/spec/fixtures/enumerator/classes.rb +15 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/callcc.rb +17 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/classes.rb +56 -0
- data/spec/framework_spec/app/spec/fixtures/math/common.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/reflection.rb +352 -0
- data/spec/framework_spec/app/spec/language/BEGIN_spec.rb +57 -0
- data/spec/framework_spec/app/spec/language/README +1 -1
- data/spec/framework_spec/app/spec/language/alias_spec.rb +33 -20
- data/spec/framework_spec/app/spec/language/and_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/array_spec.rb +5 -5
- data/spec/framework_spec/app/spec/language/block_spec.rb +408 -27
- data/spec/framework_spec/app/spec/language/break_spec.rb +210 -280
- data/spec/framework_spec/app/spec/language/case_spec.rb +37 -38
- data/spec/framework_spec/app/spec/language/class_spec.rb +52 -70
- data/spec/framework_spec/app/spec/language/class_variable_spec.rb +6 -6
- data/spec/framework_spec/app/spec/language/{constants_spec_dontrun.rb → constants_spec.rb} +14 -0
- data/spec/framework_spec/app/spec/language/def_spec.rb +83 -68
- data/spec/framework_spec/app/spec/language/defined_spec.rb +1181 -142
- data/spec/framework_spec/app/spec/language/encoding_spec.rb +19 -20
- data/spec/framework_spec/app/spec/language/ensure_spec.rb +32 -37
- data/spec/framework_spec/app/spec/language/execution_spec.rb +9 -11
- data/spec/framework_spec/app/spec/language/file_spec.rb +21 -39
- data/spec/framework_spec/app/spec/language/fixtures/block.rb +26 -15
- data/spec/framework_spec/app/spec/language/fixtures/break.rb +240 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel.rb +9 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_block.rb +23 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_method.rb +17 -0
- data/spec/framework_spec/app/spec/language/fixtures/classes.rb +8 -8
- data/spec/framework_spec/app/spec/language/fixtures/defined.rb +270 -0
- data/spec/framework_spec/app/spec/language/fixtures/ensure.rb +6 -6
- data/spec/framework_spec/app/spec/language/fixtures/file.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/literal_lambda.rb +7 -0
- data/spec/framework_spec/app/spec/language/fixtures/next.rb +128 -0
- data/spec/framework_spec/app/spec/language/fixtures/private.rb +3 -3
- data/spec/framework_spec/app/spec/language/fixtures/return.rb +44 -0
- data/spec/framework_spec/app/spec/language/fixtures/rubyopt.rb +1 -0
- data/spec/framework_spec/app/spec/language/fixtures/send.rb +110 -0
- data/spec/framework_spec/app/spec/language/fixtures/send_1.9.rb +20 -0
- data/spec/framework_spec/app/spec/language/fixtures/super.rb +38 -7
- data/spec/framework_spec/app/spec/language/fixtures/variables.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/yield.rb +20 -2
- data/spec/framework_spec/app/spec/language/for_spec.rb +63 -39
- data/spec/framework_spec/app/spec/language/hash_spec.rb +26 -1
- data/spec/framework_spec/app/spec/language/if_spec.rb +32 -2
- data/spec/framework_spec/app/spec/language/line_spec.rb +42 -17
- data/spec/framework_spec/app/spec/language/literal_lambda_spec.rb +1 -0
- data/spec/framework_spec/app/spec/language/loop_spec.rb +7 -8
- data/spec/framework_spec/app/spec/language/magic_comment_spec.rb +60 -61
- data/spec/framework_spec/app/spec/language/metaclass_spec.rb +21 -24
- data/spec/framework_spec/app/spec/language/module_spec.rb +46 -1
- data/spec/framework_spec/app/spec/language/next_spec.rb +241 -7
- data/spec/framework_spec/app/spec/language/not_spec.rb +22 -2
- data/spec/framework_spec/app/spec/language/numbers_spec.rb +5 -6
- data/spec/framework_spec/app/spec/language/or_spec.rb +33 -7
- data/spec/framework_spec/app/spec/language/order_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/precedence_spec.rb +31 -33
- data/spec/framework_spec/app/spec/language/predefined/data_spec.rb +45 -0
- data/spec/framework_spec/app/spec/language/{fixtures/predefined.rb → predefined/fixtures/data1.rb} +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data2.rb +4 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data3.rb +7 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data4.rb +4 -0
- data/spec/framework_spec/app/spec/{core/io/data/fixtures/data2.rb → language/predefined/fixtures/data_flock.rb} +1 -1
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data_only.rb +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/print_data.rb +3 -0
- data/spec/framework_spec/app/spec/language/predefined_spec.rb +599 -283
- data/spec/framework_spec/app/spec/language/private_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/proc_spec.rb +238 -0
- data/spec/framework_spec/app/spec/language/redo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/language/regexp/anchors_spec.rb +163 -0
- data/spec/framework_spec/app/spec/language/regexp/back-references_spec.rb +50 -0
- data/spec/framework_spec/app/spec/language/regexp/character_classes_spec.rb +96 -0
- data/spec/framework_spec/app/spec/language/regexp/encoding_spec.rb +129 -0
- data/spec/framework_spec/app/spec/language/regexp/escapes_spec.rb +80 -0
- data/spec/framework_spec/app/spec/language/regexp/grouping_spec.rb +23 -0
- data/spec/framework_spec/app/spec/language/regexp/interpolation_spec.rb +55 -0
- data/spec/framework_spec/app/spec/language/regexp/modifiers_spec.rb +132 -0
- data/spec/framework_spec/app/spec/language/regexp/repetition_spec.rb +47 -0
- data/spec/framework_spec/app/spec/language/regexp/versions/character_classes_1.9.rb +499 -0
- data/spec/framework_spec/app/spec/language/regexp_spec.rb +42 -677
- data/spec/framework_spec/app/spec/language/rescue_spec.rb +57 -8
- data/spec/framework_spec/app/spec/language/retry_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/return_spec.rb +11 -2
- data/spec/framework_spec/app/spec/language/send_spec.rb +227 -0
- data/spec/framework_spec/app/spec/language/shared/__FILE__.rb +37 -0
- data/spec/framework_spec/app/spec/language/shared/__LINE__.rb +17 -0
- data/spec/framework_spec/app/spec/language/singleton_class_spec.rb +299 -0
- data/spec/framework_spec/app/spec/language/splat_spec.rb +188 -0
- data/spec/framework_spec/app/spec/language/string_spec.rb +42 -7
- data/spec/framework_spec/app/spec/language/super_spec.rb +11 -5
- data/spec/framework_spec/app/spec/language/symbol_spec.rb +18 -11
- data/spec/framework_spec/app/spec/language/throw_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/undef_spec.rb +1 -1
- data/spec/framework_spec/app/spec/language/unless_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/until_spec.rb +27 -27
- data/spec/framework_spec/app/spec/language/variables_spec.rb +57 -61
- data/spec/framework_spec/app/spec/language/versions/array_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/versions/block_1.9.rb +80 -17
- data/spec/framework_spec/app/spec/language/versions/case_1.9.rb +5 -5
- data/spec/framework_spec/app/spec/language/versions/hash_1.9.rb +19 -0
- data/spec/framework_spec/app/spec/language/versions/literal_lambda_1.9.rb +143 -0
- data/spec/framework_spec/app/spec/language/versions/not_1.9.rb +22 -0
- data/spec/framework_spec/app/spec/language/versions/regexp_1.9.rb +3 -3
- data/spec/framework_spec/app/spec/language/versions/send_1.9.rb +196 -0
- data/spec/framework_spec/app/spec/language/versions/symbol_1.9.rb +10 -2
- data/spec/framework_spec/app/spec/language/versions/variables_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/while_spec.rb +24 -24
- data/spec/framework_spec/app/spec/language/yield_spec.rb +105 -84
- data/spec/framework_spec/app/spec/library/base64/b64encode_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/base64/decode64_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/base64/decode_b_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/base64/encode64_spec.rb +14 -0
- data/spec/framework_spec/app/spec/library/digest/hexencode_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/digest/md5/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/block_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/equal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/file_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/reset_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/shared/sample.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/sha1/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/sha1/file_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/digest/sha1/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/set/add_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/set/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/delete_if_spec.rb +46 -0
- data/spec/framework_spec/app/spec/library/set/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/each_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/enumerable/to_set_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/eql_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/equal_value_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/flatten_merge_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/set/flatten_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/set/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/initialize_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/set/inspect_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/keep_if_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/set/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/proper_subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/proper_superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/reject_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/set/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/select_spec.rb +45 -0
- data/spec/framework_spec/app/spec/library/set/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/add_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_if_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/each_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/eql_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/equal_value_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_merge_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/inspect_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/keep_if_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/reject_spec.rb +52 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/select_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/append_spec.rb +84 -0
- data/spec/framework_spec/app/spec/library/stringio/binmode_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/bytes_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/chars_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/close_read_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/close_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringio/close_write_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_read_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_write_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/codepoints.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_byte_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_char_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/each_codepoint.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/each_line_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/each_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/eof_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/external_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/fcntl_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/fileno_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fixtures/classes.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/flush_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fsync_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/getbyte_spec.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringio/getc_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/gets_spec.rb +139 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_copy_spec.rb +96 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_spec.rb +194 -0
- data/spec/framework_spec/app/spec/library/stringio/internal_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/isatty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/lineno_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringio/lines_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringio/open_spec.rb +216 -0
- data/spec/framework_spec/app/spec/library/stringio/path_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/pid_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/pos_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringio/print_spec.rb +114 -0
- data/spec/framework_spec/app/spec/library/stringio/printf_spec.rb +61 -0
- data/spec/framework_spec/app/spec/library/stringio/putc_spec.rb +88 -0
- data/spec/framework_spec/app/spec/library/stringio/puts_spec.rb +159 -0
- data/spec/framework_spec/app/spec/library/stringio/read_spec.rb +62 -0
- data/spec/framework_spec/app/spec/library/stringio/readbyte_spec.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringio/readchar_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringio/readline_spec.rb +128 -0
- data/spec/framework_spec/app/spec/library/stringio/readlines_spec.rb +94 -0
- data/spec/framework_spec/app/spec/library/stringio/readpartial_spec.rb +83 -0
- data/spec/framework_spec/app/spec/library/stringio/reopen_spec.rb +304 -0
- data/spec/framework_spec/app/spec/library/stringio/rewind_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/seek_spec.rb +76 -0
- data/spec/framework_spec/app/spec/library/stringio/set_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/codepoints.rb +45 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each.rb +115 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_byte.rb +60 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_char.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/eof.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/getc.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/isatty.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/length.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/read.rb +125 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/readchar.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/tell.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/write.rb +87 -0
- data/spec/framework_spec/app/spec/library/stringio/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/string_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/stringio_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/sync_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/sysread_spec.rb +54 -0
- data/spec/framework_spec/app/spec/library/stringio/syswrite_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/tell_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/truncate_spec.rb +70 -0
- data/spec/framework_spec/app/spec/library/stringio/tty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/ungetc_spec.rb +99 -0
- data/spec/framework_spec/app/spec/library/stringio/write_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringscanner/append_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/beginning_of_line_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/bol_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_until_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/clear_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/concat_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/dup_spec.rb +39 -0
- data/spec/framework_spec/app/spec/library/stringscanner/element_reference_spec.rb +49 -0
- data/spec/framework_spec/app/spec/library/stringscanner/empty_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/eos_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/exist_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringscanner/get_byte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getch_spec.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/initialize_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/inspect_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringscanner/match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matchedsize_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/stringscanner/must_C_version_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peek_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peep_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pointer_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pos_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/post_match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pre_match_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/reset_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/stringscanner/restsize_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_until_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringscanner/search_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/bol.rb +25 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/concat.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/eos.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range_matched.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/get_byte.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/matched_size.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/peek.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/pos.rb +52 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/rest_size.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/terminate.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_until_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/string_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/stringscanner/terminate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/unscan_spec.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/Complex.rb +76 -0
- data/spec/framework_spec/app/spec/shared/complex/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/abs2.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/arg.rb +9 -0
- data/spec/framework_spec/app/spec/shared/complex/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/complex/conjugate.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/denominator.rb +13 -0
- data/spec/framework_spec/app/spec/shared/complex/divide.rb +57 -0
- data/spec/framework_spec/app/spec/shared/complex/equal_value.rb +64 -0
- data/spec/framework_spec/app/spec/shared/complex/exponent.rb +54 -0
- data/spec/framework_spec/app/spec/shared/complex/hash.rb +16 -0
- data/spec/framework_spec/app/spec/shared/complex/image.rb +10 -0
- data/spec/framework_spec/app/spec/shared/complex/inspect.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/minus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/modulo.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/multiply.rb +24 -0
- data/spec/framework_spec/app/spec/shared/complex/numerator.rb +19 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/arg.rb +43 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/conj.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/imag.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/polar.rb +52 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/real.rb +30 -0
- data/spec/framework_spec/app/spec/shared/complex/plus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/polar.rb +22 -0
- data/spec/framework_spec/app/spec/shared/complex/real.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/rect.rb +45 -0
- data/spec/framework_spec/app/spec/shared/complex/to_s.rb +39 -0
- data/spec/framework_spec/app/spec/shared/continuation/call.rb +76 -0
- data/spec/framework_spec/app/spec/shared/continuation/new.rb +5 -0
- data/spec/framework_spec/app/spec/shared/enumerator/each.rb +45 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_cons.rb +12 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_for.rb +15 -0
- data/spec/framework_spec/app/spec/shared/enumerator/new.rb +42 -0
- data/spec/framework_spec/app/spec/shared/enumerator/next.rb +30 -0
- data/spec/framework_spec/app/spec/shared/enumerator/rewind.rb +32 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_index.rb +35 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_object.rb +19 -0
- data/spec/framework_spec/app/spec/shared/fiber/resume.rb +65 -0
- data/spec/framework_spec/app/spec/shared/file/blockdev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/chardev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/directory.rb +59 -21
- data/spec/framework_spec/app/spec/shared/file/executable.rb +10 -14
- data/spec/framework_spec/app/spec/shared/file/executable_real.rb +15 -9
- data/spec/framework_spec/app/spec/shared/file/exist.rb +9 -3
- data/spec/framework_spec/app/spec/shared/file/file.rb +12 -10
- data/spec/framework_spec/app/spec/shared/file/grpowned.rb +12 -6
- data/spec/framework_spec/app/spec/shared/file/identical.rb +21 -16
- data/spec/framework_spec/app/spec/shared/file/owned.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/pipe.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/readable.rb +16 -13
- data/spec/framework_spec/app/spec/shared/file/readable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/size.rb +107 -15
- data/spec/framework_spec/app/spec/shared/file/socket.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/sticky.rb +30 -0
- data/spec/framework_spec/app/spec/shared/file/symlink.rb +20 -14
- data/spec/framework_spec/app/spec/shared/file/world_readable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/world_writable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/writable.rb +10 -7
- data/spec/framework_spec/app/spec/shared/file/writable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/zero.rb +16 -17
- data/spec/framework_spec/app/spec/shared/io/putc.rb +57 -0
- data/spec/framework_spec/app/spec/shared/kernel/callcc.rb +68 -0
- data/spec/framework_spec/app/spec/shared/kernel/method_missing.rb +60 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_added.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_removed.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_undefined.rb +7 -0
- data/spec/framework_spec/app/spec/shared/math/atanh.rb +142 -0
- data/spec/framework_spec/app/spec/shared/process/times.rb +8 -8
- data/spec/framework_spec/app/spec/shared/rational/Rational.rb +113 -0
- data/spec/framework_spec/app/spec/shared/rational/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/rational/ceil.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/comparison.rb +86 -0
- data/spec/framework_spec/app/spec/shared/rational/denominator.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/div.rb +81 -0
- data/spec/framework_spec/app/spec/shared/rational/divide.rb +72 -0
- data/spec/framework_spec/app/spec/shared/rational/divmod.rb +53 -0
- data/spec/framework_spec/app/spec/shared/rational/equal_value.rb +62 -0
- data/spec/framework_spec/app/spec/shared/rational/exponent.rb +144 -0
- data/spec/framework_spec/app/spec/shared/rational/fdiv.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/floor.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/hash.rb +10 -0
- data/spec/framework_spec/app/spec/shared/rational/initialize.rb +25 -0
- data/spec/framework_spec/app/spec/shared/rational/inspect.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_dump.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_load.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/minus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/modulo.rb +52 -0
- data/spec/framework_spec/app/spec/shared/rational/multiply.rb +63 -0
- data/spec/framework_spec/app/spec/shared/rational/new.rb +21 -0
- data/spec/framework_spec/app/spec/shared/rational/numerator.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/plus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/quo.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/reduce.rb +31 -0
- data/spec/framework_spec/app/spec/shared/rational/remainder.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/round.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/to_f.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/to_i.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/to_r.rb +14 -0
- data/spec/framework_spec/app/spec/shared/rational/to_s.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/truncate.rb +5 -0
- data/spec/framework_spec/app/spec/spec_helper.rb +1 -37
- data/spec/framework_spec/app/spec/version.rb +3 -0
- data/spec/framework_spec/app/spec_runner.rb +50 -80
- data/spec/framework_spec/build.yml +3 -4
- data/spec/framework_spec/rhoconfig.txt +4 -1
- data/spec/phone_spec/app/spec/contacts_spec.rb +8 -4
- data/spec/phone_spec/app/spec/date_spec.rb +17 -0
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +11 -0
- data/spec/phone_spec/app/spec/syncengine_spec.rb +63 -1
- data/spec/phone_spec/app/spec/uri_spec.rb +2 -0
- data/spec/phone_spec/app/spec/xml_spec.rb +10 -3
- data/spec/phone_spec/app/spec_runner.rb +1 -1
- data/spec/phone_spec/build.yml +2 -2
- data/spec/phone_spec/rhoconfig.txt +1 -0
- metadata +1059 -91
- data/Manifest.txt +0 -6338
- data/doc/rhodes-api/alert-api.txt +0 -102
- data/lib/extensions/mspec/mspec/fileutils.rb +0 -1589
- data/lib/extensions/mspec/mspec/helpers/bignum.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/infinity.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/metaclass.rb +0 -7
- data/lib/extensions/mspec/mspec/helpers/nan.rb +0 -5
- data/platform/shared/ruby/blockinlining.c +0 -464
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.css +0 -8
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.js +0 -155
- data/res/generators/templates/application/public/jquery/jquery-1.6.2.min.js +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_class_spec.rb +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_spec.rb +0 -23
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_subclass_spec.rb +0 -25
- data/spec/framework_spec/app/spec/core/basicobject/metaclass_spec.rb +0 -27
- data/spec/framework_spec/app/spec/core/basicobject/remove_method_missing.rb +0 -14
- data/spec/framework_spec/app/spec/core/basicobject/shared/behavior.rb +0 -16
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants.rb +0 -13
- data/spec/framework_spec/app/spec/core/continuation/continuation_spec.rb +0 -109
- data/spec/framework_spec/app/spec/core/dir/new_spec.rb +0 -2
- data/spec/framework_spec/app/spec/core/enumerable/each_spec.rb +0 -14
- data/spec/framework_spec/app/spec/core/fiber/alive_spec.rb +0 -54
- data/spec/framework_spec/app/spec/core/fiber/current_spec.rb +0 -63
- data/spec/framework_spec/app/spec/core/fiber/shared/resume.rb +0 -71
- data/spec/framework_spec/app/spec/core/fiber/transfer_spec.rb +0 -45
- data/spec/framework_spec/app/spec/core/io/data/data_spec.rb +0 -13
- data/spec/framework_spec/app/spec/core/io/data/fixtures/data1.rb +0 -3
- data/spec/framework_spec/app/spec/core/io/data/flock_spec.rb +0 -22
- data/spec/framework_spec/app/spec/core/io/fixtures/paragraphs.txt +0 -7
- data/spec/framework_spec/app/spec/core/io/fixtures/readlines.txt +0 -6
- data/spec/framework_spec/app/spec/core/kernel/__callee__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/kernel/__method__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/proc/fixtures/procs.rb +0 -5
- data/spec/framework_spec/app/spec/find_spec.rb +0 -56
- data/spec/framework_spec/app/spec/fixtures/load/load_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_5.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_6.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_7.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap_2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/matrix.rb +0 -5
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_6.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_7.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_raises.rb +0 -3
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_recursive.rb +0 -2
- data/spec/framework_spec/app/spec/language/catch_spec.rb +0 -84
- data/spec/framework_spec/app/spec/language/eigenclass_spec.rb +0 -317
- data/spec/framework_spec/app/spec/language/else_spec.rb +0 -1
- data/spec/framework_spec/app/spec/language/method_spec.rb +0 -273
- data/spec/framework_spec/app/spec/language/versions/array_1.8.rb +0 -13
- data/spec/framework_spec/app/spec/language/versions/method_1.9.rb +0 -137
- data/spec/framework_spec/app/spec/language/versions/symbol_1.8.rb +0 -5
@@ -59,9 +59,7 @@ struct timeval rb_time_interval(VALUE);
|
|
59
59
|
#undef HAVE_GETPGRP
|
60
60
|
#endif
|
61
61
|
|
62
|
-
|
63
|
-
#include <common/stat.h>
|
64
|
-
/* RHO END */
|
62
|
+
#include <sys/stat.h>
|
65
63
|
|
66
64
|
#ifdef HAVE_SYS_TIMES_H
|
67
65
|
#include <sys/times.h>
|
@@ -141,7 +139,7 @@ static VALUE rb_cProcessTms;
|
|
141
139
|
|
142
140
|
/*
|
143
141
|
* call-seq:
|
144
|
-
* Process.pid
|
142
|
+
* Process.pid -> fixnum
|
145
143
|
*
|
146
144
|
* Returns the process id of this process. Not available on all
|
147
145
|
* platforms.
|
@@ -159,7 +157,7 @@ get_pid(void)
|
|
159
157
|
|
160
158
|
/*
|
161
159
|
* call-seq:
|
162
|
-
* Process.ppid
|
160
|
+
* Process.ppid -> fixnum
|
163
161
|
*
|
164
162
|
* Returns the process id of the parent of this process. Returns
|
165
163
|
* untrustworthy value on Win32/64. Not available on all platforms.
|
@@ -236,8 +234,8 @@ rb_last_status_clear(void)
|
|
236
234
|
|
237
235
|
/*
|
238
236
|
* call-seq:
|
239
|
-
* stat.to_i
|
240
|
-
* stat.to_int
|
237
|
+
* stat.to_i -> fixnum
|
238
|
+
* stat.to_int -> fixnum
|
241
239
|
*
|
242
240
|
* Returns the bits in _stat_ as a <code>Fixnum</code>. Poking
|
243
241
|
* around in these bits is platform dependent.
|
@@ -257,7 +255,7 @@ pst_to_i(VALUE st)
|
|
257
255
|
|
258
256
|
/*
|
259
257
|
* call-seq:
|
260
|
-
* stat.pid
|
258
|
+
* stat.pid -> fixnum
|
261
259
|
*
|
262
260
|
* Returns the process ID that this status object represents.
|
263
261
|
*
|
@@ -309,7 +307,7 @@ pst_message(VALUE str, rb_pid_t pid, int status)
|
|
309
307
|
|
310
308
|
/*
|
311
309
|
* call-seq:
|
312
|
-
* stat.to_s
|
310
|
+
* stat.to_s -> string
|
313
311
|
*
|
314
312
|
* Show pid and exit status as a string.
|
315
313
|
*/
|
@@ -321,7 +319,7 @@ pst_to_s(VALUE st)
|
|
321
319
|
int status;
|
322
320
|
VALUE str;
|
323
321
|
|
324
|
-
pid =
|
322
|
+
pid = NUM2PIDT(pst_pid(st));
|
325
323
|
status = PST2INT(st);
|
326
324
|
|
327
325
|
str = rb_str_buf_new(0);
|
@@ -332,7 +330,7 @@ pst_to_s(VALUE st)
|
|
332
330
|
|
333
331
|
/*
|
334
332
|
* call-seq:
|
335
|
-
* stat.inspect
|
333
|
+
* stat.inspect -> string
|
336
334
|
*
|
337
335
|
* Override the inspection method.
|
338
336
|
*/
|
@@ -348,7 +346,7 @@ pst_inspect(VALUE st)
|
|
348
346
|
if (NIL_P(vpid)) {
|
349
347
|
return rb_sprintf("#<%s: uninitialized>", rb_class2name(CLASS_OF(st)));
|
350
348
|
}
|
351
|
-
pid =
|
349
|
+
pid = NUM2PIDT(vpid);
|
352
350
|
status = PST2INT(st);
|
353
351
|
|
354
352
|
str = rb_sprintf("#<%s: ", rb_class2name(CLASS_OF(st)));
|
@@ -360,7 +358,7 @@ pst_inspect(VALUE st)
|
|
360
358
|
|
361
359
|
/*
|
362
360
|
* call-seq:
|
363
|
-
* stat == other
|
361
|
+
* stat == other -> true or false
|
364
362
|
*
|
365
363
|
* Returns +true+ if the integer value of _stat_
|
366
364
|
* equals <em>other</em>.
|
@@ -376,7 +374,7 @@ pst_equal(VALUE st1, VALUE st2)
|
|
376
374
|
|
377
375
|
/*
|
378
376
|
* call-seq:
|
379
|
-
* stat & num
|
377
|
+
* stat & num -> fixnum
|
380
378
|
*
|
381
379
|
* Logical AND of the bits in _stat_ with <em>num</em>.
|
382
380
|
*
|
@@ -397,7 +395,7 @@ pst_bitand(VALUE st1, VALUE st2)
|
|
397
395
|
|
398
396
|
/*
|
399
397
|
* call-seq:
|
400
|
-
* stat >> num
|
398
|
+
* stat >> num -> fixnum
|
401
399
|
*
|
402
400
|
* Shift the bits in _stat_ right <em>num</em> places.
|
403
401
|
*
|
@@ -418,7 +416,7 @@ pst_rshift(VALUE st1, VALUE st2)
|
|
418
416
|
|
419
417
|
/*
|
420
418
|
* call-seq:
|
421
|
-
* stat.stopped?
|
419
|
+
* stat.stopped? -> true or false
|
422
420
|
*
|
423
421
|
* Returns +true+ if this process is stopped. This is only
|
424
422
|
* returned if the corresponding <code>wait</code> call had the
|
@@ -439,7 +437,7 @@ pst_wifstopped(VALUE st)
|
|
439
437
|
|
440
438
|
/*
|
441
439
|
* call-seq:
|
442
|
-
* stat.stopsig
|
440
|
+
* stat.stopsig -> fixnum or nil
|
443
441
|
*
|
444
442
|
* Returns the number of the signal that caused _stat_ to stop
|
445
443
|
* (or +nil+ if self is not stopped).
|
@@ -458,7 +456,7 @@ pst_wstopsig(VALUE st)
|
|
458
456
|
|
459
457
|
/*
|
460
458
|
* call-seq:
|
461
|
-
* stat.signaled?
|
459
|
+
* stat.signaled? -> true or false
|
462
460
|
*
|
463
461
|
* Returns +true+ if _stat_ terminated because of
|
464
462
|
* an uncaught signal.
|
@@ -478,7 +476,7 @@ pst_wifsignaled(VALUE st)
|
|
478
476
|
|
479
477
|
/*
|
480
478
|
* call-seq:
|
481
|
-
* stat.termsig
|
479
|
+
* stat.termsig -> fixnum or nil
|
482
480
|
*
|
483
481
|
* Returns the number of the signal that caused _stat_ to
|
484
482
|
* terminate (or +nil+ if self was not terminated by an
|
@@ -498,7 +496,7 @@ pst_wtermsig(VALUE st)
|
|
498
496
|
|
499
497
|
/*
|
500
498
|
* call-seq:
|
501
|
-
* stat.exited?
|
499
|
+
* stat.exited? -> true or false
|
502
500
|
*
|
503
501
|
* Returns +true+ if _stat_ exited normally (for
|
504
502
|
* example using an <code>exit()</code> call or finishing the
|
@@ -519,7 +517,7 @@ pst_wifexited(VALUE st)
|
|
519
517
|
|
520
518
|
/*
|
521
519
|
* call-seq:
|
522
|
-
* stat.exitstatus
|
520
|
+
* stat.exitstatus -> fixnum or nil
|
523
521
|
*
|
524
522
|
* Returns the least significant eight bits of the return code of
|
525
523
|
* _stat_. Only available if <code>exited?</code> is
|
@@ -549,7 +547,7 @@ pst_wexitstatus(VALUE st)
|
|
549
547
|
|
550
548
|
/*
|
551
549
|
* call-seq:
|
552
|
-
* stat.success?
|
550
|
+
* stat.success? -> true, false or nil
|
553
551
|
*
|
554
552
|
* Returns +true+ if _stat_ is successful, +false+ if not.
|
555
553
|
* Returns +nil+ if <code>exited?</code> is not +true+.
|
@@ -568,7 +566,7 @@ pst_success_p(VALUE st)
|
|
568
566
|
|
569
567
|
/*
|
570
568
|
* call-seq:
|
571
|
-
* stat.coredump?
|
569
|
+
* stat.coredump? -> true or false
|
572
570
|
*
|
573
571
|
* Returns +true+ if _stat_ generated a coredump
|
574
572
|
* when it terminated. Not available on all platforms.
|
@@ -727,9 +725,9 @@ rb_waitpid(rb_pid_t pid, int *st, int flags)
|
|
727
725
|
|
728
726
|
/*
|
729
727
|
* call-seq:
|
730
|
-
* Process.wait()
|
731
|
-
* Process.wait(pid=-1, flags=0)
|
732
|
-
* Process.waitpid(pid=-1, flags=0)
|
728
|
+
* Process.wait() -> fixnum
|
729
|
+
* Process.wait(pid=-1, flags=0) -> fixnum
|
730
|
+
* Process.waitpid(pid=-1, flags=0) -> fixnum
|
733
731
|
*
|
734
732
|
* Waits for a child process to exit, returns its process id, and
|
735
733
|
* sets <code>$?</code> to a <code>Process::Status</code> object
|
@@ -800,8 +798,8 @@ proc_wait(int argc, VALUE *argv)
|
|
800
798
|
|
801
799
|
/*
|
802
800
|
* call-seq:
|
803
|
-
* Process.wait2(pid=-1, flags=0)
|
804
|
-
* Process.waitpid2(pid=-1, flags=0)
|
801
|
+
* Process.wait2(pid=-1, flags=0) -> [pid, status]
|
802
|
+
* Process.waitpid2(pid=-1, flags=0) -> [pid, status]
|
805
803
|
*
|
806
804
|
* Waits for a child process to exit (see Process::waitpid for exact
|
807
805
|
* semantics) and returns an array containing the process id and the
|
@@ -826,7 +824,7 @@ proc_wait2(int argc, VALUE *argv)
|
|
826
824
|
|
827
825
|
/*
|
828
826
|
* call-seq:
|
829
|
-
* Process.waitall
|
827
|
+
* Process.waitall -> [ [pid1,status1], ...]
|
830
828
|
*
|
831
829
|
* Waits for all children, returning an array of
|
832
830
|
* _pid_/_status_ pairs (where _status_ is a
|
@@ -924,7 +922,7 @@ rb_detach_process(rb_pid_t pid)
|
|
924
922
|
|
925
923
|
/*
|
926
924
|
* call-seq:
|
927
|
-
* Process.detach(pid)
|
925
|
+
* Process.detach(pid) -> thread
|
928
926
|
*
|
929
927
|
* Some operating systems retain the status of terminated child
|
930
928
|
* processes until the parent collects that status (normally using
|
@@ -941,6 +939,8 @@ rb_detach_process(rb_pid_t pid)
|
|
941
939
|
* know the result. If specified _pid_ is not a valid child process
|
942
940
|
* ID, the thread returns +nil+ immediately.
|
943
941
|
*
|
942
|
+
* The waiting thread has <code>pid</code> method which returns the pid.
|
943
|
+
*
|
944
944
|
* In this first example, we don't reap the first child process, so
|
945
945
|
* it appears as a zombie in the process status display.
|
946
946
|
*
|
@@ -1229,6 +1229,7 @@ enum {
|
|
1229
1229
|
EXEC_OPTION_DUP2,
|
1230
1230
|
EXEC_OPTION_CLOSE,
|
1231
1231
|
EXEC_OPTION_OPEN,
|
1232
|
+
EXEC_OPTION_DUP2_CHILD,
|
1232
1233
|
EXEC_OPTION_CLOSE_OTHERS
|
1233
1234
|
};
|
1234
1235
|
|
@@ -1240,6 +1241,17 @@ check_exec_redirect_fd(VALUE v)
|
|
1240
1241
|
if (FIXNUM_P(v)) {
|
1241
1242
|
fd = FIX2INT(v);
|
1242
1243
|
}
|
1244
|
+
else if (SYMBOL_P(v)) {
|
1245
|
+
ID id = SYM2ID(v);
|
1246
|
+
if (id == rb_intern("in"))
|
1247
|
+
fd = 0;
|
1248
|
+
else if (id == rb_intern("out"))
|
1249
|
+
fd = 1;
|
1250
|
+
else if (id == rb_intern("err"))
|
1251
|
+
fd = 2;
|
1252
|
+
else
|
1253
|
+
goto wrong;
|
1254
|
+
}
|
1243
1255
|
else if (!NIL_P(tmp = rb_check_convert_type(v, T_FILE, "IO", "to_io"))) {
|
1244
1256
|
rb_io_t *fptr;
|
1245
1257
|
GetOpenFile(tmp, fptr);
|
@@ -1251,6 +1263,7 @@ check_exec_redirect_fd(VALUE v)
|
|
1251
1263
|
rb_raise(rb_eArgError, "wrong exec redirect");
|
1252
1264
|
}
|
1253
1265
|
if (fd < 0) {
|
1266
|
+
wrong:
|
1254
1267
|
rb_raise(rb_eArgError, "negative file descriptor");
|
1255
1268
|
}
|
1256
1269
|
return INT2FIX(fd);
|
@@ -1271,6 +1284,18 @@ check_exec_redirect(VALUE key, VALUE val, VALUE options)
|
|
1271
1284
|
index = EXEC_OPTION_CLOSE;
|
1272
1285
|
param = Qnil;
|
1273
1286
|
}
|
1287
|
+
else if (id == rb_intern("in")) {
|
1288
|
+
index = EXEC_OPTION_DUP2;
|
1289
|
+
param = INT2FIX(0);
|
1290
|
+
}
|
1291
|
+
else if (id == rb_intern("out")) {
|
1292
|
+
index = EXEC_OPTION_DUP2;
|
1293
|
+
param = INT2FIX(1);
|
1294
|
+
}
|
1295
|
+
else if (id == rb_intern("err")) {
|
1296
|
+
index = EXEC_OPTION_DUP2;
|
1297
|
+
param = INT2FIX(2);
|
1298
|
+
}
|
1274
1299
|
else {
|
1275
1300
|
rb_raise(rb_eArgError, "wrong exec redirect symbol: %s",
|
1276
1301
|
rb_id2name(id));
|
@@ -1286,20 +1311,27 @@ check_exec_redirect(VALUE key, VALUE val, VALUE options)
|
|
1286
1311
|
break;
|
1287
1312
|
|
1288
1313
|
case T_ARRAY:
|
1289
|
-
index = EXEC_OPTION_OPEN;
|
1290
1314
|
path = rb_ary_entry(val, 0);
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1315
|
+
if (RARRAY_LEN(val) == 2 && SYMBOL_P(path) &&
|
1316
|
+
SYM2ID(path) == rb_intern("child")) {
|
1317
|
+
index = EXEC_OPTION_DUP2_CHILD;
|
1318
|
+
param = check_exec_redirect_fd(rb_ary_entry(val, 1));
|
1319
|
+
}
|
1320
|
+
else {
|
1321
|
+
index = EXEC_OPTION_OPEN;
|
1322
|
+
FilePathValue(path);
|
1323
|
+
flags = rb_ary_entry(val, 1);
|
1324
|
+
if (NIL_P(flags))
|
1325
|
+
flags = INT2NUM(O_RDONLY);
|
1326
|
+
else if (TYPE(flags) == T_STRING)
|
1327
|
+
flags = INT2NUM(rb_io_modestr_oflags(StringValueCStr(flags)));
|
1328
|
+
else
|
1329
|
+
flags = rb_to_int(flags);
|
1330
|
+
perm = rb_ary_entry(val, 2);
|
1331
|
+
perm = NIL_P(perm) ? INT2FIX(0644) : rb_to_int(perm);
|
1332
|
+
param = hide_obj(rb_ary_new3(3, hide_obj(rb_str_dup(path)),
|
1333
|
+
flags, perm));
|
1334
|
+
}
|
1303
1335
|
break;
|
1304
1336
|
|
1305
1337
|
case T_STRING:
|
@@ -1486,7 +1518,7 @@ check_exec_fds(VALUE options)
|
|
1486
1518
|
int index, i;
|
1487
1519
|
int maxhint = -1;
|
1488
1520
|
|
1489
|
-
for (index = EXEC_OPTION_DUP2; index <=
|
1521
|
+
for (index = EXEC_OPTION_DUP2; index <= EXEC_OPTION_DUP2_CHILD; index++) {
|
1490
1522
|
ary = rb_ary_entry(options, index);
|
1491
1523
|
if (NIL_P(ary))
|
1492
1524
|
continue;
|
@@ -1496,16 +1528,53 @@ check_exec_fds(VALUE options)
|
|
1496
1528
|
if (RTEST(rb_hash_lookup(h, INT2FIX(fd)))) {
|
1497
1529
|
rb_raise(rb_eArgError, "fd %d specified twice", fd);
|
1498
1530
|
}
|
1499
|
-
|
1531
|
+
if (index == EXEC_OPTION_OPEN || index == EXEC_OPTION_DUP2)
|
1532
|
+
rb_hash_aset(h, INT2FIX(fd), Qtrue);
|
1533
|
+
else if (index == EXEC_OPTION_DUP2_CHILD)
|
1534
|
+
rb_hash_aset(h, INT2FIX(fd), RARRAY_PTR(elt)[1]);
|
1535
|
+
else /* index == EXEC_OPTION_CLOSE */
|
1536
|
+
rb_hash_aset(h, INT2FIX(fd), INT2FIX(-1));
|
1500
1537
|
if (maxhint < fd)
|
1501
1538
|
maxhint = fd;
|
1502
|
-
if (index == EXEC_OPTION_DUP2) {
|
1539
|
+
if (index == EXEC_OPTION_DUP2 || index == EXEC_OPTION_DUP2_CHILD) {
|
1503
1540
|
fd = FIX2INT(RARRAY_PTR(elt)[1]);
|
1504
1541
|
if (maxhint < fd)
|
1505
1542
|
maxhint = fd;
|
1506
1543
|
}
|
1507
1544
|
}
|
1508
1545
|
}
|
1546
|
+
|
1547
|
+
ary = rb_ary_entry(options, EXEC_OPTION_DUP2_CHILD);
|
1548
|
+
if (!NIL_P(ary)) {
|
1549
|
+
for (i = 0; i < RARRAY_LEN(ary); i++) {
|
1550
|
+
VALUE elt = RARRAY_PTR(ary)[i];
|
1551
|
+
int newfd = FIX2INT(RARRAY_PTR(elt)[0]);
|
1552
|
+
int oldfd = FIX2INT(RARRAY_PTR(elt)[1]);
|
1553
|
+
int lastfd = oldfd;
|
1554
|
+
VALUE val = rb_hash_lookup(h, INT2FIX(lastfd));
|
1555
|
+
long depth = 0;
|
1556
|
+
while (FIXNUM_P(val) && 0 <= FIX2INT(val)) {
|
1557
|
+
lastfd = FIX2INT(val);
|
1558
|
+
val = rb_hash_lookup(h, val);
|
1559
|
+
if (RARRAY_LEN(ary) < depth)
|
1560
|
+
rb_raise(rb_eArgError, "cyclic child fd redirection from %d", oldfd);
|
1561
|
+
depth++;
|
1562
|
+
}
|
1563
|
+
if (val != Qtrue)
|
1564
|
+
rb_raise(rb_eArgError, "child fd %d is not redirected", oldfd);
|
1565
|
+
if (oldfd != lastfd) {
|
1566
|
+
VALUE val2;
|
1567
|
+
rb_ary_store(elt, 1, INT2FIX(lastfd));
|
1568
|
+
rb_hash_aset(h, INT2FIX(newfd), INT2FIX(lastfd));
|
1569
|
+
val = INT2FIX(oldfd);
|
1570
|
+
while (FIXNUM_P(val2 = rb_hash_lookup(h, val))) {
|
1571
|
+
rb_hash_aset(h, val, INT2FIX(lastfd));
|
1572
|
+
val = val2;
|
1573
|
+
}
|
1574
|
+
}
|
1575
|
+
}
|
1576
|
+
}
|
1577
|
+
|
1509
1578
|
if (rb_ary_entry(options, EXEC_OPTION_CLOSE_OTHERS) != Qfalse) {
|
1510
1579
|
rb_ary_store(options, EXEC_OPTION_CLOSE_OTHERS, INT2FIX(maxhint));
|
1511
1580
|
}
|
@@ -1655,25 +1724,38 @@ rb_exec_arg_fixup(struct rb_exec_arg *e)
|
|
1655
1724
|
|
1656
1725
|
/*
|
1657
1726
|
* call-seq:
|
1658
|
-
* exec([env,] command
|
1727
|
+
* exec([env,] command... [,options])
|
1659
1728
|
*
|
1660
1729
|
* Replaces the current process by running the given external _command_.
|
1661
|
-
*
|
1662
|
-
* taken as a line that is subject to shell expansion before being
|
1663
|
-
* executed. If one or more +arg+ given, they
|
1664
|
-
* are passed as parameters to _command_ with no shell
|
1665
|
-
* expansion. If +command+ is a two-element array, the first
|
1666
|
-
* element is the command to be executed, and the second argument is
|
1667
|
-
* used as the <code>argv[0]</code> value, which may show up in process
|
1668
|
-
* listings. In order to execute the command, one of the <code>exec(2)</code>
|
1669
|
-
* system calls is used, so the running command may inherit some of the environment
|
1670
|
-
* of the original program (including open file descriptors).
|
1730
|
+
* _command..._ is one of following forms.
|
1671
1731
|
*
|
1672
|
-
*
|
1673
|
-
*
|
1732
|
+
* commandline : command line string which is passed to the standard shell
|
1733
|
+
* cmdname, arg1, ... : command name and one or more arguments (no shell)
|
1734
|
+
* [cmdname, argv0], arg1, ... : command name, argv[0] and zero or more arguments (no shell)
|
1735
|
+
*
|
1736
|
+
* If single string is given as the command,
|
1737
|
+
* it is taken as a command line that is subject to shell expansion before being executed.
|
1738
|
+
*
|
1739
|
+
* The standard shell means always <code>"/bin/sh"</code> on Unix-like systems,
|
1740
|
+
* <code>ENV["RUBYSHELL"]</code> or <code>ENV["COMSPEC"]</code> on Windows NT series, and
|
1741
|
+
* similar.
|
1742
|
+
*
|
1743
|
+
* If two or more +string+ given,
|
1744
|
+
* the first is taken as a command name and
|
1745
|
+
* the rest are passed as parameters to command with no shell expansion.
|
1746
|
+
*
|
1747
|
+
* If a two-element array at the beginning of the command,
|
1748
|
+
* the first element is the command to be executed,
|
1749
|
+
* and the second argument is used as the <code>argv[0]</code> value,
|
1750
|
+
* which may show up in process listings.
|
1751
|
+
*
|
1752
|
+
* In order to execute the command, one of the <code>exec(2)</code>
|
1753
|
+
* system calls is used, so the running command may inherit some of the environment
|
1754
|
+
* of the original program (including open file descriptors).
|
1755
|
+
* This behavior is modified by env and options.
|
1674
1756
|
* See <code>spawn</code> for details.
|
1675
1757
|
*
|
1676
|
-
* Raises SystemCallError if the
|
1758
|
+
* Raises SystemCallError if the command couldn't execute (typically
|
1677
1759
|
* <code>Errno::ENOENT</code> when it was not found).
|
1678
1760
|
*
|
1679
1761
|
* exec "echo *" # echoes list of files in current directory
|
@@ -1688,17 +1770,23 @@ VALUE
|
|
1688
1770
|
rb_f_exec(int argc, VALUE *argv)
|
1689
1771
|
{
|
1690
1772
|
struct rb_exec_arg earg;
|
1773
|
+
#define CHILD_ERRMSG_BUFLEN 80
|
1774
|
+
char errmsg[CHILD_ERRMSG_BUFLEN] = { '\0' };
|
1691
1775
|
|
1692
|
-
rb_exec_arg_init(argc, argv,
|
1776
|
+
rb_exec_arg_init(argc, argv, TRUE, &earg);
|
1693
1777
|
if (NIL_P(rb_ary_entry(earg.options, EXEC_OPTION_CLOSE_OTHERS)))
|
1694
1778
|
rb_exec_arg_addopt(&earg, ID2SYM(rb_intern("close_others")), Qfalse);
|
1695
1779
|
rb_exec_arg_fixup(&earg);
|
1696
1780
|
|
1697
|
-
|
1781
|
+
rb_exec_err(&earg, errmsg, sizeof(errmsg));
|
1782
|
+
if (errmsg[0])
|
1783
|
+
rb_sys_fail(errmsg);
|
1698
1784
|
rb_sys_fail(earg.prog);
|
1699
1785
|
return Qnil; /* dummy */
|
1700
1786
|
}
|
1701
1787
|
|
1788
|
+
#define ERRMSG(str) do { if (errmsg && 0 < errmsg_buflen) strlcpy(errmsg, (str), errmsg_buflen); } while (0)
|
1789
|
+
|
1702
1790
|
/*#define DEBUG_REDIRECT*/
|
1703
1791
|
#if defined(DEBUG_REDIRECT)
|
1704
1792
|
|
@@ -1710,7 +1798,11 @@ ttyprintf(const char *fmt, ...)
|
|
1710
1798
|
va_list ap;
|
1711
1799
|
FILE *tty;
|
1712
1800
|
int save = errno;
|
1801
|
+
#ifdef _WIN32
|
1802
|
+
tty = fopen("con", "w");
|
1803
|
+
#else
|
1713
1804
|
tty = fopen("/dev/tty", "w");
|
1805
|
+
#endif
|
1714
1806
|
if (!tty)
|
1715
1807
|
return;
|
1716
1808
|
|
@@ -1765,12 +1857,17 @@ redirect_open(const char *pathname, int flags, mode_t perm)
|
|
1765
1857
|
#endif
|
1766
1858
|
|
1767
1859
|
static int
|
1768
|
-
save_redirect_fd(int fd, VALUE save)
|
1860
|
+
save_redirect_fd(int fd, VALUE save, char *errmsg, size_t errmsg_buflen)
|
1769
1861
|
{
|
1770
1862
|
if (!NIL_P(save)) {
|
1771
1863
|
VALUE newary;
|
1772
1864
|
int save_fd = redirect_dup(fd);
|
1773
|
-
if (save_fd == -1)
|
1865
|
+
if (save_fd == -1) {
|
1866
|
+
if (errno == EBADF)
|
1867
|
+
return 0;
|
1868
|
+
ERRMSG("dup");
|
1869
|
+
return -1;
|
1870
|
+
}
|
1774
1871
|
newary = rb_ary_entry(save, EXEC_OPTION_DUP2);
|
1775
1872
|
if (NIL_P(newary)) {
|
1776
1873
|
newary = hide_obj(rb_ary_new());
|
@@ -1819,20 +1916,30 @@ intcmp(const void *a, const void *b)
|
|
1819
1916
|
}
|
1820
1917
|
|
1821
1918
|
static int
|
1822
|
-
|
1919
|
+
intrcmp(const void *a, const void *b)
|
1920
|
+
{
|
1921
|
+
return *(int*)b - *(int*)a;
|
1922
|
+
}
|
1923
|
+
|
1924
|
+
static int
|
1925
|
+
run_exec_dup2(VALUE ary, VALUE save, char *errmsg, size_t errmsg_buflen)
|
1823
1926
|
{
|
1824
|
-
|
1927
|
+
long n, i;
|
1825
1928
|
int ret;
|
1826
1929
|
int extra_fd = -1;
|
1827
1930
|
struct fd_pair {
|
1828
1931
|
int oldfd;
|
1829
1932
|
int newfd;
|
1830
|
-
|
1831
|
-
|
1933
|
+
long older_index;
|
1934
|
+
long num_newer;
|
1832
1935
|
} *pairs = 0;
|
1833
1936
|
|
1834
1937
|
n = RARRAY_LEN(ary);
|
1835
|
-
pairs =
|
1938
|
+
pairs = (struct fd_pair *)malloc(sizeof(struct fd_pair) * n);
|
1939
|
+
if (pairs == NULL) {
|
1940
|
+
ERRMSG("malloc");
|
1941
|
+
return -1;
|
1942
|
+
}
|
1836
1943
|
|
1837
1944
|
/* initialize oldfd and newfd: O(n) */
|
1838
1945
|
for (i = 0; i < n; i++) {
|
@@ -1843,7 +1950,10 @@ run_exec_dup2(VALUE ary, VALUE save)
|
|
1843
1950
|
}
|
1844
1951
|
|
1845
1952
|
/* sort the table by oldfd: O(n log n) */
|
1846
|
-
|
1953
|
+
if (!RTEST(save))
|
1954
|
+
qsort(pairs, n, sizeof(struct fd_pair), intcmp);
|
1955
|
+
else
|
1956
|
+
qsort(pairs, n, sizeof(struct fd_pair), intrcmp);
|
1847
1957
|
|
1848
1958
|
/* initialize older_index and num_newer: O(n log n) */
|
1849
1959
|
for (i = 0; i < n; i++) {
|
@@ -1865,13 +1975,15 @@ run_exec_dup2(VALUE ary, VALUE save)
|
|
1865
1975
|
|
1866
1976
|
/* non-cyclic redirection: O(n) */
|
1867
1977
|
for (i = 0; i < n; i++) {
|
1868
|
-
|
1978
|
+
long j = i;
|
1869
1979
|
while (j != -1 && pairs[j].oldfd != -1 && pairs[j].num_newer == 0) {
|
1870
|
-
if (save_redirect_fd(pairs[j].newfd, save) < 0)
|
1980
|
+
if (save_redirect_fd(pairs[j].newfd, save, errmsg, errmsg_buflen) < 0)
|
1871
1981
|
goto fail;
|
1872
1982
|
ret = redirect_dup2(pairs[j].oldfd, pairs[j].newfd);
|
1873
|
-
if (ret == -1)
|
1983
|
+
if (ret == -1) {
|
1984
|
+
ERRMSG("dup2");
|
1874
1985
|
goto fail;
|
1986
|
+
}
|
1875
1987
|
pairs[j].oldfd = -1;
|
1876
1988
|
j = pairs[j].older_index;
|
1877
1989
|
if (j != -1)
|
@@ -1881,20 +1993,24 @@ run_exec_dup2(VALUE ary, VALUE save)
|
|
1881
1993
|
|
1882
1994
|
/* cyclic redirection: O(n) */
|
1883
1995
|
for (i = 0; i < n; i++) {
|
1884
|
-
|
1996
|
+
long j;
|
1885
1997
|
if (pairs[i].oldfd == -1)
|
1886
1998
|
continue;
|
1887
1999
|
if (pairs[i].oldfd == pairs[i].newfd) { /* self cycle */
|
1888
2000
|
#ifdef F_GETFD
|
1889
2001
|
int fd = pairs[i].oldfd;
|
1890
2002
|
ret = fcntl(fd, F_GETFD);
|
1891
|
-
if (ret == -1)
|
2003
|
+
if (ret == -1) {
|
2004
|
+
ERRMSG("fcntl(F_GETFD)");
|
1892
2005
|
goto fail;
|
2006
|
+
}
|
1893
2007
|
if (ret & FD_CLOEXEC) {
|
1894
2008
|
ret &= ~FD_CLOEXEC;
|
1895
2009
|
ret = fcntl(fd, F_SETFD, ret);
|
1896
|
-
if (ret == -1)
|
2010
|
+
if (ret == -1) {
|
2011
|
+
ERRMSG("fcntl(F_SETFD)");
|
1897
2012
|
goto fail;
|
2013
|
+
}
|
1898
2014
|
}
|
1899
2015
|
#endif
|
1900
2016
|
pairs[i].oldfd = -1;
|
@@ -1902,29 +2018,37 @@ run_exec_dup2(VALUE ary, VALUE save)
|
|
1902
2018
|
}
|
1903
2019
|
if (extra_fd == -1) {
|
1904
2020
|
extra_fd = redirect_dup(pairs[i].oldfd);
|
1905
|
-
if (extra_fd == -1)
|
2021
|
+
if (extra_fd == -1) {
|
2022
|
+
ERRMSG("dup");
|
1906
2023
|
goto fail;
|
2024
|
+
}
|
1907
2025
|
}
|
1908
2026
|
else {
|
1909
2027
|
ret = redirect_dup2(pairs[i].oldfd, extra_fd);
|
1910
|
-
if (ret == -1)
|
2028
|
+
if (ret == -1) {
|
2029
|
+
ERRMSG("dup2");
|
1911
2030
|
goto fail;
|
2031
|
+
}
|
1912
2032
|
}
|
1913
2033
|
pairs[i].oldfd = extra_fd;
|
1914
2034
|
j = pairs[i].older_index;
|
1915
2035
|
pairs[i].older_index = -1;
|
1916
2036
|
while (j != -1) {
|
1917
2037
|
ret = redirect_dup2(pairs[j].oldfd, pairs[j].newfd);
|
1918
|
-
if (ret == -1)
|
2038
|
+
if (ret == -1) {
|
2039
|
+
ERRMSG("dup2");
|
1919
2040
|
goto fail;
|
2041
|
+
}
|
1920
2042
|
pairs[j].oldfd = -1;
|
1921
2043
|
j = pairs[j].older_index;
|
1922
2044
|
}
|
1923
2045
|
}
|
1924
2046
|
if (extra_fd != -1) {
|
1925
2047
|
ret = redirect_close(extra_fd);
|
1926
|
-
if (ret == -1)
|
2048
|
+
if (ret == -1) {
|
2049
|
+
ERRMSG("close");
|
1927
2050
|
goto fail;
|
2051
|
+
}
|
1928
2052
|
}
|
1929
2053
|
|
1930
2054
|
xfree(pairs);
|
@@ -1936,7 +2060,7 @@ run_exec_dup2(VALUE ary, VALUE save)
|
|
1936
2060
|
}
|
1937
2061
|
|
1938
2062
|
static int
|
1939
|
-
run_exec_close(VALUE ary)
|
2063
|
+
run_exec_close(VALUE ary, char *errmsg, size_t errmsg_buflen)
|
1940
2064
|
{
|
1941
2065
|
int i, ret;
|
1942
2066
|
|
@@ -1944,14 +2068,16 @@ run_exec_close(VALUE ary)
|
|
1944
2068
|
VALUE elt = RARRAY_PTR(ary)[i];
|
1945
2069
|
int fd = FIX2INT(RARRAY_PTR(elt)[0]);
|
1946
2070
|
ret = redirect_close(fd);
|
1947
|
-
if (ret == -1)
|
2071
|
+
if (ret == -1) {
|
2072
|
+
ERRMSG("close");
|
1948
2073
|
return -1;
|
2074
|
+
}
|
1949
2075
|
}
|
1950
2076
|
return 0;
|
1951
2077
|
}
|
1952
2078
|
|
1953
2079
|
static int
|
1954
|
-
run_exec_open(VALUE ary, VALUE save)
|
2080
|
+
run_exec_open(VALUE ary, VALUE save, char *errmsg, size_t errmsg_buflen)
|
1955
2081
|
{
|
1956
2082
|
int i, ret;
|
1957
2083
|
|
@@ -1964,7 +2090,10 @@ run_exec_open(VALUE ary, VALUE save)
|
|
1964
2090
|
int perm = NUM2INT(RARRAY_PTR(param)[2]);
|
1965
2091
|
int need_close = 1;
|
1966
2092
|
int fd2 = redirect_open(path, flags, perm);
|
1967
|
-
if (fd2 == -1)
|
2093
|
+
if (fd2 == -1) {
|
2094
|
+
ERRMSG("open");
|
2095
|
+
return -1;
|
2096
|
+
}
|
1968
2097
|
while (i < RARRAY_LEN(ary) &&
|
1969
2098
|
(elt = RARRAY_PTR(ary)[i], RARRAY_PTR(elt)[1] == param)) {
|
1970
2099
|
fd = FIX2INT(RARRAY_PTR(elt)[0]);
|
@@ -1972,16 +2101,42 @@ run_exec_open(VALUE ary, VALUE save)
|
|
1972
2101
|
need_close = 0;
|
1973
2102
|
}
|
1974
2103
|
else {
|
1975
|
-
if (save_redirect_fd(fd, save) < 0)
|
2104
|
+
if (save_redirect_fd(fd, save, errmsg, errmsg_buflen) < 0)
|
1976
2105
|
return -1;
|
1977
2106
|
ret = redirect_dup2(fd2, fd);
|
1978
|
-
if (ret == -1)
|
2107
|
+
if (ret == -1) {
|
2108
|
+
ERRMSG("dup2");
|
2109
|
+
return -1;
|
2110
|
+
}
|
1979
2111
|
}
|
1980
2112
|
i++;
|
1981
2113
|
}
|
1982
2114
|
if (need_close) {
|
1983
2115
|
ret = redirect_close(fd2);
|
1984
|
-
if (ret == -1)
|
2116
|
+
if (ret == -1) {
|
2117
|
+
ERRMSG("close");
|
2118
|
+
return -1;
|
2119
|
+
}
|
2120
|
+
}
|
2121
|
+
}
|
2122
|
+
return 0;
|
2123
|
+
}
|
2124
|
+
|
2125
|
+
static int
|
2126
|
+
run_exec_dup2_child(VALUE ary, VALUE save, char *errmsg, size_t errmsg_buflen)
|
2127
|
+
{
|
2128
|
+
int i, ret;
|
2129
|
+
for (i = 0; i < RARRAY_LEN(ary); i++) {
|
2130
|
+
VALUE elt = RARRAY_PTR(ary)[i];
|
2131
|
+
int newfd = FIX2INT(RARRAY_PTR(elt)[0]);
|
2132
|
+
int oldfd = FIX2INT(RARRAY_PTR(elt)[1]);
|
2133
|
+
|
2134
|
+
if (save_redirect_fd(newfd, save, errmsg, errmsg_buflen) < 0)
|
2135
|
+
return -1;
|
2136
|
+
ret = redirect_dup2(oldfd, newfd);
|
2137
|
+
if (ret == -1) {
|
2138
|
+
ERRMSG("dup2");
|
2139
|
+
return -1;
|
1985
2140
|
}
|
1986
2141
|
}
|
1987
2142
|
return 0;
|
@@ -1989,7 +2144,7 @@ run_exec_open(VALUE ary, VALUE save)
|
|
1989
2144
|
|
1990
2145
|
#ifdef HAVE_SETPGID
|
1991
2146
|
static int
|
1992
|
-
run_exec_pgroup(VALUE obj, VALUE save)
|
2147
|
+
run_exec_pgroup(VALUE obj, VALUE save, char *errmsg, size_t errmsg_buflen)
|
1993
2148
|
{
|
1994
2149
|
/*
|
1995
2150
|
* If FD_CLOEXEC is available, rb_fork waits the child's execve.
|
@@ -1997,6 +2152,7 @@ run_exec_pgroup(VALUE obj, VALUE save)
|
|
1997
2152
|
* No race condition, even without setpgid from the parent.
|
1998
2153
|
* (Is there an environment which has setpgid but FD_CLOEXEC?)
|
1999
2154
|
*/
|
2155
|
+
int ret;
|
2000
2156
|
pid_t pgroup;
|
2001
2157
|
if (!NIL_P(save)) {
|
2002
2158
|
/* maybe meaningless with no fork environment... */
|
@@ -2006,13 +2162,15 @@ run_exec_pgroup(VALUE obj, VALUE save)
|
|
2006
2162
|
if (pgroup == 0) {
|
2007
2163
|
pgroup = getpid();
|
2008
2164
|
}
|
2009
|
-
|
2165
|
+
ret = setpgid(getpid(), pgroup);
|
2166
|
+
if (ret == -1) ERRMSG("setpgid");
|
2167
|
+
return ret;
|
2010
2168
|
}
|
2011
2169
|
#endif
|
2012
2170
|
|
2013
2171
|
#ifdef RLIM2NUM
|
2014
2172
|
static int
|
2015
|
-
run_exec_rlimit(VALUE ary, VALUE save)
|
2173
|
+
run_exec_rlimit(VALUE ary, VALUE save, char *errmsg, size_t errmsg_buflen)
|
2016
2174
|
{
|
2017
2175
|
int i;
|
2018
2176
|
for (i = 0; i < RARRAY_LEN(ary); i++) {
|
@@ -2021,8 +2179,10 @@ run_exec_rlimit(VALUE ary, VALUE save)
|
|
2021
2179
|
struct rlimit rlim;
|
2022
2180
|
if (!NIL_P(save)) {
|
2023
2181
|
VALUE tmp, newary;
|
2024
|
-
if (getrlimit(rtype, &rlim) == -1)
|
2182
|
+
if (getrlimit(rtype, &rlim) == -1) {
|
2183
|
+
ERRMSG("getrlimit");
|
2025
2184
|
return -1;
|
2185
|
+
}
|
2026
2186
|
tmp = hide_obj(rb_ary_new3(3, RARRAY_PTR(elt)[0],
|
2027
2187
|
RLIM2NUM(rlim.rlim_cur),
|
2028
2188
|
RLIM2NUM(rlim.rlim_max)));
|
@@ -2035,15 +2195,17 @@ run_exec_rlimit(VALUE ary, VALUE save)
|
|
2035
2195
|
}
|
2036
2196
|
rlim.rlim_cur = NUM2RLIM(RARRAY_PTR(elt)[1]);
|
2037
2197
|
rlim.rlim_max = NUM2RLIM(RARRAY_PTR(elt)[2]);
|
2038
|
-
if (setrlimit(rtype, &rlim) == -1)
|
2198
|
+
if (setrlimit(rtype, &rlim) == -1) {
|
2199
|
+
ERRMSG("setrlimit");
|
2039
2200
|
return -1;
|
2201
|
+
}
|
2040
2202
|
}
|
2041
2203
|
return 0;
|
2042
2204
|
}
|
2043
2205
|
#endif
|
2044
2206
|
|
2045
2207
|
int
|
2046
|
-
|
2208
|
+
rb_run_exec_options_err(const struct rb_exec_arg *e, struct rb_exec_arg *s, char *errmsg, size_t errmsg_buflen)
|
2047
2209
|
{
|
2048
2210
|
VALUE options = e->options;
|
2049
2211
|
VALUE soptions = Qnil;
|
@@ -2063,7 +2225,7 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2063
2225
|
#ifdef HAVE_SETPGID
|
2064
2226
|
obj = rb_ary_entry(options, EXEC_OPTION_PGROUP);
|
2065
2227
|
if (RTEST(obj)) {
|
2066
|
-
if (run_exec_pgroup(obj, soptions) == -1)
|
2228
|
+
if (run_exec_pgroup(obj, soptions, errmsg, errmsg_buflen) == -1)
|
2067
2229
|
return -1;
|
2068
2230
|
}
|
2069
2231
|
#endif
|
@@ -2071,7 +2233,7 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2071
2233
|
#ifdef RLIM2NUM
|
2072
2234
|
obj = rb_ary_entry(options, EXEC_OPTION_RLIMIT);
|
2073
2235
|
if (!NIL_P(obj)) {
|
2074
|
-
if (run_exec_rlimit(obj, soptions) == -1)
|
2236
|
+
if (run_exec_rlimit(obj, soptions, errmsg, errmsg_buflen) == -1)
|
2075
2237
|
return -1;
|
2076
2238
|
}
|
2077
2239
|
#endif
|
@@ -2105,8 +2267,10 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2105
2267
|
hide_obj(rb_str_new2(cwd)));
|
2106
2268
|
xfree(cwd);
|
2107
2269
|
}
|
2108
|
-
if (chdir(RSTRING_PTR(obj)) == -1)
|
2270
|
+
if (chdir(RSTRING_PTR(obj)) == -1) {
|
2271
|
+
ERRMSG("chdir");
|
2109
2272
|
return -1;
|
2273
|
+
}
|
2110
2274
|
}
|
2111
2275
|
|
2112
2276
|
obj = rb_ary_entry(options, EXEC_OPTION_UMASK);
|
@@ -2119,7 +2283,7 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2119
2283
|
|
2120
2284
|
obj = rb_ary_entry(options, EXEC_OPTION_DUP2);
|
2121
2285
|
if (!NIL_P(obj)) {
|
2122
|
-
if (run_exec_dup2(obj, soptions) == -1)
|
2286
|
+
if (run_exec_dup2(obj, soptions, errmsg, errmsg_buflen) == -1)
|
2123
2287
|
return -1;
|
2124
2288
|
}
|
2125
2289
|
|
@@ -2128,7 +2292,7 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2128
2292
|
if (!NIL_P(soptions))
|
2129
2293
|
rb_warn("cannot close fd before spawn");
|
2130
2294
|
else {
|
2131
|
-
if (run_exec_close(obj) == -1)
|
2295
|
+
if (run_exec_close(obj, errmsg, errmsg_buflen) == -1)
|
2132
2296
|
return -1;
|
2133
2297
|
}
|
2134
2298
|
}
|
@@ -2136,13 +2300,19 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2136
2300
|
#ifdef HAVE_FORK
|
2137
2301
|
obj = rb_ary_entry(options, EXEC_OPTION_CLOSE_OTHERS);
|
2138
2302
|
if (obj != Qfalse) {
|
2139
|
-
rb_close_before_exec(3,
|
2303
|
+
rb_close_before_exec(3, FIX2INT(obj), e->redirect_fds);
|
2140
2304
|
}
|
2141
2305
|
#endif
|
2142
2306
|
|
2143
2307
|
obj = rb_ary_entry(options, EXEC_OPTION_OPEN);
|
2144
2308
|
if (!NIL_P(obj)) {
|
2145
|
-
if (run_exec_open(obj, soptions) == -1)
|
2309
|
+
if (run_exec_open(obj, soptions, errmsg, errmsg_buflen) == -1)
|
2310
|
+
return -1;
|
2311
|
+
}
|
2312
|
+
|
2313
|
+
obj = rb_ary_entry(options, EXEC_OPTION_DUP2_CHILD);
|
2314
|
+
if (!NIL_P(obj)) {
|
2315
|
+
if (run_exec_dup2_child(obj, soptions, errmsg, errmsg_buflen) == -1)
|
2146
2316
|
return -1;
|
2147
2317
|
}
|
2148
2318
|
|
@@ -2150,13 +2320,19 @@ rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
|
2150
2320
|
}
|
2151
2321
|
|
2152
2322
|
int
|
2153
|
-
|
2323
|
+
rb_run_exec_options(const struct rb_exec_arg *e, struct rb_exec_arg *s)
|
2324
|
+
{
|
2325
|
+
return rb_run_exec_options_err(e, s, NULL, 0);
|
2326
|
+
}
|
2327
|
+
|
2328
|
+
int
|
2329
|
+
rb_exec_err(const struct rb_exec_arg *e, char *errmsg, size_t errmsg_buflen)
|
2154
2330
|
{
|
2155
2331
|
int argc = e->argc;
|
2156
2332
|
VALUE *argv = e->argv;
|
2157
2333
|
const char *prog = e->prog;
|
2158
2334
|
|
2159
|
-
if (
|
2335
|
+
if (rb_run_exec_options_err(e, NULL, errmsg, errmsg_buflen) < 0) {
|
2160
2336
|
return -1;
|
2161
2337
|
}
|
2162
2338
|
|
@@ -2166,21 +2342,36 @@ rb_exec(const struct rb_exec_arg *e)
|
|
2166
2342
|
else {
|
2167
2343
|
rb_proc_exec_n(argc, argv, prog);
|
2168
2344
|
}
|
2169
|
-
#ifndef FD_CLOEXEC
|
2170
|
-
preserving_errno({
|
2171
|
-
fprintf(stderr, "%s:%d: command not found: %s\n",
|
2172
|
-
rb_sourcefile(), rb_sourceline(), prog);
|
2173
|
-
});
|
2174
|
-
#endif
|
2175
2345
|
return -1;
|
2176
2346
|
}
|
2177
2347
|
|
2348
|
+
int
|
2349
|
+
rb_exec(const struct rb_exec_arg *e)
|
2350
|
+
{
|
2351
|
+
#if !defined FD_CLOEXEC && !defined HAVE_SPAWNV
|
2352
|
+
char errmsg[80] = { '\0' };
|
2353
|
+
int ret = rb_exec_err(e, errmsg, sizeof(errmsg));
|
2354
|
+
preserving_errno(
|
2355
|
+
if (errmsg[0]) {
|
2356
|
+
fprintf(stderr, "%s\n", errmsg);
|
2357
|
+
}
|
2358
|
+
else {
|
2359
|
+
fprintf(stderr, "%s:%d: command not found: %s\n",
|
2360
|
+
rb_sourcefile(), rb_sourceline(), e->prog);
|
2361
|
+
}
|
2362
|
+
);
|
2363
|
+
return ret;
|
2364
|
+
#else
|
2365
|
+
return rb_exec_err(e, NULL, 0);
|
2366
|
+
#endif
|
2367
|
+
}
|
2368
|
+
|
2178
2369
|
#ifdef HAVE_FORK
|
2179
2370
|
static int
|
2180
|
-
rb_exec_atfork(void* arg)
|
2371
|
+
rb_exec_atfork(void* arg, char *errmsg, size_t errmsg_buflen)
|
2181
2372
|
{
|
2182
2373
|
rb_thread_atfork_before_exec();
|
2183
|
-
return
|
2374
|
+
return rb_exec_err(arg, errmsg, errmsg_buflen);
|
2184
2375
|
}
|
2185
2376
|
#endif
|
2186
2377
|
|
@@ -2263,7 +2454,8 @@ pipe_nocrash(int filedes[2], VALUE fds)
|
|
2263
2454
|
* +chfunc+ must not raise any exceptions.
|
2264
2455
|
*/
|
2265
2456
|
rb_pid_t
|
2266
|
-
|
2457
|
+
rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALUE fds,
|
2458
|
+
char *errmsg, size_t errmsg_buflen)
|
2267
2459
|
{
|
2268
2460
|
rb_pid_t pid;
|
2269
2461
|
int err, state = 0;
|
@@ -2318,10 +2510,14 @@ rb_fork(int *status, int (*chfunc)(void*), void *charg, VALUE fds)
|
|
2318
2510
|
#ifdef FD_CLOEXEC
|
2319
2511
|
close(ep[0]);
|
2320
2512
|
#endif
|
2321
|
-
if (!(*chfunc)(charg)) _exit(EXIT_SUCCESS);
|
2513
|
+
if (!(*chfunc)(charg, errmsg, errmsg_buflen)) _exit(EXIT_SUCCESS);
|
2322
2514
|
#ifdef FD_CLOEXEC
|
2323
2515
|
err = errno;
|
2324
|
-
write(ep[1], &err, sizeof(err));
|
2516
|
+
(void)write(ep[1], &err, sizeof(err));
|
2517
|
+
if (errmsg && 0 < errmsg_buflen) {
|
2518
|
+
errmsg[errmsg_buflen-1] = '\0';
|
2519
|
+
(void)write(ep[1], errmsg, strlen(errmsg));
|
2520
|
+
}
|
2325
2521
|
#endif
|
2326
2522
|
#if EXIT_SUCCESS == 127
|
2327
2523
|
_exit(EXIT_FAILURE);
|
@@ -2333,12 +2529,21 @@ rb_fork(int *status, int (*chfunc)(void*), void *charg, VALUE fds)
|
|
2333
2529
|
after_fork();
|
2334
2530
|
#ifdef FD_CLOEXEC
|
2335
2531
|
if (pid && chfunc) {
|
2532
|
+
ssize_t size;
|
2336
2533
|
close(ep[1]);
|
2337
|
-
if ((
|
2534
|
+
if ((size = read(ep[0], &err, sizeof(err))) < 0) {
|
2338
2535
|
err = errno;
|
2339
2536
|
}
|
2537
|
+
if (size == sizeof(err) &&
|
2538
|
+
errmsg && 0 < errmsg_buflen) {
|
2539
|
+
ssize_t ret;
|
2540
|
+
ret = read(ep[0], errmsg, errmsg_buflen-1);
|
2541
|
+
if (0 <= ret) {
|
2542
|
+
errmsg[ret] = '\0';
|
2543
|
+
}
|
2544
|
+
}
|
2340
2545
|
close(ep[0]);
|
2341
|
-
if (
|
2546
|
+
if (size) {
|
2342
2547
|
if (status) {
|
2343
2548
|
rb_protect(proc_syswait, (VALUE)pid, status);
|
2344
2549
|
}
|
@@ -2352,12 +2557,41 @@ rb_fork(int *status, int (*chfunc)(void*), void *charg, VALUE fds)
|
|
2352
2557
|
#endif
|
2353
2558
|
return pid;
|
2354
2559
|
}
|
2560
|
+
|
2561
|
+
struct chfunc_wrapper_t {
|
2562
|
+
int (*chfunc)(void*);
|
2563
|
+
void *arg;
|
2564
|
+
};
|
2565
|
+
|
2566
|
+
static int
|
2567
|
+
chfunc_wrapper(void *arg_, char *errmsg, size_t errmsg_buflen)
|
2568
|
+
{
|
2569
|
+
struct chfunc_wrapper_t *arg = arg_;
|
2570
|
+
return arg->chfunc(arg->arg);
|
2571
|
+
}
|
2572
|
+
|
2573
|
+
rb_pid_t
|
2574
|
+
rb_fork(int *status, int (*chfunc)(void*), void *charg, VALUE fds)
|
2575
|
+
{
|
2576
|
+
if (chfunc) {
|
2577
|
+
struct chfunc_wrapper_t warg;
|
2578
|
+
warg.chfunc = chfunc;
|
2579
|
+
warg.arg = charg;
|
2580
|
+
return rb_fork_err(status, chfunc_wrapper, &warg, fds, NULL, 0);
|
2581
|
+
}
|
2582
|
+
else {
|
2583
|
+
return rb_fork_err(status, NULL, NULL, fds, NULL, 0);
|
2584
|
+
}
|
2585
|
+
|
2586
|
+
}
|
2587
|
+
|
2355
2588
|
#endif
|
2356
2589
|
|
2590
|
+
#if defined(HAVE_FORK) && !defined(CANNOT_FORK_WITH_PTHREAD)
|
2357
2591
|
/*
|
2358
2592
|
* call-seq:
|
2359
|
-
* Kernel.fork [{ block }]
|
2360
|
-
* Process.fork [{ block }]
|
2593
|
+
* Kernel.fork [{ block }] -> fixnum or nil
|
2594
|
+
* Process.fork [{ block }] -> fixnum or nil
|
2361
2595
|
*
|
2362
2596
|
* Creates a subprocess. If a block is specified, that block is run
|
2363
2597
|
* in the subprocess, and the subprocess terminates with a status of
|
@@ -2373,21 +2607,19 @@ rb_fork(int *status, int (*chfunc)(void*), void *charg, VALUE fds)
|
|
2373
2607
|
*
|
2374
2608
|
* The thread calling fork is the only thread in the created child process.
|
2375
2609
|
* fork doesn't copy other threads.
|
2610
|
+
*
|
2611
|
+
* If fork is not usable, Process.respond_to?(:fork) returns false.
|
2376
2612
|
*/
|
2377
2613
|
|
2378
2614
|
static VALUE
|
2379
2615
|
rb_f_fork(VALUE obj)
|
2380
2616
|
{
|
2381
|
-
#if defined(HAVE_FORK) && !defined(CANNOT_FORK_WITH_PTHREAD)
|
2382
2617
|
rb_pid_t pid;
|
2383
2618
|
|
2384
2619
|
rb_secure(2);
|
2385
2620
|
|
2386
2621
|
switch (pid = rb_fork(0, 0, 0, Qnil)) {
|
2387
2622
|
case 0:
|
2388
|
-
#ifdef linux
|
2389
|
-
after_exec();
|
2390
|
-
#endif
|
2391
2623
|
rb_thread_atfork();
|
2392
2624
|
if (rb_block_given_p()) {
|
2393
2625
|
int status;
|
@@ -2404,21 +2636,20 @@ rb_f_fork(VALUE obj)
|
|
2404
2636
|
default:
|
2405
2637
|
return PIDT2NUM(pid);
|
2406
2638
|
}
|
2639
|
+
}
|
2407
2640
|
#else
|
2408
|
-
|
2641
|
+
#define rb_f_fork rb_f_notimplement
|
2409
2642
|
#endif
|
2410
|
-
}
|
2411
|
-
|
2412
2643
|
|
2413
2644
|
/*
|
2414
2645
|
* call-seq:
|
2415
|
-
* Process.exit!(
|
2646
|
+
* Process.exit!(status=false)
|
2416
2647
|
*
|
2417
2648
|
* Exits the process immediately. No exit handlers are
|
2418
|
-
* run. <em>
|
2649
|
+
* run. <em>status</em> is returned to the underlying system as the
|
2419
2650
|
* exit status.
|
2420
2651
|
*
|
2421
|
-
* Process.exit!(
|
2652
|
+
* Process.exit!(true)
|
2422
2653
|
*/
|
2423
2654
|
|
2424
2655
|
static VALUE
|
@@ -2466,15 +2697,18 @@ rb_exit(int status)
|
|
2466
2697
|
|
2467
2698
|
/*
|
2468
2699
|
* call-seq:
|
2469
|
-
* exit(
|
2470
|
-
* Kernel::exit(
|
2471
|
-
* Process::exit(
|
2472
|
-
*
|
2700
|
+
* exit(status=true)
|
2701
|
+
* Kernel::exit(status=true)
|
2702
|
+
* Process::exit(status=true)
|
2703
|
+
*
|
2473
2704
|
* Initiates the termination of the Ruby script by raising the
|
2474
2705
|
* <code>SystemExit</code> exception. This exception may be caught. The
|
2475
2706
|
* optional parameter is used to return a status code to the invoking
|
2476
2707
|
* environment.
|
2477
|
-
*
|
2708
|
+
* +true+ and +FALSE+ of _status_ means success and failure
|
2709
|
+
* respectively. The interpretation of other integer values are
|
2710
|
+
* system dependent.
|
2711
|
+
*
|
2478
2712
|
* begin
|
2479
2713
|
* exit
|
2480
2714
|
* puts "never get here"
|
@@ -2482,22 +2716,22 @@ rb_exit(int status)
|
|
2482
2716
|
* puts "rescued a SystemExit exception"
|
2483
2717
|
* end
|
2484
2718
|
* puts "after begin block"
|
2485
|
-
*
|
2719
|
+
*
|
2486
2720
|
* <em>produces:</em>
|
2487
|
-
*
|
2721
|
+
*
|
2488
2722
|
* rescued a SystemExit exception
|
2489
2723
|
* after begin block
|
2490
|
-
*
|
2724
|
+
*
|
2491
2725
|
* Just prior to termination, Ruby executes any <code>at_exit</code> functions
|
2492
2726
|
* (see Kernel::at_exit) and runs any object finalizers (see
|
2493
2727
|
* ObjectSpace::define_finalizer).
|
2494
|
-
*
|
2728
|
+
*
|
2495
2729
|
* at_exit { puts "at_exit function" }
|
2496
2730
|
* ObjectSpace.define_finalizer("string", proc { puts "in finalizer" })
|
2497
2731
|
* exit
|
2498
|
-
*
|
2732
|
+
*
|
2499
2733
|
* <em>produces:</em>
|
2500
|
-
*
|
2734
|
+
*
|
2501
2735
|
* at_exit function
|
2502
2736
|
* in finalizer
|
2503
2737
|
*/
|
@@ -2537,11 +2771,11 @@ rb_f_exit(int argc, VALUE *argv)
|
|
2537
2771
|
/*
|
2538
2772
|
* call-seq:
|
2539
2773
|
* abort
|
2540
|
-
* Kernel::abort
|
2541
|
-
* Process::abort
|
2542
|
-
*
|
2774
|
+
* Kernel::abort([msg])
|
2775
|
+
* Process::abort([msg])
|
2776
|
+
*
|
2543
2777
|
* Terminate execution immediately, effectively by calling
|
2544
|
-
* <code>Kernel.exit(
|
2778
|
+
* <code>Kernel.exit(false)</code>. If _msg_ is given, it is written
|
2545
2779
|
* to STDERR prior to terminating.
|
2546
2780
|
*/
|
2547
2781
|
|
@@ -2586,7 +2820,7 @@ rb_syswait(rb_pid_t pid)
|
|
2586
2820
|
#endif
|
2587
2821
|
RETSIGTYPE (*ifunc)(int) = 0;
|
2588
2822
|
int status;
|
2589
|
-
int i, hooked =
|
2823
|
+
int i, hooked = FALSE;
|
2590
2824
|
|
2591
2825
|
if (!overriding) {
|
2592
2826
|
#ifdef SIGHUP
|
@@ -2596,8 +2830,8 @@ rb_syswait(rb_pid_t pid)
|
|
2596
2830
|
qfunc = signal(SIGQUIT, SIG_IGN);
|
2597
2831
|
#endif
|
2598
2832
|
ifunc = signal(SIGINT, SIG_IGN);
|
2599
|
-
overriding =
|
2600
|
-
hooked =
|
2833
|
+
overriding = TRUE;
|
2834
|
+
hooked = TRUE;
|
2601
2835
|
}
|
2602
2836
|
|
2603
2837
|
do {
|
@@ -2612,47 +2846,54 @@ rb_syswait(rb_pid_t pid)
|
|
2612
2846
|
signal(SIGQUIT, qfunc);
|
2613
2847
|
#endif
|
2614
2848
|
signal(SIGINT, ifunc);
|
2615
|
-
overriding =
|
2849
|
+
overriding = FALSE;
|
2616
2850
|
}
|
2617
2851
|
}
|
2618
2852
|
|
2853
|
+
static VALUE
|
2854
|
+
rb_exec_arg_prepare(struct rb_exec_arg *earg, int argc, VALUE *argv, int default_close_others)
|
2855
|
+
{
|
2856
|
+
VALUE prog = rb_exec_arg_init(argc, argv, TRUE, earg);
|
2857
|
+
if (NIL_P(rb_ary_entry(earg->options, EXEC_OPTION_CLOSE_OTHERS))) {
|
2858
|
+
VALUE v = default_close_others ? Qtrue : Qfalse;
|
2859
|
+
rb_exec_arg_addopt(earg, ID2SYM(rb_intern("close_others")), v);
|
2860
|
+
}
|
2861
|
+
rb_exec_arg_fixup(earg);
|
2862
|
+
return prog;
|
2863
|
+
}
|
2864
|
+
|
2619
2865
|
static rb_pid_t
|
2620
|
-
|
2866
|
+
rb_spawn_process(struct rb_exec_arg *earg, VALUE prog, char *errmsg, size_t errmsg_buflen)
|
2621
2867
|
{
|
2622
|
-
rb_pid_t
|
2623
|
-
|
2624
|
-
|
2868
|
+
rb_pid_t pid;
|
2869
|
+
#if defined HAVE_FORK || !defined HAVE_SPAWNV
|
2870
|
+
int status;
|
2871
|
+
#endif
|
2625
2872
|
#if !defined HAVE_FORK
|
2626
2873
|
struct rb_exec_arg sarg;
|
2874
|
+
int argc;
|
2875
|
+
VALUE *argv;
|
2627
2876
|
#endif
|
2628
2877
|
|
2629
|
-
prog = rb_exec_arg_init(argc, argv, Qtrue, &earg);
|
2630
|
-
if (NIL_P(rb_ary_entry(earg.options, EXEC_OPTION_CLOSE_OTHERS))) {
|
2631
|
-
VALUE v = default_close_others ? Qtrue : Qfalse;
|
2632
|
-
rb_exec_arg_addopt(&earg, ID2SYM(rb_intern("close_others")), v);
|
2633
|
-
}
|
2634
|
-
rb_exec_arg_fixup(&earg);
|
2635
|
-
|
2636
2878
|
#if defined HAVE_FORK
|
2637
|
-
|
2638
|
-
if (prog && earg.argc) earg.argv[0] = prog;
|
2879
|
+
pid = rb_fork_err(&status, rb_exec_atfork, earg, earg->redirect_fds, errmsg, errmsg_buflen);
|
2639
2880
|
#else
|
2640
|
-
if (
|
2881
|
+
if (rb_run_exec_options_err(earg, &sarg, errmsg, errmsg_buflen) < 0) {
|
2641
2882
|
return -1;
|
2642
2883
|
}
|
2643
2884
|
|
2644
|
-
argc = earg
|
2645
|
-
argv = earg
|
2885
|
+
argc = earg->argc;
|
2886
|
+
argv = earg->argv;
|
2646
2887
|
if (prog && argc) argv[0] = prog;
|
2647
2888
|
# if defined HAVE_SPAWNV
|
2648
2889
|
if (!argc) {
|
2649
|
-
|
2890
|
+
pid = proc_spawn(RSTRING_PTR(prog));
|
2650
2891
|
}
|
2651
2892
|
else {
|
2652
|
-
|
2893
|
+
pid = proc_spawn_n(argc, argv, prog);
|
2653
2894
|
}
|
2654
2895
|
# if defined(_WIN32)
|
2655
|
-
if (
|
2896
|
+
if (pid == -1)
|
2656
2897
|
rb_last_status_set(0x7f << 8, 0);
|
2657
2898
|
# endif
|
2658
2899
|
# else
|
@@ -2661,30 +2902,53 @@ rb_spawn_internal(int argc, VALUE *argv, int default_close_others)
|
|
2661
2902
|
rb_last_status_set((status & 0xff) << 8, 0);
|
2662
2903
|
# endif
|
2663
2904
|
|
2664
|
-
|
2905
|
+
rb_run_exec_options_err(&sarg, NULL, errmsg, errmsg_buflen);
|
2665
2906
|
#endif
|
2666
|
-
return
|
2907
|
+
return pid;
|
2908
|
+
}
|
2909
|
+
|
2910
|
+
static rb_pid_t
|
2911
|
+
rb_spawn_internal(int argc, VALUE *argv, int default_close_others,
|
2912
|
+
char *errmsg, size_t errmsg_buflen)
|
2913
|
+
{
|
2914
|
+
struct rb_exec_arg earg;
|
2915
|
+
VALUE prog = rb_exec_arg_prepare(&earg, argc, argv, default_close_others);
|
2916
|
+
return rb_spawn_process(&earg, prog, errmsg, errmsg_buflen);
|
2917
|
+
}
|
2918
|
+
|
2919
|
+
rb_pid_t
|
2920
|
+
rb_spawn_err(int argc, VALUE *argv, char *errmsg, size_t errmsg_buflen)
|
2921
|
+
{
|
2922
|
+
return rb_spawn_internal(argc, argv, TRUE, errmsg, errmsg_buflen);
|
2667
2923
|
}
|
2668
2924
|
|
2669
2925
|
rb_pid_t
|
2670
2926
|
rb_spawn(int argc, VALUE *argv)
|
2671
2927
|
{
|
2672
|
-
return rb_spawn_internal(argc, argv,
|
2928
|
+
return rb_spawn_internal(argc, argv, TRUE, NULL, 0);
|
2673
2929
|
}
|
2674
2930
|
|
2675
2931
|
/*
|
2676
2932
|
* call-seq:
|
2677
|
-
* system([env,]
|
2933
|
+
* system([env,] command... [,options]) -> true, false or nil
|
2678
2934
|
*
|
2679
|
-
* Executes
|
2680
|
-
*
|
2681
|
-
*
|
2682
|
-
*
|
2683
|
-
*
|
2935
|
+
* Executes _command..._ in a subshell.
|
2936
|
+
* _command..._ is one of following forms.
|
2937
|
+
*
|
2938
|
+
* commandline : command line string which is passed to the standard shell
|
2939
|
+
* cmdname, arg1, ... : command name and one or more arguments (no shell)
|
2940
|
+
* [cmdname, argv0], arg1, ... : command name, argv[0] and zero or more arguments (no shell)
|
2941
|
+
*
|
2942
|
+
* system returns +true+ if the command gives zero exit status,
|
2943
|
+
* +false+ for non zero exit status.
|
2944
|
+
* Returns +nil+ if command execution fails.
|
2945
|
+
* An error status is available in <code>$?</code>.
|
2946
|
+
* The arguments are processed in the same way as
|
2947
|
+
* for <code>Kernel.spawn</code>.
|
2684
2948
|
*
|
2685
2949
|
* The hash arguments, env and options, are same as
|
2686
2950
|
* <code>exec</code> and <code>spawn</code>.
|
2687
|
-
* See <code>spawn</code> for details.
|
2951
|
+
* See <code>Kernel.spawn</code> for details.
|
2688
2952
|
*
|
2689
2953
|
* system("echo *")
|
2690
2954
|
* system("echo", "*")
|
@@ -2693,11 +2957,14 @@ rb_spawn(int argc, VALUE *argv)
|
|
2693
2957
|
*
|
2694
2958
|
* config.h main.rb
|
2695
2959
|
* *
|
2960
|
+
*
|
2961
|
+
* See <code>Kernel.exec</code> for the standard shell.
|
2696
2962
|
*/
|
2697
2963
|
|
2698
2964
|
static VALUE
|
2699
2965
|
rb_f_system(int argc, VALUE *argv)
|
2700
2966
|
{
|
2967
|
+
rb_pid_t pid;
|
2701
2968
|
int status;
|
2702
2969
|
|
2703
2970
|
#if defined(SIGCLD) && !defined(SIGCHLD)
|
@@ -2709,16 +2976,16 @@ rb_f_system(int argc, VALUE *argv)
|
|
2709
2976
|
|
2710
2977
|
chfunc = signal(SIGCHLD, SIG_DFL);
|
2711
2978
|
#endif
|
2712
|
-
|
2979
|
+
pid = rb_spawn_internal(argc, argv, FALSE, NULL, 0);
|
2713
2980
|
#if defined(HAVE_FORK) || defined(HAVE_SPAWNV)
|
2714
|
-
if (
|
2715
|
-
rb_syswait(
|
2981
|
+
if (pid > 0) {
|
2982
|
+
rb_syswait(pid);
|
2716
2983
|
}
|
2717
2984
|
#endif
|
2718
2985
|
#ifdef SIGCHLD
|
2719
2986
|
signal(SIGCHLD, chfunc);
|
2720
2987
|
#endif
|
2721
|
-
if (
|
2988
|
+
if (pid < 0) {
|
2722
2989
|
return Qnil;
|
2723
2990
|
}
|
2724
2991
|
status = PST2INT(rb_last_status_get());
|
@@ -2728,10 +2995,64 @@ rb_f_system(int argc, VALUE *argv)
|
|
2728
2995
|
|
2729
2996
|
/*
|
2730
2997
|
* call-seq:
|
2731
|
-
* spawn([env,]
|
2732
|
-
*
|
2733
|
-
*
|
2734
|
-
*
|
2998
|
+
* spawn([env,] command... [,options]) -> pid
|
2999
|
+
* Process.spawn([env,] command... [,options]) -> pid
|
3000
|
+
*
|
3001
|
+
* spawn executes specified command and return its pid.
|
3002
|
+
*
|
3003
|
+
* This method doesn't wait for end of the command.
|
3004
|
+
* The parent process should
|
3005
|
+
* use <code>Process.wait</code> to collect
|
3006
|
+
* the termination status of its child or
|
3007
|
+
* use <code>Process.detach</code> to register
|
3008
|
+
* disinterest in their status;
|
3009
|
+
* otherwise, the operating system may accumulate zombie processes.
|
3010
|
+
*
|
3011
|
+
* spawn has bunch of options to specify process attributes:
|
3012
|
+
*
|
3013
|
+
* env: hash
|
3014
|
+
* name => val : set the environment variable
|
3015
|
+
* name => nil : unset the environment variable
|
3016
|
+
* command...:
|
3017
|
+
* commandline : command line string which is passed to the standard shell
|
3018
|
+
* cmdname, arg1, ... : command name and one or more arguments (no shell)
|
3019
|
+
* [cmdname, argv0], arg1, ... : command name, argv[0] and zero or more arguments (no shell)
|
3020
|
+
* options: hash
|
3021
|
+
* clearing environment variables:
|
3022
|
+
* :unsetenv_others => true : clear environment variables except specified by env
|
3023
|
+
* :unsetenv_others => false : don't clear (default)
|
3024
|
+
* process group:
|
3025
|
+
* :pgroup => true or 0 : make a new process group
|
3026
|
+
* :pgroup => pgid : join to specified process group
|
3027
|
+
* :pgroup => nil : don't change the process group (default)
|
3028
|
+
* resource limit: resourcename is core, cpu, data, etc. See Process.setrlimit.
|
3029
|
+
* :rlimit_resourcename => limit
|
3030
|
+
* :rlimit_resourcename => [cur_limit, max_limit]
|
3031
|
+
* current directory:
|
3032
|
+
* :chdir => str
|
3033
|
+
* umask:
|
3034
|
+
* :umask => int
|
3035
|
+
* redirection:
|
3036
|
+
* key:
|
3037
|
+
* FD : single file descriptor in child process
|
3038
|
+
* [FD, FD, ...] : multiple file descriptor in child process
|
3039
|
+
* value:
|
3040
|
+
* FD : redirect to the file descriptor in parent process
|
3041
|
+
* string : redirect to file with open(string, "r" or "w")
|
3042
|
+
* [string] : redirect to file with open(string, File::RDONLY)
|
3043
|
+
* [string, open_mode] : redirect to file with open(string, open_mode, 0644)
|
3044
|
+
* [string, open_mode, perm] : redirect to file with open(string, open_mode, perm)
|
3045
|
+
* [:child, FD] : redirect to the redirected file descriptor
|
3046
|
+
* :close : close the file descriptor in child process
|
3047
|
+
* FD is one of follows
|
3048
|
+
* :in : the file descriptor 0 which is the standard input
|
3049
|
+
* :out : the file descriptor 1 which is the standard output
|
3050
|
+
* :err : the file descriptor 2 which is the standard error
|
3051
|
+
* integer : the file descriptor of specified the integer
|
3052
|
+
* io : the file descriptor specified as io.fileno
|
3053
|
+
* file descriptor inheritance: close non-redirected non-standard fds (3, 4, 5, ...) or not
|
3054
|
+
* :close_others => false : inherit fds (default for system and exec)
|
3055
|
+
* :close_others => true : don't inherit (default for spawn and IO.popen)
|
2735
3056
|
*
|
2736
3057
|
* If a hash is given as +env+, the environment is
|
2737
3058
|
* updated by +env+ before <code>exec(2)</code> in the child process.
|
@@ -2743,7 +3064,7 @@ rb_f_system(int argc, VALUE *argv)
|
|
2743
3064
|
* If a hash is given as +options+,
|
2744
3065
|
* it specifies
|
2745
3066
|
* process group,
|
2746
|
-
* resource limit,
|
3067
|
+
* resource limit,
|
2747
3068
|
* current directory,
|
2748
3069
|
* umask and
|
2749
3070
|
* redirects for the child process.
|
@@ -2757,22 +3078,23 @@ rb_f_system(int argc, VALUE *argv)
|
|
2757
3078
|
*
|
2758
3079
|
* The <code>:pgroup</code> key in +options+ specifies a process group.
|
2759
3080
|
* The corresponding value should be true, zero or positive integer.
|
2760
|
-
* true and zero means the process should be a process leader
|
3081
|
+
* true and zero means the process should be a process leader of a new
|
3082
|
+
* process group.
|
2761
3083
|
* Other values specifies a process group to be belongs.
|
2762
3084
|
*
|
2763
3085
|
* pid = spawn(command, :pgroup=>true) # process leader
|
2764
3086
|
* pid = spawn(command, :pgroup=>10) # belongs to the process group 10
|
2765
3087
|
*
|
2766
3088
|
* The <code>:rlimit_</code><em>foo</em> key specifies a resource limit.
|
2767
|
-
* <em>foo</em> should be one of resource types such as <code>core</code
|
3089
|
+
* <em>foo</em> should be one of resource types such as <code>core</code>.
|
2768
3090
|
* The corresponding value should be an integer or an array which have one or
|
2769
3091
|
* two integers: same as cur_limit and max_limit arguments for
|
2770
3092
|
* Process.setrlimit.
|
2771
3093
|
*
|
2772
|
-
* pid = spawn(command, :rlimit_core=>0) # never dump core.
|
2773
3094
|
* cur, max = Process.getrlimit(:CORE)
|
2774
3095
|
* pid = spawn(command, :rlimit_core=>[0,max]) # disable core temporary.
|
2775
3096
|
* pid = spawn(command, :rlimit_core=>max) # enable core dump
|
3097
|
+
* pid = spawn(command, :rlimit_core=>0) # never dump core.
|
2776
3098
|
*
|
2777
3099
|
* The <code>:chdir</code> key in +options+ specifies the current directory.
|
2778
3100
|
*
|
@@ -2782,59 +3104,80 @@ rb_f_system(int argc, VALUE *argv)
|
|
2782
3104
|
*
|
2783
3105
|
* pid = spawn(command, :umask=>077)
|
2784
3106
|
*
|
2785
|
-
* The :in, :out, :err, a fixnum, an IO and an array key specifies a
|
3107
|
+
* The :in, :out, :err, a fixnum, an IO and an array key specifies a redirection.
|
2786
3108
|
* The redirection maps a file descriptor in the child process.
|
2787
3109
|
*
|
2788
|
-
* For example, stderr can be merged into stdout:
|
3110
|
+
* For example, stderr can be merged into stdout as follows:
|
2789
3111
|
*
|
2790
3112
|
* pid = spawn(command, :err=>:out)
|
2791
|
-
* pid = spawn(command, STDERR=>STDOUT)
|
2792
3113
|
* pid = spawn(command, 2=>1)
|
3114
|
+
* pid = spawn(command, STDERR=>:out)
|
3115
|
+
* pid = spawn(command, STDERR=>STDOUT)
|
2793
3116
|
*
|
2794
3117
|
* The hash keys specifies a file descriptor
|
2795
3118
|
* in the child process started by <code>spawn</code>.
|
2796
|
-
* :err,
|
3119
|
+
* :err, 2 and STDERR specifies the standard error stream (stderr).
|
2797
3120
|
*
|
2798
3121
|
* The hash values specifies a file descriptor
|
2799
3122
|
* in the parent process which invokes <code>spawn</code>.
|
2800
|
-
* :out,
|
3123
|
+
* :out, 1 and STDOUT specifies the standard output stream (stdout).
|
2801
3124
|
*
|
2802
|
-
*
|
3125
|
+
* In the above example,
|
3126
|
+
* the standard output in the child process is not specified.
|
2803
3127
|
* So it is inherited from the parent process.
|
2804
3128
|
*
|
2805
|
-
* The standard input stream can be
|
2806
|
-
*
|
3129
|
+
* The standard input stream (stdin) can be specified by :in, 0 and STDIN.
|
3130
|
+
*
|
2807
3131
|
* A filename can be specified as a hash value.
|
2808
3132
|
*
|
2809
|
-
* pid = spawn(command,
|
2810
|
-
* pid = spawn(command,
|
2811
|
-
* pid = spawn(command,
|
3133
|
+
* pid = spawn(command, :in=>"/dev/null") # read mode
|
3134
|
+
* pid = spawn(command, :out=>"/dev/null") # write mode
|
3135
|
+
* pid = spawn(command, :err=>"log") # write mode
|
2812
3136
|
* pid = spawn(command, 3=>"/dev/null") # read mode
|
2813
3137
|
*
|
2814
|
-
* For
|
3138
|
+
* For stdout and stderr,
|
2815
3139
|
* it is opened in write mode.
|
2816
3140
|
* Otherwise read mode is used.
|
2817
3141
|
*
|
2818
3142
|
* For specifying flags and permission of file creation explicitly,
|
2819
3143
|
* an array is used instead.
|
2820
3144
|
*
|
2821
|
-
* pid = spawn(command,
|
2822
|
-
* pid = spawn(command,
|
2823
|
-
* pid = spawn(command,
|
2824
|
-
* pid = spawn(command,
|
2825
|
-
* pid = spawn(command,
|
3145
|
+
* pid = spawn(command, :in=>["file"]) # read mode is assumed
|
3146
|
+
* pid = spawn(command, :in=>["file", "r"])
|
3147
|
+
* pid = spawn(command, :out=>["log", "w"]) # 0644 assumed
|
3148
|
+
* pid = spawn(command, :out=>["log", "w", 0600])
|
3149
|
+
* pid = spawn(command, :out=>["log", File::WRONLY|File::EXCL|File::CREAT, 0600])
|
2826
3150
|
*
|
2827
3151
|
* The array specifies a filename, flags and permission.
|
2828
3152
|
* The flags can be a string or an integer.
|
2829
|
-
* If the flags is
|
3153
|
+
* If the flags is omitted or nil, File::RDONLY is assumed.
|
2830
3154
|
* The permission should be an integer.
|
2831
|
-
* If the permission is
|
3155
|
+
* If the permission is omitted or nil, 0644 is assumed.
|
2832
3156
|
*
|
2833
3157
|
* If an array of IOs and integers are specified as a hash key,
|
2834
|
-
* all the
|
3158
|
+
* all the elements are redirected.
|
3159
|
+
*
|
3160
|
+
* # stdout and stderr is redirected to log file.
|
3161
|
+
* # The file "log" is opened just once.
|
3162
|
+
* pid = spawn(command, [:out, :err]=>["log", "w"])
|
3163
|
+
*
|
3164
|
+
* Another way to merge multiple file descriptors is [:child, fd].
|
3165
|
+
* \[:child, fd] means the file descriptor in the child process.
|
3166
|
+
* This is different from fd.
|
3167
|
+
* For example, :err=>:out means redirecting child stderr to parent stdout.
|
3168
|
+
* But :err=>[:child, :out] means redirecting child stderr to child stdout.
|
3169
|
+
* They differs if stdout is redirected in the child process as follows.
|
3170
|
+
*
|
3171
|
+
* # stdout and stderr is redirected to log file.
|
3172
|
+
* # The file "log" is opened just once.
|
3173
|
+
* pid = spawn(command, :out=>["log", "w"], :err=>[:child, :out])
|
3174
|
+
*
|
3175
|
+
* \[:child, :out] can be used to merge stderr into stdout in IO.popen.
|
3176
|
+
* In this case, IO.popen redirects stdout to a pipe in the child process
|
3177
|
+
* and [:child, :out] refers the redirected stdout.
|
2835
3178
|
*
|
2836
|
-
*
|
2837
|
-
*
|
3179
|
+
* io = IO.popen(["sh", "-c", "echo out; echo err >&2", :err=>[:child, :out]])
|
3180
|
+
* p io.read #=> "out\nerr\n"
|
2838
3181
|
*
|
2839
3182
|
* spawn closes all non-standard unspecified descriptors by default.
|
2840
3183
|
* The "standard" descriptors are 0, 1 and 2.
|
@@ -2851,33 +3194,52 @@ rb_f_system(int argc, VALUE *argv)
|
|
2851
3194
|
*
|
2852
3195
|
* # similar to r = IO.popen(command)
|
2853
3196
|
* r, w = IO.pipe
|
2854
|
-
* pid = spawn(command,
|
3197
|
+
* pid = spawn(command, :out=>w) # r, w is closed in the child process.
|
2855
3198
|
* w.close
|
2856
3199
|
*
|
2857
|
-
* :close is specified as a hash value to close a fd
|
3200
|
+
* :close is specified as a hash value to close a fd individually.
|
2858
3201
|
*
|
2859
3202
|
* f = open(foo)
|
2860
3203
|
* system(command, f=>:close) # don't inherit f.
|
2861
3204
|
*
|
3205
|
+
* If a file descriptor need to be inherited,
|
3206
|
+
* io=>io can be used.
|
3207
|
+
*
|
3208
|
+
* # valgrind has --log-fd option for log destination.
|
3209
|
+
* # log_w=>log_w indicates log_w.fileno inherits to child process.
|
3210
|
+
* log_r, log_w = IO.pipe
|
3211
|
+
* pid = spawn("valgrind", "--log-fd=#{log_w.fileno}", "echo", "a", log_w=>log_w)
|
3212
|
+
* log_w.close
|
3213
|
+
* p log_r.read
|
3214
|
+
*
|
2862
3215
|
* It is also possible to exchange file descriptors.
|
2863
3216
|
*
|
2864
|
-
* pid = spawn(command,
|
3217
|
+
* pid = spawn(command, :out=>:err, :err=>:out)
|
2865
3218
|
*
|
2866
3219
|
* The hash keys specify file descriptors in the child process.
|
2867
3220
|
* The hash values specifies file descriptors in the parent process.
|
2868
|
-
* So the above specifies exchanging
|
3221
|
+
* So the above specifies exchanging stdout and stderr.
|
2869
3222
|
* Internally, +spawn+ uses an extra file descriptor to resolve such cyclic
|
2870
3223
|
* file descriptor mapping.
|
2871
3224
|
*
|
3225
|
+
* See <code>Kernel.exec</code> for the standard shell.
|
2872
3226
|
*/
|
2873
3227
|
|
2874
3228
|
static VALUE
|
2875
3229
|
rb_f_spawn(int argc, VALUE *argv)
|
2876
3230
|
{
|
2877
3231
|
rb_pid_t pid;
|
3232
|
+
char errmsg[CHILD_ERRMSG_BUFLEN] = { '\0' };
|
3233
|
+
struct rb_exec_arg earg;
|
2878
3234
|
|
2879
|
-
pid =
|
2880
|
-
if (pid == -1)
|
3235
|
+
pid = rb_spawn_process(&earg, rb_exec_arg_prepare(&earg, argc, argv, TRUE), errmsg, sizeof(errmsg));
|
3236
|
+
if (pid == -1) {
|
3237
|
+
const char *prog = errmsg;
|
3238
|
+
if (!prog[0] && !(prog = earg.prog) && earg.argc) {
|
3239
|
+
prog = RSTRING_PTR(earg.argv[0]);
|
3240
|
+
}
|
3241
|
+
rb_sys_fail(prog);
|
3242
|
+
}
|
2881
3243
|
#if defined(HAVE_FORK) || defined(HAVE_SPAWNV)
|
2882
3244
|
return PIDT2NUM(pid);
|
2883
3245
|
#else
|
@@ -2887,13 +3249,13 @@ rb_f_spawn(int argc, VALUE *argv)
|
|
2887
3249
|
|
2888
3250
|
/*
|
2889
3251
|
* call-seq:
|
2890
|
-
* sleep([duration])
|
3252
|
+
* sleep([duration]) -> fixnum
|
2891
3253
|
*
|
2892
3254
|
* Suspends the current thread for _duration_ seconds (which may be any number,
|
2893
3255
|
* including a +Float+ with fractional seconds). Returns the actual number of
|
2894
3256
|
* seconds slept (rounded), which may be less than that asked for if another
|
2895
|
-
* thread calls <code>Thread#run</code>.
|
2896
|
-
* forever.
|
3257
|
+
* thread calls <code>Thread#run</code>. Called without an argument, sleep()
|
3258
|
+
* will sleep forever.
|
2897
3259
|
*
|
2898
3260
|
* Time.new #=> 2008-03-08 19:56:19 +0900
|
2899
3261
|
* sleep 1.2 #=> 1
|
@@ -2915,7 +3277,7 @@ rb_f_sleep(int argc, VALUE *argv)
|
|
2915
3277
|
rb_thread_wait_for(rb_time_interval(argv[0]));
|
2916
3278
|
}
|
2917
3279
|
else {
|
2918
|
-
rb_raise(rb_eArgError, "wrong number of arguments");
|
3280
|
+
rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..1)", argc);
|
2919
3281
|
}
|
2920
3282
|
|
2921
3283
|
end = time(0) - beg;
|
@@ -2924,9 +3286,10 @@ rb_f_sleep(int argc, VALUE *argv)
|
|
2924
3286
|
}
|
2925
3287
|
|
2926
3288
|
|
3289
|
+
#if (defined(HAVE_GETPGRP) && defined(GETPGRP_VOID)) || defined(HAVE_GETPGID)
|
2927
3290
|
/*
|
2928
3291
|
* call-seq:
|
2929
|
-
* Process.getpgrp
|
3292
|
+
* Process.getpgrp -> integer
|
2930
3293
|
*
|
2931
3294
|
* Returns the process group ID for this process. Not available on
|
2932
3295
|
* all platforms.
|
@@ -2938,30 +3301,28 @@ rb_f_sleep(int argc, VALUE *argv)
|
|
2938
3301
|
static VALUE
|
2939
3302
|
proc_getpgrp(void)
|
2940
3303
|
{
|
2941
|
-
#if defined(HAVE_GETPGRP) && defined(GETPGRP_VOID) || defined(HAVE_GETPGID)
|
2942
3304
|
rb_pid_t pgrp;
|
2943
|
-
#endif
|
2944
3305
|
|
2945
3306
|
rb_secure(2);
|
2946
3307
|
#if defined(HAVE_GETPGRP) && defined(GETPGRP_VOID)
|
2947
3308
|
pgrp = getpgrp();
|
2948
3309
|
if (pgrp < 0) rb_sys_fail(0);
|
2949
3310
|
return PIDT2NUM(pgrp);
|
2950
|
-
#else
|
2951
|
-
# ifdef HAVE_GETPGID
|
3311
|
+
#else /* defined(HAVE_GETPGID) */
|
2952
3312
|
pgrp = getpgid(0);
|
2953
3313
|
if (pgrp < 0) rb_sys_fail(0);
|
2954
3314
|
return PIDT2NUM(pgrp);
|
2955
|
-
# else
|
2956
|
-
rb_notimplement();
|
2957
|
-
# endif
|
2958
3315
|
#endif
|
2959
3316
|
}
|
3317
|
+
#else
|
3318
|
+
#define proc_getpgrp rb_f_notimplement
|
3319
|
+
#endif
|
2960
3320
|
|
2961
3321
|
|
3322
|
+
#if defined(HAVE_SETPGID) || (defined(HAVE_SETPGRP) && defined(SETPGRP_VOID))
|
2962
3323
|
/*
|
2963
3324
|
* call-seq:
|
2964
|
-
* Process.setpgrp
|
3325
|
+
* Process.setpgrp -> 0
|
2965
3326
|
*
|
2966
3327
|
* Equivalent to <code>setpgid(0,0)</code>. Not available on all
|
2967
3328
|
* platforms.
|
@@ -2979,16 +3340,18 @@ proc_setpgrp(void)
|
|
2979
3340
|
if (setpgid(0,0) < 0) rb_sys_fail(0);
|
2980
3341
|
#elif defined(HAVE_SETPGRP) && defined(SETPGRP_VOID)
|
2981
3342
|
if (setpgrp() < 0) rb_sys_fail(0);
|
2982
|
-
#else
|
2983
|
-
rb_notimplement();
|
2984
3343
|
#endif
|
2985
3344
|
return INT2FIX(0);
|
2986
3345
|
}
|
3346
|
+
#else
|
3347
|
+
#define proc_setpgrp rb_f_notimplement
|
3348
|
+
#endif
|
2987
3349
|
|
2988
3350
|
|
3351
|
+
#if defined(HAVE_GETPGID)
|
2989
3352
|
/*
|
2990
3353
|
* call-seq:
|
2991
|
-
* Process.getpgid(pid)
|
3354
|
+
* Process.getpgid(pid) -> integer
|
2992
3355
|
*
|
2993
3356
|
* Returns the process group ID for the given process id. Not
|
2994
3357
|
* available on all platforms.
|
@@ -2999,22 +3362,22 @@ proc_setpgrp(void)
|
|
2999
3362
|
static VALUE
|
3000
3363
|
proc_getpgid(VALUE obj, VALUE pid)
|
3001
3364
|
{
|
3002
|
-
#if defined(HAVE_GETPGID) && !defined(__CHECKER__)
|
3003
3365
|
rb_pid_t i;
|
3004
3366
|
|
3005
3367
|
rb_secure(2);
|
3006
3368
|
i = getpgid(NUM2PIDT(pid));
|
3007
3369
|
if (i < 0) rb_sys_fail(0);
|
3008
3370
|
return PIDT2NUM(i);
|
3371
|
+
}
|
3009
3372
|
#else
|
3010
|
-
|
3373
|
+
#define proc_getpgid rb_f_notimplement
|
3011
3374
|
#endif
|
3012
|
-
}
|
3013
3375
|
|
3014
3376
|
|
3377
|
+
#ifdef HAVE_SETPGID
|
3015
3378
|
/*
|
3016
3379
|
* call-seq:
|
3017
|
-
* Process.setpgid(pid, integer)
|
3380
|
+
* Process.setpgid(pid, integer) -> 0
|
3018
3381
|
*
|
3019
3382
|
* Sets the process group ID of _pid_ (0 indicates this
|
3020
3383
|
* process) to <em>integer</em>. Not available on all platforms.
|
@@ -3023,7 +3386,6 @@ proc_getpgid(VALUE obj, VALUE pid)
|
|
3023
3386
|
static VALUE
|
3024
3387
|
proc_setpgid(VALUE obj, VALUE pid, VALUE pgrp)
|
3025
3388
|
{
|
3026
|
-
#ifdef HAVE_SETPGID
|
3027
3389
|
rb_pid_t ipid, ipgrp;
|
3028
3390
|
|
3029
3391
|
rb_secure(2);
|
@@ -3032,15 +3394,20 @@ proc_setpgid(VALUE obj, VALUE pid, VALUE pgrp)
|
|
3032
3394
|
|
3033
3395
|
if (setpgid(ipid, ipgrp) < 0) rb_sys_fail(0);
|
3034
3396
|
return INT2FIX(0);
|
3397
|
+
}
|
3035
3398
|
#else
|
3036
|
-
|
3399
|
+
#define proc_setpgid rb_f_notimplement
|
3037
3400
|
#endif
|
3038
|
-
}
|
3039
3401
|
|
3040
3402
|
|
3403
|
+
#if defined(HAVE_SETSID) || (defined(HAVE_SETPGRP) && defined(TIOCNOTTY))
|
3404
|
+
#if !defined(HAVE_SETSID)
|
3405
|
+
static rb_pid_t ruby_setsid(void);
|
3406
|
+
#define setsid() ruby_setsid()
|
3407
|
+
#endif
|
3041
3408
|
/*
|
3042
3409
|
* call-seq:
|
3043
|
-
* Process.setsid
|
3410
|
+
* Process.setsid -> fixnum
|
3044
3411
|
*
|
3045
3412
|
* Establishes this process as a new session and process group
|
3046
3413
|
* leader, with no controlling tty. Returns the session id. Not
|
@@ -3052,18 +3419,22 @@ proc_setpgid(VALUE obj, VALUE pid, VALUE pgrp)
|
|
3052
3419
|
static VALUE
|
3053
3420
|
proc_setsid(void)
|
3054
3421
|
{
|
3055
|
-
#if defined(HAVE_SETSID)
|
3056
3422
|
rb_pid_t pid;
|
3057
3423
|
|
3058
3424
|
rb_secure(2);
|
3059
3425
|
pid = setsid();
|
3060
3426
|
if (pid < 0) rb_sys_fail(0);
|
3061
3427
|
return PIDT2NUM(pid);
|
3062
|
-
|
3428
|
+
}
|
3429
|
+
|
3430
|
+
#if !defined(HAVE_SETSID)
|
3431
|
+
#define HAVE_SETSID 1
|
3432
|
+
static rb_pid_t
|
3433
|
+
ruby_setsid(void)
|
3434
|
+
{
|
3063
3435
|
rb_pid_t pid;
|
3064
3436
|
int ret;
|
3065
3437
|
|
3066
|
-
rb_secure(2);
|
3067
3438
|
pid = getpid();
|
3068
3439
|
#if defined(SETPGRP_VOID)
|
3069
3440
|
ret = setpgrp();
|
@@ -3073,22 +3444,24 @@ proc_setsid(void)
|
|
3073
3444
|
#else
|
3074
3445
|
ret = setpgrp(0, pid);
|
3075
3446
|
#endif
|
3076
|
-
if (ret == -1)
|
3447
|
+
if (ret == -1) return -1;
|
3077
3448
|
|
3078
3449
|
if ((fd = open("/dev/tty", O_RDWR)) >= 0) {
|
3079
3450
|
ioctl(fd, TIOCNOTTY, NULL);
|
3080
3451
|
close(fd);
|
3081
3452
|
}
|
3082
|
-
return
|
3453
|
+
return pid;
|
3454
|
+
}
|
3455
|
+
#endif
|
3083
3456
|
#else
|
3084
|
-
|
3457
|
+
#define proc_setsid rb_f_notimplement
|
3085
3458
|
#endif
|
3086
|
-
}
|
3087
3459
|
|
3088
3460
|
|
3461
|
+
#ifdef HAVE_GETPRIORITY
|
3089
3462
|
/*
|
3090
3463
|
* call-seq:
|
3091
|
-
* Process.getpriority(kind, integer)
|
3464
|
+
* Process.getpriority(kind, integer) -> fixnum
|
3092
3465
|
*
|
3093
3466
|
* Gets the scheduling priority for specified process, process group,
|
3094
3467
|
* or user. <em>kind</em> indicates the kind of entity to find: one
|
@@ -3106,7 +3479,6 @@ proc_setsid(void)
|
|
3106
3479
|
static VALUE
|
3107
3480
|
proc_getpriority(VALUE obj, VALUE which, VALUE who)
|
3108
3481
|
{
|
3109
|
-
#ifdef HAVE_GETPRIORITY
|
3110
3482
|
int prio, iwhich, iwho;
|
3111
3483
|
|
3112
3484
|
rb_secure(2);
|
@@ -3117,15 +3489,16 @@ proc_getpriority(VALUE obj, VALUE which, VALUE who)
|
|
3117
3489
|
prio = getpriority(iwhich, iwho);
|
3118
3490
|
if (errno) rb_sys_fail(0);
|
3119
3491
|
return INT2FIX(prio);
|
3492
|
+
}
|
3120
3493
|
#else
|
3121
|
-
|
3494
|
+
#define proc_getpriority rb_f_notimplement
|
3122
3495
|
#endif
|
3123
|
-
}
|
3124
3496
|
|
3125
3497
|
|
3498
|
+
#ifdef HAVE_GETPRIORITY
|
3126
3499
|
/*
|
3127
3500
|
* call-seq:
|
3128
|
-
* Process.setpriority(kind, integer, priority)
|
3501
|
+
* Process.setpriority(kind, integer, priority) -> 0
|
3129
3502
|
*
|
3130
3503
|
* See <code>Process#getpriority</code>.
|
3131
3504
|
*
|
@@ -3138,7 +3511,6 @@ proc_getpriority(VALUE obj, VALUE which, VALUE who)
|
|
3138
3511
|
static VALUE
|
3139
3512
|
proc_setpriority(VALUE obj, VALUE which, VALUE who, VALUE prio)
|
3140
3513
|
{
|
3141
|
-
#ifdef HAVE_GETPRIORITY
|
3142
3514
|
int iwhich, iwho, iprio;
|
3143
3515
|
|
3144
3516
|
rb_secure(2);
|
@@ -3149,10 +3521,10 @@ proc_setpriority(VALUE obj, VALUE which, VALUE who, VALUE prio)
|
|
3149
3521
|
if (setpriority(iwhich, iwho, iprio) < 0)
|
3150
3522
|
rb_sys_fail(0);
|
3151
3523
|
return INT2FIX(0);
|
3524
|
+
}
|
3152
3525
|
#else
|
3153
|
-
|
3526
|
+
#define proc_setpriority rb_f_notimplement
|
3154
3527
|
#endif
|
3155
|
-
}
|
3156
3528
|
|
3157
3529
|
#if defined(RLIM2NUM)
|
3158
3530
|
static int
|
@@ -3161,7 +3533,7 @@ rlimit_resource_name2int(const char *name, int casetype)
|
|
3161
3533
|
size_t len = strlen(name);
|
3162
3534
|
if (16 < len) return -1;
|
3163
3535
|
if (casetype == 1) {
|
3164
|
-
|
3536
|
+
size_t i;
|
3165
3537
|
char *name2 = ALLOCA_N(char, len+1);
|
3166
3538
|
for (i = 0; i < len; i++) {
|
3167
3539
|
if (!ISLOWER(name[i]))
|
@@ -3318,9 +3690,10 @@ rlimit_resource_value(VALUE rval)
|
|
3318
3690
|
}
|
3319
3691
|
#endif
|
3320
3692
|
|
3693
|
+
#if defined(HAVE_GETRLIMIT) && defined(RLIM2NUM)
|
3321
3694
|
/*
|
3322
3695
|
* call-seq:
|
3323
|
-
* Process.getrlimit(resource)
|
3696
|
+
* Process.getrlimit(resource) -> [cur_limit, max_limit]
|
3324
3697
|
*
|
3325
3698
|
* Gets the resource limit of the process.
|
3326
3699
|
* _cur_limit_ means current (soft) limit and
|
@@ -3341,7 +3714,6 @@ rlimit_resource_value(VALUE rval)
|
|
3341
3714
|
static VALUE
|
3342
3715
|
proc_getrlimit(VALUE obj, VALUE resource)
|
3343
3716
|
{
|
3344
|
-
#if defined(HAVE_GETRLIMIT) && defined(RLIM2NUM)
|
3345
3717
|
struct rlimit rlim;
|
3346
3718
|
|
3347
3719
|
rb_secure(2);
|
@@ -3350,15 +3722,16 @@ proc_getrlimit(VALUE obj, VALUE resource)
|
|
3350
3722
|
rb_sys_fail("getrlimit");
|
3351
3723
|
}
|
3352
3724
|
return rb_assoc_new(RLIM2NUM(rlim.rlim_cur), RLIM2NUM(rlim.rlim_max));
|
3725
|
+
}
|
3353
3726
|
#else
|
3354
|
-
|
3727
|
+
#define proc_getrlimit rb_f_notimplement
|
3355
3728
|
#endif
|
3356
|
-
}
|
3357
3729
|
|
3730
|
+
#if defined(HAVE_SETRLIMIT) && defined(NUM2RLIM)
|
3358
3731
|
/*
|
3359
3732
|
* call-seq:
|
3360
|
-
* Process.setrlimit(resource, cur_limit, max_limit)
|
3361
|
-
* Process.setrlimit(resource, cur_limit)
|
3733
|
+
* Process.setrlimit(resource, cur_limit, max_limit) -> nil
|
3734
|
+
* Process.setrlimit(resource, cur_limit) -> nil
|
3362
3735
|
*
|
3363
3736
|
* Sets the resource limit of the process.
|
3364
3737
|
* _cur_limit_ means current (soft) limit and
|
@@ -3404,7 +3777,6 @@ proc_getrlimit(VALUE obj, VALUE resource)
|
|
3404
3777
|
static VALUE
|
3405
3778
|
proc_setrlimit(int argc, VALUE *argv, VALUE obj)
|
3406
3779
|
{
|
3407
|
-
#if defined(HAVE_SETRLIMIT) && defined(NUM2RLIM)
|
3408
3780
|
VALUE resource, rlim_cur, rlim_max;
|
3409
3781
|
struct rlimit rlim;
|
3410
3782
|
|
@@ -3421,10 +3793,10 @@ proc_setrlimit(int argc, VALUE *argv, VALUE obj)
|
|
3421
3793
|
rb_sys_fail("setrlimit");
|
3422
3794
|
}
|
3423
3795
|
return Qnil;
|
3796
|
+
}
|
3424
3797
|
#else
|
3425
|
-
|
3798
|
+
#define proc_setrlimit rb_f_notimplement
|
3426
3799
|
#endif
|
3427
|
-
}
|
3428
3800
|
|
3429
3801
|
static int under_uid_switch = 0;
|
3430
3802
|
static void
|
@@ -3458,9 +3830,10 @@ check_gid_switch(void)
|
|
3458
3830
|
*/
|
3459
3831
|
|
3460
3832
|
|
3833
|
+
#if defined HAVE_SETUID
|
3461
3834
|
/*
|
3462
3835
|
* call-seq:
|
3463
|
-
* Process::Sys.setuid(integer)
|
3836
|
+
* Process::Sys.setuid(integer) -> nil
|
3464
3837
|
*
|
3465
3838
|
* Set the user ID of the current process to _integer_. Not
|
3466
3839
|
* available on all platforms.
|
@@ -3470,20 +3843,19 @@ check_gid_switch(void)
|
|
3470
3843
|
static VALUE
|
3471
3844
|
p_sys_setuid(VALUE obj, VALUE id)
|
3472
3845
|
{
|
3473
|
-
#if defined HAVE_SETUID
|
3474
3846
|
check_uid_switch();
|
3475
3847
|
if (setuid(NUM2UIDT(id)) != 0) rb_sys_fail(0);
|
3476
|
-
#else
|
3477
|
-
rb_notimplement();
|
3478
|
-
#endif
|
3479
3848
|
return Qnil;
|
3480
3849
|
}
|
3850
|
+
#else
|
3851
|
+
#define p_sys_setuid rb_f_notimplement
|
3852
|
+
#endif
|
3481
3853
|
|
3482
3854
|
|
3483
|
-
|
3855
|
+
#if defined HAVE_SETRUID
|
3484
3856
|
/*
|
3485
3857
|
* call-seq:
|
3486
|
-
* Process::Sys.setruid(integer)
|
3858
|
+
* Process::Sys.setruid(integer) -> nil
|
3487
3859
|
*
|
3488
3860
|
* Set the real user ID of the calling process to _integer_.
|
3489
3861
|
* Not available on all platforms.
|
@@ -3493,19 +3865,19 @@ p_sys_setuid(VALUE obj, VALUE id)
|
|
3493
3865
|
static VALUE
|
3494
3866
|
p_sys_setruid(VALUE obj, VALUE id)
|
3495
3867
|
{
|
3496
|
-
#if defined HAVE_SETRUID
|
3497
3868
|
check_uid_switch();
|
3498
3869
|
if (setruid(NUM2UIDT(id)) != 0) rb_sys_fail(0);
|
3499
|
-
#else
|
3500
|
-
rb_notimplement();
|
3501
|
-
#endif
|
3502
3870
|
return Qnil;
|
3503
3871
|
}
|
3872
|
+
#else
|
3873
|
+
#define p_sys_setruid rb_f_notimplement
|
3874
|
+
#endif
|
3504
3875
|
|
3505
3876
|
|
3877
|
+
#if defined HAVE_SETEUID
|
3506
3878
|
/*
|
3507
3879
|
* call-seq:
|
3508
|
-
* Process::Sys.seteuid(integer)
|
3880
|
+
* Process::Sys.seteuid(integer) -> nil
|
3509
3881
|
*
|
3510
3882
|
* Set the effective user ID of the calling process to
|
3511
3883
|
* _integer_. Not available on all platforms.
|
@@ -3515,19 +3887,19 @@ p_sys_setruid(VALUE obj, VALUE id)
|
|
3515
3887
|
static VALUE
|
3516
3888
|
p_sys_seteuid(VALUE obj, VALUE id)
|
3517
3889
|
{
|
3518
|
-
#if defined HAVE_SETEUID
|
3519
3890
|
check_uid_switch();
|
3520
3891
|
if (seteuid(NUM2UIDT(id)) != 0) rb_sys_fail(0);
|
3521
|
-
#else
|
3522
|
-
rb_notimplement();
|
3523
|
-
#endif
|
3524
3892
|
return Qnil;
|
3525
3893
|
}
|
3894
|
+
#else
|
3895
|
+
#define p_sys_seteuid rb_f_notimplement
|
3896
|
+
#endif
|
3526
3897
|
|
3527
3898
|
|
3899
|
+
#if defined HAVE_SETREUID
|
3528
3900
|
/*
|
3529
3901
|
* call-seq:
|
3530
|
-
* Process::Sys.setreuid(rid, eid)
|
3902
|
+
* Process::Sys.setreuid(rid, eid) -> nil
|
3531
3903
|
*
|
3532
3904
|
* Sets the (integer) real and/or effective user IDs of the current
|
3533
3905
|
* process to _rid_ and _eid_, respectively. A value of
|
@@ -3539,19 +3911,19 @@ p_sys_seteuid(VALUE obj, VALUE id)
|
|
3539
3911
|
static VALUE
|
3540
3912
|
p_sys_setreuid(VALUE obj, VALUE rid, VALUE eid)
|
3541
3913
|
{
|
3542
|
-
#if defined HAVE_SETREUID
|
3543
3914
|
check_uid_switch();
|
3544
3915
|
if (setreuid(NUM2UIDT(rid),NUM2UIDT(eid)) != 0) rb_sys_fail(0);
|
3545
|
-
#else
|
3546
|
-
rb_notimplement();
|
3547
|
-
#endif
|
3548
3916
|
return Qnil;
|
3549
3917
|
}
|
3918
|
+
#else
|
3919
|
+
#define p_sys_setreuid rb_f_notimplement
|
3920
|
+
#endif
|
3550
3921
|
|
3551
3922
|
|
3923
|
+
#if defined HAVE_SETRESUID
|
3552
3924
|
/*
|
3553
3925
|
* call-seq:
|
3554
|
-
* Process::Sys.setresuid(rid, eid, sid)
|
3926
|
+
* Process::Sys.setresuid(rid, eid, sid) -> nil
|
3555
3927
|
*
|
3556
3928
|
* Sets the (integer) real, effective, and saved user IDs of the
|
3557
3929
|
* current process to _rid_, _eid_, and _sid_ respectively. A
|
@@ -3563,21 +3935,20 @@ p_sys_setreuid(VALUE obj, VALUE rid, VALUE eid)
|
|
3563
3935
|
static VALUE
|
3564
3936
|
p_sys_setresuid(VALUE obj, VALUE rid, VALUE eid, VALUE sid)
|
3565
3937
|
{
|
3566
|
-
#if defined HAVE_SETRESUID
|
3567
3938
|
check_uid_switch();
|
3568
3939
|
if (setresuid(NUM2UIDT(rid),NUM2UIDT(eid),NUM2UIDT(sid)) != 0) rb_sys_fail(0);
|
3569
|
-
#else
|
3570
|
-
rb_notimplement();
|
3571
|
-
#endif
|
3572
3940
|
return Qnil;
|
3573
3941
|
}
|
3942
|
+
#else
|
3943
|
+
#define p_sys_setresuid rb_f_notimplement
|
3944
|
+
#endif
|
3574
3945
|
|
3575
3946
|
|
3576
3947
|
/*
|
3577
3948
|
* call-seq:
|
3578
|
-
* Process.uid
|
3579
|
-
* Process::UID.rid
|
3580
|
-
* Process::Sys.getuid
|
3949
|
+
* Process.uid -> fixnum
|
3950
|
+
* Process::UID.rid -> fixnum
|
3951
|
+
* Process::Sys.getuid -> fixnum
|
3581
3952
|
*
|
3582
3953
|
* Returns the (real) user ID of this process.
|
3583
3954
|
*
|
@@ -3592,9 +3963,10 @@ proc_getuid(VALUE obj)
|
|
3592
3963
|
}
|
3593
3964
|
|
3594
3965
|
|
3966
|
+
#if defined(HAVE_SETRESUID) || defined(HAVE_SETREUID) || defined(HAVE_SETRUID) || defined(HAVE_SETUID)
|
3595
3967
|
/*
|
3596
3968
|
* call-seq:
|
3597
|
-
* Process.uid= integer
|
3969
|
+
* Process.uid= integer -> numeric
|
3598
3970
|
*
|
3599
3971
|
* Sets the (integer) user ID for this process. Not available on all
|
3600
3972
|
* platforms.
|
@@ -3608,7 +3980,7 @@ proc_setuid(VALUE obj, VALUE id)
|
|
3608
3980
|
check_uid_switch();
|
3609
3981
|
|
3610
3982
|
uid = NUM2UIDT(id);
|
3611
|
-
#if defined(HAVE_SETRESUID)
|
3983
|
+
#if defined(HAVE_SETRESUID)
|
3612
3984
|
if (setresuid(uid, -1, -1) < 0) rb_sys_fail(0);
|
3613
3985
|
#elif defined HAVE_SETREUID
|
3614
3986
|
if (setreuid(uid, -1) < 0) rb_sys_fail(0);
|
@@ -3623,11 +3995,12 @@ proc_setuid(VALUE obj, VALUE id)
|
|
3623
3995
|
rb_notimplement();
|
3624
3996
|
}
|
3625
3997
|
}
|
3626
|
-
#else
|
3627
|
-
rb_notimplement();
|
3628
3998
|
#endif
|
3629
3999
|
return id;
|
3630
4000
|
}
|
4001
|
+
#else
|
4002
|
+
#define proc_setuid rb_f_notimplement
|
4003
|
+
#endif
|
3631
4004
|
|
3632
4005
|
|
3633
4006
|
/********************************************************************
|
@@ -3659,7 +4032,7 @@ setreuid(rb_uid_t ruid, rb_uid_t euid)
|
|
3659
4032
|
|
3660
4033
|
/*
|
3661
4034
|
* call-seq:
|
3662
|
-
* Process::UID.change_privilege(integer)
|
4035
|
+
* Process::UID.change_privilege(integer) -> fixnum
|
3663
4036
|
*
|
3664
4037
|
* Change the current process's real and effective user ID to that
|
3665
4038
|
* specified by _integer_. Returns the new user ID. Not
|
@@ -3810,9 +4183,10 @@ p_uid_change_privilege(VALUE obj, VALUE id)
|
|
3810
4183
|
|
3811
4184
|
|
3812
4185
|
|
4186
|
+
#if defined HAVE_SETGID
|
3813
4187
|
/*
|
3814
4188
|
* call-seq:
|
3815
|
-
* Process::Sys.setgid(integer)
|
4189
|
+
* Process::Sys.setgid(integer) -> nil
|
3816
4190
|
*
|
3817
4191
|
* Set the group ID of the current process to _integer_. Not
|
3818
4192
|
* available on all platforms.
|
@@ -3822,19 +4196,19 @@ p_uid_change_privilege(VALUE obj, VALUE id)
|
|
3822
4196
|
static VALUE
|
3823
4197
|
p_sys_setgid(VALUE obj, VALUE id)
|
3824
4198
|
{
|
3825
|
-
#if defined HAVE_SETGID
|
3826
4199
|
check_gid_switch();
|
3827
4200
|
if (setgid(NUM2GIDT(id)) != 0) rb_sys_fail(0);
|
3828
|
-
#else
|
3829
|
-
rb_notimplement();
|
3830
|
-
#endif
|
3831
4201
|
return Qnil;
|
3832
4202
|
}
|
4203
|
+
#else
|
4204
|
+
#define p_sys_setgid rb_f_notimplement
|
4205
|
+
#endif
|
3833
4206
|
|
3834
4207
|
|
4208
|
+
#if defined HAVE_SETRGID
|
3835
4209
|
/*
|
3836
4210
|
* call-seq:
|
3837
|
-
* Process::Sys.setrgid(integer)
|
4211
|
+
* Process::Sys.setrgid(integer) -> nil
|
3838
4212
|
*
|
3839
4213
|
* Set the real group ID of the calling process to _integer_.
|
3840
4214
|
* Not available on all platforms.
|
@@ -3844,20 +4218,19 @@ p_sys_setgid(VALUE obj, VALUE id)
|
|
3844
4218
|
static VALUE
|
3845
4219
|
p_sys_setrgid(VALUE obj, VALUE id)
|
3846
4220
|
{
|
3847
|
-
#if defined HAVE_SETRGID
|
3848
4221
|
check_gid_switch();
|
3849
4222
|
if (setrgid(NUM2GIDT(id)) != 0) rb_sys_fail(0);
|
3850
|
-
#else
|
3851
|
-
rb_notimplement();
|
3852
|
-
#endif
|
3853
4223
|
return Qnil;
|
3854
4224
|
}
|
4225
|
+
#else
|
4226
|
+
#define p_sys_setrgid rb_f_notimplement
|
4227
|
+
#endif
|
3855
4228
|
|
3856
4229
|
|
3857
|
-
|
4230
|
+
#if defined HAVE_SETEGID
|
3858
4231
|
/*
|
3859
4232
|
* call-seq:
|
3860
|
-
* Process::Sys.setegid(integer)
|
4233
|
+
* Process::Sys.setegid(integer) -> nil
|
3861
4234
|
*
|
3862
4235
|
* Set the effective group ID of the calling process to
|
3863
4236
|
* _integer_. Not available on all platforms.
|
@@ -3867,19 +4240,19 @@ p_sys_setrgid(VALUE obj, VALUE id)
|
|
3867
4240
|
static VALUE
|
3868
4241
|
p_sys_setegid(VALUE obj, VALUE id)
|
3869
4242
|
{
|
3870
|
-
#if defined HAVE_SETEGID
|
3871
4243
|
check_gid_switch();
|
3872
4244
|
if (setegid(NUM2GIDT(id)) != 0) rb_sys_fail(0);
|
3873
|
-
#else
|
3874
|
-
rb_notimplement();
|
3875
|
-
#endif
|
3876
4245
|
return Qnil;
|
3877
4246
|
}
|
4247
|
+
#else
|
4248
|
+
#define p_sys_setegid rb_f_notimplement
|
4249
|
+
#endif
|
3878
4250
|
|
3879
4251
|
|
4252
|
+
#if defined HAVE_SETREGID
|
3880
4253
|
/*
|
3881
4254
|
* call-seq:
|
3882
|
-
* Process::Sys.setregid(rid, eid)
|
4255
|
+
* Process::Sys.setregid(rid, eid) -> nil
|
3883
4256
|
*
|
3884
4257
|
* Sets the (integer) real and/or effective group IDs of the current
|
3885
4258
|
* process to <em>rid</em> and <em>eid</em>, respectively. A value of
|
@@ -3891,18 +4264,18 @@ p_sys_setegid(VALUE obj, VALUE id)
|
|
3891
4264
|
static VALUE
|
3892
4265
|
p_sys_setregid(VALUE obj, VALUE rid, VALUE eid)
|
3893
4266
|
{
|
3894
|
-
#if defined HAVE_SETREGID
|
3895
4267
|
check_gid_switch();
|
3896
4268
|
if (setregid(NUM2GIDT(rid),NUM2GIDT(eid)) != 0) rb_sys_fail(0);
|
3897
|
-
#else
|
3898
|
-
rb_notimplement();
|
3899
|
-
#endif
|
3900
4269
|
return Qnil;
|
3901
4270
|
}
|
4271
|
+
#else
|
4272
|
+
#define p_sys_setregid rb_f_notimplement
|
4273
|
+
#endif
|
3902
4274
|
|
4275
|
+
#if defined HAVE_SETRESGID
|
3903
4276
|
/*
|
3904
4277
|
* call-seq:
|
3905
|
-
* Process::Sys.setresgid(rid, eid, sid)
|
4278
|
+
* Process::Sys.setresgid(rid, eid, sid) -> nil
|
3906
4279
|
*
|
3907
4280
|
* Sets the (integer) real, effective, and saved user IDs of the
|
3908
4281
|
* current process to <em>rid</em>, <em>eid</em>, and <em>sid</em>
|
@@ -3914,19 +4287,19 @@ p_sys_setregid(VALUE obj, VALUE rid, VALUE eid)
|
|
3914
4287
|
static VALUE
|
3915
4288
|
p_sys_setresgid(VALUE obj, VALUE rid, VALUE eid, VALUE sid)
|
3916
4289
|
{
|
3917
|
-
#if defined HAVE_SETRESGID
|
3918
4290
|
check_gid_switch();
|
3919
4291
|
if (setresgid(NUM2GIDT(rid),NUM2GIDT(eid),NUM2GIDT(sid)) != 0) rb_sys_fail(0);
|
3920
|
-
#else
|
3921
|
-
rb_notimplement();
|
3922
|
-
#endif
|
3923
4292
|
return Qnil;
|
3924
4293
|
}
|
4294
|
+
#else
|
4295
|
+
#define p_sys_setresgid rb_f_notimplement
|
4296
|
+
#endif
|
3925
4297
|
|
3926
4298
|
|
4299
|
+
#if defined HAVE_ISSETUGID
|
3927
4300
|
/*
|
3928
4301
|
* call-seq:
|
3929
|
-
* Process::Sys.issetugid
|
4302
|
+
* Process::Sys.issetugid -> true or false
|
3930
4303
|
*
|
3931
4304
|
* Returns +true+ if the process was created as a result
|
3932
4305
|
* of an execve(2) system call which had either of the setuid or
|
@@ -3939,25 +4312,23 @@ p_sys_setresgid(VALUE obj, VALUE rid, VALUE eid, VALUE sid)
|
|
3939
4312
|
static VALUE
|
3940
4313
|
p_sys_issetugid(VALUE obj)
|
3941
4314
|
{
|
3942
|
-
#if defined HAVE_ISSETUGID
|
3943
4315
|
rb_secure(2);
|
3944
4316
|
if (issetugid()) {
|
3945
4317
|
return Qtrue;
|
3946
4318
|
} else {
|
3947
4319
|
return Qfalse;
|
3948
4320
|
}
|
4321
|
+
}
|
3949
4322
|
#else
|
3950
|
-
|
3951
|
-
return Qnil; /* not reached */
|
4323
|
+
#define p_sys_issetugid rb_f_notimplement
|
3952
4324
|
#endif
|
3953
|
-
}
|
3954
4325
|
|
3955
4326
|
|
3956
4327
|
/*
|
3957
4328
|
* call-seq:
|
3958
|
-
* Process.gid
|
3959
|
-
* Process::GID.rid
|
3960
|
-
* Process::Sys.getgid
|
4329
|
+
* Process.gid -> fixnum
|
4330
|
+
* Process::GID.rid -> fixnum
|
4331
|
+
* Process::Sys.getgid -> fixnum
|
3961
4332
|
*
|
3962
4333
|
* Returns the (real) group ID for this process.
|
3963
4334
|
*
|
@@ -3972,9 +4343,10 @@ proc_getgid(VALUE obj)
|
|
3972
4343
|
}
|
3973
4344
|
|
3974
4345
|
|
4346
|
+
#if defined(HAVE_SETRESGID) || defined(HAVE_SETREGID) || defined(HAVE_SETRGID) || defined(HAVE_SETGID)
|
3975
4347
|
/*
|
3976
4348
|
* call-seq:
|
3977
|
-
* Process.gid= fixnum
|
4349
|
+
* Process.gid= fixnum -> fixnum
|
3978
4350
|
*
|
3979
4351
|
* Sets the group ID for this process.
|
3980
4352
|
*/
|
@@ -3987,7 +4359,7 @@ proc_setgid(VALUE obj, VALUE id)
|
|
3987
4359
|
check_gid_switch();
|
3988
4360
|
|
3989
4361
|
gid = NUM2GIDT(id);
|
3990
|
-
#if defined(HAVE_SETRESGID)
|
4362
|
+
#if defined(HAVE_SETRESGID)
|
3991
4363
|
if (setresgid(gid, -1, -1) < 0) rb_sys_fail(0);
|
3992
4364
|
#elif defined HAVE_SETREGID
|
3993
4365
|
if (setregid(gid, -1) < 0) rb_sys_fail(0);
|
@@ -4002,19 +4374,21 @@ proc_setgid(VALUE obj, VALUE id)
|
|
4002
4374
|
rb_notimplement();
|
4003
4375
|
}
|
4004
4376
|
}
|
4005
|
-
#else
|
4006
|
-
rb_notimplement();
|
4007
4377
|
#endif
|
4008
4378
|
return GIDT2NUM(gid);
|
4009
4379
|
}
|
4380
|
+
#else
|
4381
|
+
#define proc_setgid rb_f_notimplement
|
4382
|
+
#endif
|
4010
4383
|
|
4011
4384
|
|
4012
|
-
static
|
4385
|
+
static int maxgroups = 32;
|
4013
4386
|
|
4014
4387
|
|
4388
|
+
#ifdef HAVE_GETGROUPS
|
4015
4389
|
/*
|
4016
4390
|
* call-seq:
|
4017
|
-
* Process.groups
|
4391
|
+
* Process.groups -> array
|
4018
4392
|
*
|
4019
4393
|
* Get an <code>Array</code> of the gids of groups in the
|
4020
4394
|
* supplemental group access list for this process.
|
@@ -4026,11 +4400,9 @@ static size_t maxgroups = 32;
|
|
4026
4400
|
static VALUE
|
4027
4401
|
proc_getgroups(VALUE obj)
|
4028
4402
|
{
|
4029
|
-
#ifdef HAVE_GETGROUPS
|
4030
4403
|
VALUE ary;
|
4031
|
-
|
4404
|
+
int i, ngroups;
|
4032
4405
|
rb_gid_t *groups;
|
4033
|
-
int i;
|
4034
4406
|
|
4035
4407
|
groups = ALLOCA_N(rb_gid_t, maxgroups);
|
4036
4408
|
|
@@ -4043,16 +4415,16 @@ proc_getgroups(VALUE obj)
|
|
4043
4415
|
rb_ary_push(ary, GIDT2NUM(groups[i]));
|
4044
4416
|
|
4045
4417
|
return ary;
|
4418
|
+
}
|
4046
4419
|
#else
|
4047
|
-
|
4048
|
-
return Qnil;
|
4420
|
+
#define proc_getgroups rb_f_notimplement
|
4049
4421
|
#endif
|
4050
|
-
}
|
4051
4422
|
|
4052
4423
|
|
4424
|
+
#ifdef HAVE_SETGROUPS
|
4053
4425
|
/*
|
4054
4426
|
* call-seq:
|
4055
|
-
* Process.groups= array
|
4427
|
+
* Process.groups= array -> array
|
4056
4428
|
*
|
4057
4429
|
* Set the supplemental group access list to the given
|
4058
4430
|
* <code>Array</code> of group IDs.
|
@@ -4066,21 +4438,19 @@ proc_getgroups(VALUE obj)
|
|
4066
4438
|
static VALUE
|
4067
4439
|
proc_setgroups(VALUE obj, VALUE ary)
|
4068
4440
|
{
|
4069
|
-
|
4070
|
-
size_t ngroups;
|
4441
|
+
size_t ngroups, i;
|
4071
4442
|
rb_gid_t *groups;
|
4072
|
-
int i;
|
4073
4443
|
struct group *gr;
|
4074
4444
|
|
4075
4445
|
Check_Type(ary, T_ARRAY);
|
4076
4446
|
|
4077
4447
|
ngroups = RARRAY_LEN(ary);
|
4078
|
-
if (ngroups > maxgroups)
|
4079
|
-
rb_raise(rb_eArgError, "too many groups, %
|
4448
|
+
if (ngroups > (size_t)maxgroups)
|
4449
|
+
rb_raise(rb_eArgError, "too many groups, %u max", maxgroups);
|
4080
4450
|
|
4081
4451
|
groups = ALLOCA_N(rb_gid_t, ngroups);
|
4082
4452
|
|
4083
|
-
for (i = 0; i < ngroups && i < RARRAY_LEN(ary); i++) {
|
4453
|
+
for (i = 0; i < ngroups && i < (size_t)RARRAY_LEN(ary); i++) {
|
4084
4454
|
VALUE g = RARRAY_PTR(ary)[i];
|
4085
4455
|
|
4086
4456
|
if (FIXNUM_P(g)) {
|
@@ -4094,29 +4464,30 @@ proc_setgroups(VALUE obj, VALUE ary)
|
|
4094
4464
|
}
|
4095
4465
|
else {
|
4096
4466
|
gr = getgrnam(RSTRING_PTR(tmp));
|
4097
|
-
if (gr == NULL)
|
4467
|
+
if (gr == NULL) {
|
4468
|
+
RB_GC_GUARD(tmp);
|
4098
4469
|
rb_raise(rb_eArgError,
|
4099
4470
|
"can't find group for %s", RSTRING_PTR(tmp));
|
4471
|
+
}
|
4100
4472
|
groups[i] = gr->gr_gid;
|
4101
4473
|
}
|
4102
4474
|
}
|
4103
4475
|
}
|
4104
4476
|
|
4105
|
-
|
4106
|
-
if (i == -1)
|
4477
|
+
if (setgroups((int)ngroups, groups) == -1) /* ngroups <= maxgroups */
|
4107
4478
|
rb_sys_fail(0);
|
4108
4479
|
|
4109
4480
|
return proc_getgroups(obj);
|
4481
|
+
}
|
4110
4482
|
#else
|
4111
|
-
|
4112
|
-
return Qnil;
|
4483
|
+
#define proc_setgroups rb_f_notimplement
|
4113
4484
|
#endif
|
4114
|
-
}
|
4115
4485
|
|
4116
4486
|
|
4487
|
+
#ifdef HAVE_INITGROUPS
|
4117
4488
|
/*
|
4118
4489
|
* call-seq:
|
4119
|
-
* Process.initgroups(username, gid)
|
4490
|
+
* Process.initgroups(username, gid) -> array
|
4120
4491
|
*
|
4121
4492
|
* Initializes the supplemental group access list by reading the
|
4122
4493
|
* system group database and using all groups of which the given user
|
@@ -4134,21 +4505,19 @@ proc_setgroups(VALUE obj, VALUE ary)
|
|
4134
4505
|
static VALUE
|
4135
4506
|
proc_initgroups(VALUE obj, VALUE uname, VALUE base_grp)
|
4136
4507
|
{
|
4137
|
-
#ifdef HAVE_INITGROUPS
|
4138
4508
|
if (initgroups(StringValuePtr(uname), NUM2GIDT(base_grp)) != 0) {
|
4139
4509
|
rb_sys_fail(0);
|
4140
4510
|
}
|
4141
4511
|
return proc_getgroups(obj);
|
4512
|
+
}
|
4142
4513
|
#else
|
4143
|
-
|
4144
|
-
return Qnil;
|
4514
|
+
#define proc_initgroups rb_f_notimplement
|
4145
4515
|
#endif
|
4146
|
-
}
|
4147
4516
|
|
4148
4517
|
|
4149
4518
|
/*
|
4150
4519
|
* call-seq:
|
4151
|
-
* Process.maxgroups
|
4520
|
+
* Process.maxgroups -> fixnum
|
4152
4521
|
*
|
4153
4522
|
* Returns the maximum number of gids allowed in the supplemental
|
4154
4523
|
* group access list.
|
@@ -4165,7 +4534,7 @@ proc_getmaxgroups(VALUE obj)
|
|
4165
4534
|
|
4166
4535
|
/*
|
4167
4536
|
* call-seq:
|
4168
|
-
* Process.maxgroups= fixnum
|
4537
|
+
* Process.maxgroups= fixnum -> fixnum
|
4169
4538
|
*
|
4170
4539
|
* Sets the maximum number of gids allowed in the supplemental group
|
4171
4540
|
* access list.
|
@@ -4174,7 +4543,7 @@ proc_getmaxgroups(VALUE obj)
|
|
4174
4543
|
static VALUE
|
4175
4544
|
proc_setmaxgroups(VALUE obj, VALUE val)
|
4176
4545
|
{
|
4177
|
-
|
4546
|
+
int ngroups = FIX2UINT(val);
|
4178
4547
|
|
4179
4548
|
if (ngroups > 4096)
|
4180
4549
|
ngroups = 4096;
|
@@ -4184,10 +4553,11 @@ proc_setmaxgroups(VALUE obj, VALUE val)
|
|
4184
4553
|
return INT2FIX(maxgroups);
|
4185
4554
|
}
|
4186
4555
|
|
4556
|
+
#if defined(HAVE_DAEMON) || (defined(HAVE_FORK) && defined(HAVE_SETSID))
|
4187
4557
|
/*
|
4188
4558
|
* call-seq:
|
4189
|
-
* Process.daemon()
|
4190
|
-
* Process.daemon(nochdir=nil,noclose=nil)
|
4559
|
+
* Process.daemon() -> 0
|
4560
|
+
* Process.daemon(nochdir=nil,noclose=nil) -> 0
|
4191
4561
|
*
|
4192
4562
|
* Detach the process from controlling terminal and run in
|
4193
4563
|
* the background as system daemon. Unless the argument
|
@@ -4195,15 +4565,14 @@ proc_setmaxgroups(VALUE obj, VALUE val)
|
|
4195
4565
|
* working directory to the root ("/"). Unless the argument
|
4196
4566
|
* noclose is true, daemon() will redirect standard input,
|
4197
4567
|
* standard output and standard error to /dev/null.
|
4568
|
+
* Return zero on success, or raise one of Errno::*.
|
4198
4569
|
*/
|
4199
4570
|
|
4200
4571
|
static VALUE
|
4201
4572
|
proc_daemon(int argc, VALUE *argv)
|
4202
4573
|
{
|
4203
4574
|
VALUE nochdir, noclose;
|
4204
|
-
#if defined(HAVE_DAEMON) || defined(HAVE_FORK)
|
4205
4575
|
int n;
|
4206
|
-
#endif
|
4207
4576
|
|
4208
4577
|
rb_secure(2);
|
4209
4578
|
rb_scan_args(argc, argv, "02", &nochdir, &noclose);
|
@@ -4218,11 +4587,11 @@ proc_daemon(int argc, VALUE *argv)
|
|
4218
4587
|
#elif defined(HAVE_FORK)
|
4219
4588
|
switch (rb_fork(0, 0, 0, Qnil)) {
|
4220
4589
|
case -1:
|
4221
|
-
|
4590
|
+
rb_sys_fail("daemon");
|
4222
4591
|
case 0:
|
4223
4592
|
break;
|
4224
4593
|
default:
|
4225
|
-
_exit(
|
4594
|
+
_exit(EXIT_SUCCESS);
|
4226
4595
|
}
|
4227
4596
|
|
4228
4597
|
proc_setsid();
|
@@ -4230,11 +4599,11 @@ proc_daemon(int argc, VALUE *argv)
|
|
4230
4599
|
/* must not be process-leader */
|
4231
4600
|
switch (rb_fork(0, 0, 0, Qnil)) {
|
4232
4601
|
case -1:
|
4233
|
-
|
4602
|
+
rb_sys_fail("daemon");
|
4234
4603
|
case 0:
|
4235
4604
|
break;
|
4236
4605
|
default:
|
4237
|
-
_exit(
|
4606
|
+
_exit(EXIT_SUCCESS);
|
4238
4607
|
}
|
4239
4608
|
|
4240
4609
|
if (!RTEST(nochdir))
|
@@ -4248,10 +4617,11 @@ proc_daemon(int argc, VALUE *argv)
|
|
4248
4617
|
(void)close (n);
|
4249
4618
|
}
|
4250
4619
|
return INT2FIX(0);
|
4251
|
-
#else
|
4252
|
-
rb_notimplement();
|
4253
4620
|
#endif
|
4254
4621
|
}
|
4622
|
+
#else
|
4623
|
+
#define proc_daemon rb_f_notimplement
|
4624
|
+
#endif
|
4255
4625
|
|
4256
4626
|
/********************************************************************
|
4257
4627
|
*
|
@@ -4263,7 +4633,7 @@ proc_daemon(int argc, VALUE *argv)
|
|
4263
4633
|
*
|
4264
4634
|
*/
|
4265
4635
|
|
4266
|
-
static
|
4636
|
+
static rb_gid_t SAVED_GROUP_ID = -1;
|
4267
4637
|
|
4268
4638
|
#ifdef BROKEN_SETREGID
|
4269
4639
|
int
|
@@ -4282,7 +4652,7 @@ setregid(rb_gid_t rgid, rb_gid_t egid)
|
|
4282
4652
|
|
4283
4653
|
/*
|
4284
4654
|
* call-seq:
|
4285
|
-
* Process::GID.change_privilege(integer)
|
4655
|
+
* Process::GID.change_privilege(integer) -> fixnum
|
4286
4656
|
*
|
4287
4657
|
* Change the current process's real and effective group ID to that
|
4288
4658
|
* specified by _integer_. Returns the new group ID. Not
|
@@ -4435,9 +4805,9 @@ p_gid_change_privilege(VALUE obj, VALUE id)
|
|
4435
4805
|
|
4436
4806
|
/*
|
4437
4807
|
* call-seq:
|
4438
|
-
* Process.euid
|
4439
|
-
* Process::UID.eid
|
4440
|
-
* Process::Sys.geteuid
|
4808
|
+
* Process.euid -> fixnum
|
4809
|
+
* Process::UID.eid -> fixnum
|
4810
|
+
* Process::Sys.geteuid -> fixnum
|
4441
4811
|
*
|
4442
4812
|
* Returns the effective user ID for this process.
|
4443
4813
|
*
|
@@ -4451,7 +4821,7 @@ proc_geteuid(VALUE obj)
|
|
4451
4821
|
return UIDT2NUM(euid);
|
4452
4822
|
}
|
4453
4823
|
|
4454
|
-
|
4824
|
+
#if defined(HAVE_SETRESUID) || defined(HAVE_SETREUID) || defined(HAVE_SETEUID) || defined(HAVE_SETUID) || defined(_POSIX_SAVED_IDS)
|
4455
4825
|
/*
|
4456
4826
|
* call-seq:
|
4457
4827
|
* Process.euid= integer
|
@@ -4468,7 +4838,7 @@ proc_seteuid(VALUE obj, VALUE euid)
|
|
4468
4838
|
check_uid_switch();
|
4469
4839
|
|
4470
4840
|
uid = NUM2UIDT(euid);
|
4471
|
-
#if defined(HAVE_SETRESUID)
|
4841
|
+
#if defined(HAVE_SETRESUID)
|
4472
4842
|
if (setresuid(-1, uid, -1) < 0) rb_sys_fail(0);
|
4473
4843
|
#elif defined HAVE_SETREUID
|
4474
4844
|
if (setreuid(-1, uid) < 0) rb_sys_fail(0);
|
@@ -4486,6 +4856,13 @@ proc_seteuid(VALUE obj, VALUE euid)
|
|
4486
4856
|
#endif
|
4487
4857
|
return euid;
|
4488
4858
|
}
|
4859
|
+
#endif
|
4860
|
+
|
4861
|
+
#if defined(HAVE_SETRESUID) || defined(HAVE_SETREUID) || defined(HAVE_SETEUID) || defined(HAVE_SETUID)
|
4862
|
+
#define proc_seteuid_m proc_seteuid
|
4863
|
+
#else
|
4864
|
+
#define proc_seteuid_m rb_f_notimplement
|
4865
|
+
#endif
|
4489
4866
|
|
4490
4867
|
static rb_uid_t
|
4491
4868
|
rb_seteuid_core(rb_uid_t euid)
|
@@ -4496,7 +4873,7 @@ rb_seteuid_core(rb_uid_t euid)
|
|
4496
4873
|
|
4497
4874
|
uid = getuid();
|
4498
4875
|
|
4499
|
-
#if defined(HAVE_SETRESUID)
|
4876
|
+
#if defined(HAVE_SETRESUID)
|
4500
4877
|
if (uid != euid) {
|
4501
4878
|
if (setresuid(-1,euid,euid) < 0) rb_sys_fail(0);
|
4502
4879
|
SAVED_USER_ID = euid;
|
@@ -4524,8 +4901,8 @@ rb_seteuid_core(rb_uid_t euid)
|
|
4524
4901
|
|
4525
4902
|
/*
|
4526
4903
|
* call-seq:
|
4527
|
-
* Process::UID.grant_privilege(integer)
|
4528
|
-
* Process::UID.eid= integer
|
4904
|
+
* Process::UID.grant_privilege(integer) -> fixnum
|
4905
|
+
* Process::UID.eid= integer -> fixnum
|
4529
4906
|
*
|
4530
4907
|
* Set the effective user ID, and if possible, the saved user ID of
|
4531
4908
|
* the process to the given _integer_. Returns the new
|
@@ -4546,9 +4923,9 @@ p_uid_grant_privilege(VALUE obj, VALUE id)
|
|
4546
4923
|
|
4547
4924
|
/*
|
4548
4925
|
* call-seq:
|
4549
|
-
* Process.egid
|
4550
|
-
* Process::GID.eid
|
4551
|
-
* Process::Sys.geteid
|
4926
|
+
* Process.egid -> fixnum
|
4927
|
+
* Process::GID.eid -> fixnum
|
4928
|
+
* Process::Sys.geteid -> fixnum
|
4552
4929
|
*
|
4553
4930
|
* Returns the effective group ID for this process. Not available on
|
4554
4931
|
* all platforms.
|
@@ -4564,10 +4941,10 @@ proc_getegid(VALUE obj)
|
|
4564
4941
|
return GIDT2NUM(egid);
|
4565
4942
|
}
|
4566
4943
|
|
4567
|
-
|
4944
|
+
#if defined(HAVE_SETRESGID) || defined(HAVE_SETREGID) || defined(HAVE_SETEGID) || defined(HAVE_SETGID) || defined(_POSIX_SAVED_IDS)
|
4568
4945
|
/*
|
4569
4946
|
* call-seq:
|
4570
|
-
* Process.egid = fixnum
|
4947
|
+
* Process.egid = fixnum -> fixnum
|
4571
4948
|
*
|
4572
4949
|
* Sets the effective group ID for this process. Not available on all
|
4573
4950
|
* platforms.
|
@@ -4581,7 +4958,7 @@ proc_setegid(VALUE obj, VALUE egid)
|
|
4581
4958
|
check_gid_switch();
|
4582
4959
|
|
4583
4960
|
gid = NUM2GIDT(egid);
|
4584
|
-
#if defined(HAVE_SETRESGID)
|
4961
|
+
#if defined(HAVE_SETRESGID)
|
4585
4962
|
if (setresgid(-1, gid, -1) < 0) rb_sys_fail(0);
|
4586
4963
|
#elif defined HAVE_SETREGID
|
4587
4964
|
if (setregid(-1, gid) < 0) rb_sys_fail(0);
|
@@ -4599,6 +4976,13 @@ proc_setegid(VALUE obj, VALUE egid)
|
|
4599
4976
|
#endif
|
4600
4977
|
return egid;
|
4601
4978
|
}
|
4979
|
+
#endif
|
4980
|
+
|
4981
|
+
#if defined(HAVE_SETRESGID) || defined(HAVE_SETREGID) || defined(HAVE_SETEGID) || defined(HAVE_SETGID)
|
4982
|
+
#define proc_setegid_m proc_setegid
|
4983
|
+
#else
|
4984
|
+
#define proc_setegid_m rb_f_notimplement
|
4985
|
+
#endif
|
4602
4986
|
|
4603
4987
|
static rb_gid_t
|
4604
4988
|
rb_setegid_core(rb_gid_t egid)
|
@@ -4609,7 +4993,7 @@ rb_setegid_core(rb_gid_t egid)
|
|
4609
4993
|
|
4610
4994
|
gid = getgid();
|
4611
4995
|
|
4612
|
-
#if defined(HAVE_SETRESGID)
|
4996
|
+
#if defined(HAVE_SETRESGID)
|
4613
4997
|
if (gid != egid) {
|
4614
4998
|
if (setresgid(-1,egid,egid) < 0) rb_sys_fail(0);
|
4615
4999
|
SAVED_GROUP_ID = egid;
|
@@ -4637,8 +5021,8 @@ rb_setegid_core(rb_gid_t egid)
|
|
4637
5021
|
|
4638
5022
|
/*
|
4639
5023
|
* call-seq:
|
4640
|
-
* Process::GID.grant_privilege(integer)
|
4641
|
-
* Process::GID.eid = integer
|
5024
|
+
* Process::GID.grant_privilege(integer) -> fixnum
|
5025
|
+
* Process::GID.eid = integer -> fixnum
|
4642
5026
|
*
|
4643
5027
|
* Set the effective group ID, and if possible, the saved group ID of
|
4644
5028
|
* the process to the given _integer_. Returns the new
|
@@ -4659,7 +5043,7 @@ p_gid_grant_privilege(VALUE obj, VALUE id)
|
|
4659
5043
|
|
4660
5044
|
/*
|
4661
5045
|
* call-seq:
|
4662
|
-
* Process::UID.re_exchangeable?
|
5046
|
+
* Process::UID.re_exchangeable? -> true or false
|
4663
5047
|
*
|
4664
5048
|
* Returns +true+ if the real and effective user IDs of a
|
4665
5049
|
* process may be exchanged on the current platform.
|
@@ -4669,7 +5053,7 @@ p_gid_grant_privilege(VALUE obj, VALUE id)
|
|
4669
5053
|
static VALUE
|
4670
5054
|
p_uid_exchangeable(void)
|
4671
5055
|
{
|
4672
|
-
#if defined(HAVE_SETRESUID)
|
5056
|
+
#if defined(HAVE_SETRESUID)
|
4673
5057
|
return Qtrue;
|
4674
5058
|
#elif defined(HAVE_SETREUID) && !defined(OBSOLETE_SETREUID)
|
4675
5059
|
return Qtrue;
|
@@ -4681,7 +5065,7 @@ p_uid_exchangeable(void)
|
|
4681
5065
|
|
4682
5066
|
/*
|
4683
5067
|
* call-seq:
|
4684
|
-
* Process::UID.re_exchange
|
5068
|
+
* Process::UID.re_exchange -> fixnum
|
4685
5069
|
*
|
4686
5070
|
* Exchange real and effective user IDs and return the new effective
|
4687
5071
|
* user ID. Not available on all platforms.
|
@@ -4701,7 +5085,7 @@ p_uid_exchange(VALUE obj)
|
|
4701
5085
|
uid = getuid();
|
4702
5086
|
euid = geteuid();
|
4703
5087
|
|
4704
|
-
#if defined(HAVE_SETRESUID)
|
5088
|
+
#if defined(HAVE_SETRESUID)
|
4705
5089
|
if (setresuid(euid, uid, uid) < 0) rb_sys_fail(0);
|
4706
5090
|
SAVED_USER_ID = uid;
|
4707
5091
|
#elif defined(HAVE_SETREUID) && !defined(OBSOLETE_SETREUID)
|
@@ -4716,7 +5100,7 @@ p_uid_exchange(VALUE obj)
|
|
4716
5100
|
|
4717
5101
|
/*
|
4718
5102
|
* call-seq:
|
4719
|
-
* Process::GID.re_exchangeable?
|
5103
|
+
* Process::GID.re_exchangeable? -> true or false
|
4720
5104
|
*
|
4721
5105
|
* Returns +true+ if the real and effective group IDs of a
|
4722
5106
|
* process may be exchanged on the current platform.
|
@@ -4726,7 +5110,7 @@ p_uid_exchange(VALUE obj)
|
|
4726
5110
|
static VALUE
|
4727
5111
|
p_gid_exchangeable(void)
|
4728
5112
|
{
|
4729
|
-
#if defined(HAVE_SETRESGID)
|
5113
|
+
#if defined(HAVE_SETRESGID)
|
4730
5114
|
return Qtrue;
|
4731
5115
|
#elif defined(HAVE_SETREGID) && !defined(OBSOLETE_SETREGID)
|
4732
5116
|
return Qtrue;
|
@@ -4738,7 +5122,7 @@ p_gid_exchangeable(void)
|
|
4738
5122
|
|
4739
5123
|
/*
|
4740
5124
|
* call-seq:
|
4741
|
-
* Process::GID.re_exchange
|
5125
|
+
* Process::GID.re_exchange -> fixnum
|
4742
5126
|
*
|
4743
5127
|
* Exchange real and effective group IDs and return the new effective
|
4744
5128
|
* group ID. Not available on all platforms.
|
@@ -4758,7 +5142,7 @@ p_gid_exchange(VALUE obj)
|
|
4758
5142
|
gid = getgid();
|
4759
5143
|
egid = getegid();
|
4760
5144
|
|
4761
|
-
#if defined(HAVE_SETRESGID)
|
5145
|
+
#if defined(HAVE_SETRESGID)
|
4762
5146
|
if (setresgid(egid, gid, gid) < 0) rb_sys_fail(0);
|
4763
5147
|
SAVED_GROUP_ID = gid;
|
4764
5148
|
#elif defined(HAVE_SETREGID) && !defined(OBSOLETE_SETREGID)
|
@@ -4774,7 +5158,7 @@ p_gid_exchange(VALUE obj)
|
|
4774
5158
|
|
4775
5159
|
/*
|
4776
5160
|
* call-seq:
|
4777
|
-
* Process::UID.sid_available?
|
5161
|
+
* Process::UID.sid_available? -> true or false
|
4778
5162
|
*
|
4779
5163
|
* Returns +true+ if the current platform has saved user
|
4780
5164
|
* ID functionality.
|
@@ -4804,8 +5188,8 @@ p_uid_sw_ensure(rb_uid_t id)
|
|
4804
5188
|
|
4805
5189
|
/*
|
4806
5190
|
* call-seq:
|
4807
|
-
* Process::UID.switch
|
4808
|
-
* Process::UID.switch {|| block}
|
5191
|
+
* Process::UID.switch -> fixnum
|
5192
|
+
* Process::UID.switch {|| block} -> object
|
4809
5193
|
*
|
4810
5194
|
* Switch the effective and real user IDs of the current process. If
|
4811
5195
|
* a <em>block</em> is given, the user IDs will be switched back
|
@@ -4883,7 +5267,7 @@ p_uid_switch(VALUE obj)
|
|
4883
5267
|
|
4884
5268
|
/*
|
4885
5269
|
* call-seq:
|
4886
|
-
* Process::GID.sid_available?
|
5270
|
+
* Process::GID.sid_available? -> true or false
|
4887
5271
|
*
|
4888
5272
|
* Returns +true+ if the current platform has saved group
|
4889
5273
|
* ID functionality.
|
@@ -4912,8 +5296,8 @@ p_gid_sw_ensure(rb_gid_t id)
|
|
4912
5296
|
|
4913
5297
|
/*
|
4914
5298
|
* call-seq:
|
4915
|
-
* Process::GID.switch
|
4916
|
-
* Process::GID.switch {|| block}
|
5299
|
+
* Process::GID.switch -> fixnum
|
5300
|
+
* Process::GID.switch {|| block} -> object
|
4917
5301
|
*
|
4918
5302
|
* Switch the effective and real group IDs of the current process. If
|
4919
5303
|
* a <em>block</em> is given, the group IDs will be switched back
|
@@ -4926,7 +5310,7 @@ p_gid_sw_ensure(rb_gid_t id)
|
|
4926
5310
|
static VALUE
|
4927
5311
|
p_gid_switch(VALUE obj)
|
4928
5312
|
{
|
4929
|
-
|
5313
|
+
rb_gid_t gid, egid;
|
4930
5314
|
|
4931
5315
|
check_gid_switch();
|
4932
5316
|
|
@@ -4941,7 +5325,8 @@ p_gid_switch(VALUE obj)
|
|
4941
5325
|
} else {
|
4942
5326
|
return GIDT2NUM(egid);
|
4943
5327
|
}
|
4944
|
-
}
|
5328
|
+
}
|
5329
|
+
else if (egid != SAVED_GROUP_ID) {
|
4945
5330
|
proc_setegid(obj, GIDT2NUM(SAVED_GROUP_ID));
|
4946
5331
|
if (rb_block_given_p()) {
|
4947
5332
|
under_gid_switch = 1;
|
@@ -4949,7 +5334,8 @@ p_gid_switch(VALUE obj)
|
|
4949
5334
|
} else {
|
4950
5335
|
return GIDT2NUM(gid);
|
4951
5336
|
}
|
4952
|
-
}
|
5337
|
+
}
|
5338
|
+
else {
|
4953
5339
|
errno = EPERM;
|
4954
5340
|
rb_sys_fail(0);
|
4955
5341
|
}
|
@@ -4987,9 +5373,10 @@ p_gid_switch(VALUE obj)
|
|
4987
5373
|
#endif
|
4988
5374
|
|
4989
5375
|
|
5376
|
+
#if defined(HAVE_TIMES)
|
4990
5377
|
/*
|
4991
5378
|
* call-seq:
|
4992
|
-
* Process.times
|
5379
|
+
* Process.times -> aStructTms
|
4993
5380
|
*
|
4994
5381
|
* Returns a <code>Tms</code> structure (see <code>Struct::Tms</code>
|
4995
5382
|
* on page 388) that contains user and system CPU times for this
|
@@ -5002,7 +5389,6 @@ p_gid_switch(VALUE obj)
|
|
5002
5389
|
VALUE
|
5003
5390
|
rb_proc_times(VALUE obj)
|
5004
5391
|
{
|
5005
|
-
#if defined(HAVE_TIMES) && !defined(__CHECKER__)
|
5006
5392
|
const double hertz =
|
5007
5393
|
#ifdef HAVE__SC_CLK_TCK
|
5008
5394
|
(double)sysconf(_SC_CLK_TCK);
|
@@ -5025,10 +5411,10 @@ rb_proc_times(VALUE obj)
|
|
5025
5411
|
stime = DBL2NUM(buf.tms_stime / hertz),
|
5026
5412
|
cutime = DBL2NUM(buf.tms_cutime / hertz),
|
5027
5413
|
sctime = DBL2NUM(buf.tms_cstime / hertz));
|
5414
|
+
}
|
5028
5415
|
#else
|
5029
|
-
|
5416
|
+
#define rb_proc_times rb_f_notimplement
|
5030
5417
|
#endif
|
5031
|
-
}
|
5032
5418
|
|
5033
5419
|
VALUE rb_mProcess;
|
5034
5420
|
VALUE rb_mProcUID;
|
@@ -5129,13 +5515,17 @@ Init_process(void)
|
|
5129
5515
|
{
|
5130
5516
|
VALUE inf = RLIM2NUM(RLIM_INFINITY);
|
5131
5517
|
#ifdef RLIM_SAVED_MAX
|
5132
|
-
|
5133
|
-
|
5518
|
+
{
|
5519
|
+
VALUE v = RLIM_INFINITY == RLIM_SAVED_MAX ? inf : RLIM2NUM(RLIM_SAVED_MAX);
|
5520
|
+
rb_define_const(rb_mProcess, "RLIM_SAVED_MAX", v);
|
5521
|
+
}
|
5134
5522
|
#endif
|
5135
5523
|
rb_define_const(rb_mProcess, "RLIM_INFINITY", inf);
|
5136
5524
|
#ifdef RLIM_SAVED_CUR
|
5137
|
-
|
5138
|
-
|
5525
|
+
{
|
5526
|
+
VALUE v = RLIM_INFINITY == RLIM_SAVED_CUR ? inf : RLIM2NUM(RLIM_SAVED_CUR);
|
5527
|
+
rb_define_const(rb_mProcess, "RLIM_SAVED_CUR", v);
|
5528
|
+
}
|
5139
5529
|
#endif
|
5140
5530
|
}
|
5141
5531
|
#ifdef RLIMIT_CORE
|
@@ -5178,9 +5568,9 @@ Init_process(void)
|
|
5178
5568
|
rb_define_module_function(rb_mProcess, "gid", proc_getgid, 0);
|
5179
5569
|
rb_define_module_function(rb_mProcess, "gid=", proc_setgid, 1);
|
5180
5570
|
rb_define_module_function(rb_mProcess, "euid", proc_geteuid, 0);
|
5181
|
-
rb_define_module_function(rb_mProcess, "euid=",
|
5571
|
+
rb_define_module_function(rb_mProcess, "euid=", proc_seteuid_m, 1);
|
5182
5572
|
rb_define_module_function(rb_mProcess, "egid", proc_getegid, 0);
|
5183
|
-
rb_define_module_function(rb_mProcess, "egid=",
|
5573
|
+
rb_define_module_function(rb_mProcess, "egid=", proc_setegid_m, 1);
|
5184
5574
|
rb_define_module_function(rb_mProcess, "initgroups", proc_initgroups, 2);
|
5185
5575
|
rb_define_module_function(rb_mProcess, "groups", proc_getgroups, 0);
|
5186
5576
|
rb_define_module_function(rb_mProcess, "groups=", proc_setgroups, 1);
|