rubyfox-server 2.8.4.0 → 2.9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +2 -2
- data/lib/rubyfox/server/data/config/ExtensionManagerLock.txt +2 -0
- data/lib/rubyfox/server/data/config/core.xml +9 -9
- data/lib/rubyfox/server/data/config/crossdomain.xml +1 -1
- data/lib/rubyfox/server/data/config/descriptors/config_room.txt +112 -3
- data/lib/rubyfox/server/data/config/descriptors/config_server.txt +550 -73
- data/lib/rubyfox/server/data/config/descriptors/config_zone.txt +11 -2
- data/lib/rubyfox/server/data/config/descriptors/runtime_mmo.txt +74 -0
- data/lib/rubyfox/server/data/config/descriptors/runtime_room.txt +33 -4
- data/lib/rubyfox/server/data/config/descriptors/runtime_user.txt +1 -1
- data/lib/rubyfox/server/data/config/descriptors/runtime_zone.txt +37 -5
- data/lib/rubyfox/server/data/config/keystore.jks +0 -0
- data/lib/rubyfox/server/data/config/log4j.properties +5 -1
- data/lib/rubyfox/server/data/config/logParser.properties +30 -0
- data/lib/rubyfox/server/data/config/server.xml +51 -9
- data/lib/rubyfox/server/data/config/templates/templates.dat +0 -0
- data/lib/rubyfox/server/data/lib/Lib/sfs2x-lib.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpclient-4.3.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpcore-4.3.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/VERSION.txt +7576 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/README.spnego +62 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jdbcRealm.properties +72 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-annotations.xml +20 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-debug.xml +23 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-deploy.xml +62 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-https.xml +47 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ipaccess.xml +31 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jaas.xml +17 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx-remote.xml +27 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx.xml +43 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-logging.xml +36 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-lowresources.xml +22 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-monitor.xml +30 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-plus.xml +26 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy.xml +35 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-requestlog.xml +32 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-rewrite.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-setuid.xml +30 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy-proxy.xml +158 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy.xml +153 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ssl.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-started.xml +15 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-stats.xml +18 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-xinetd.xml +54 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty.conf +12 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty.xml +160 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/keystore +0 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/krb5.ini +23 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/spnego.conf +19 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/spnego.properties +1 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/webdefault.xml +540 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/asm-4.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/asm-commons-4.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/ext/.donotdelete +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jaspi/javax.security.auth.message-1.0.0.v201108011116.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.annotation-api-1.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.el-3.0.0.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-2.3.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-api-2.3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-annotations-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-continuation-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-deploy-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-http-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-io-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaas-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaspi-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jmx-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jndi-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jsp-jdt-2.3.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-plus-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-proxy-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-rewrite-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-schemas-3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-security-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlet-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlets-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-util-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-webapp-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-xml-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.activation-1.1.0.v201105071233.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.transaction-api-1.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/monitor/jetty-monitor-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/org.eclipse.jdt.core-3.8.2.v20130121.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/servlet-api-3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/jetty-setuid-java-1.0.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-linux.so +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-osx.so +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-core-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-common-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/start.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket-api-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-client-impl-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-server-impl-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax.websocket-api-1.0.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-common-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-servlet-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/license-eplv10-aslv20.html +576 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/.donotdelete +0 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/annotations.mod +17 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/client.mod +6 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/continuation.mod +6 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/debug.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/deploy.mod +15 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ext.mod +11 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/http.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/https.mod +16 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ipaccess.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jaas.mod +16 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jaspi.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jmx-remote.mod +18 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jmx.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jndi.mod +11 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jsp.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jvm.mod +23 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/logging.mod +27 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/lowresources.mod +18 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/monitor.mod +13 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn.mod +32 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_10.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_11.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_13.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_15.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_17.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_21.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_25.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_4.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_40.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_45.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_5.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_6.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_7.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_9.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/plus.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/proxy.mod +22 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/requestlog.mod +26 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/resources.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/rewrite.mod +12 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/security.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/server.mod +38 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/servlet.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/servlets.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/setuid.mod +19 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/spdy.mod +23 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ssl.mod +29 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/stats.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/webapp.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/websocket.mod +12 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/xinetd.mod +17 -0
- data/lib/rubyfox/server/data/lib/jetty/notice.html +111 -0
- data/lib/rubyfox/server/data/lib/jetty/resources/.keep +0 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/README.TXT +24 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/http.ini +7 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/https.ini +9 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/ssl.ini +19 -0
- data/lib/rubyfox/server/data/lib/jetty/start.ini +84 -0
- data/lib/rubyfox/server/data/lib/jetty/webapps/.keep +0 -0
- data/lib/rubyfox/server/data/lib/logs-analysis-app.jar +0 -0
- data/lib/rubyfox/server/data/lib/netty-3.9.0.Final.jar +0 -0
- data/lib/rubyfox/server/data/lib/scala-library.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-lib.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-util.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-api-1.7.5.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-log4j12-1.7.5.jar +0 -0
- data/lib/rubyfox/server/data/sfs2x-service +9 -9
- data/lib/rubyfox/server/data/sfs2x-service.vmoptions +1 -1
- data/lib/rubyfox/server/data/sfs2x.sh +6 -6
- data/lib/rubyfox/server/data/www/root/admin/AdminTool.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/ReleaseNotes.txt +23 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedIPs.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedUsernames.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bookmarks.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bootLog.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/connection.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/globalServerStatus.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/logsDownload.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/mMOSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/permissionsAndEvents.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomExtension.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomVariables.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeLog.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeRoomSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeUserSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeZoneSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsApplication.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsDemographics.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsExceptions.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsOverview.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsTechnology.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/systemQueueStatus.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/threadPools.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/userManagement.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneExtension.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneTraffic.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/index.html +4 -16
- data/lib/rubyfox/server/data/www/root/admin/modules/Analytics/Analytics.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/BanManager/BanManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/BlueBoxMonitor/BlueBoxMonitor.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/Dashboard/Dashboard.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/ExtensionManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/icon.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/LicenseManager/LicenseManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/LogViewer/LogViewer.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ServerConfigurator/ServerConfigurator.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ZoneConfigurator/ZoneConfigurator.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ZoneMonitor/ZoneMonitor.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/config.xml +1 -0
- data/lib/rubyfox/server/data/www/root/favicon.ico +0 -0
- data/lib/rubyfox/server/data/www/root/favicon.png +0 -0
- data/lib/rubyfox/server/data/www/sfs2x-ws.war +0 -0
- data/lib/rubyfox/server/data/www/sfs2x-ws.xml +30 -0
- data/lib/rubyfox/server/version.rb +1 -1
- data/rubyfox-server.gemspec +1 -0
- metadata +171 -48
- data/.rvmrc +0 -1
- data/lib/rubyfox/server/data/config/jetty/jetty.xml +0 -214
- data/lib/rubyfox/server/data/config/jetty/realm.properties +0 -21
- data/lib/rubyfox/server/data/config/jetty/webdefault.xml +0 -410
- data/lib/rubyfox/server/data/config/myprop.properties +0 -5
- data/lib/rubyfox/server/data/data/bannedusers/users.bin +0 -0
- data/lib/rubyfox/server/data/data/buddylists/BasicExamples/7364666773646667 +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/ant-1.6.5.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/core-3.1.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jetty-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jetty-util-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-glassfish-2.1.v20091210.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-jetty-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-api-2.1-glassfish-2.1.v20091210.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/servlet-api-2.5-20081211.jar +0 -0
- data/lib/rubyfox/server/data/lib/extras/slf4j-jdk14-1.5.10.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpclient-4.0.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpcore-4.0.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/COPYING.txt +0 -504
- data/lib/rubyfox/server/data/lib/jconsole/bug_test_case.py +0 -49
- data/lib/rubyfox/server/data/lib/jconsole/console$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/console.py +0 -439
- data/lib/rubyfox/server/data/lib/jconsole/history$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/history.py +0 -82
- data/lib/rubyfox/server/data/lib/jconsole/history_test_case.py +0 -133
- data/lib/rubyfox/server/data/lib/jconsole/introspect$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/introspect.py +0 -373
- data/lib/rubyfox/server/data/lib/jconsole/introspect_test_case.py +0 -19
- data/lib/rubyfox/server/data/lib/jconsole/issue_17_test_case.py +0 -36
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect.py +0 -316
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect_test_case.py +0 -107
- data/lib/rubyfox/server/data/lib/jconsole/popup$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/popup.py +0 -178
- data/lib/rubyfox/server/data/lib/jconsole/run_tests.py +0 -8
- data/lib/rubyfox/server/data/lib/jconsole/static_test_case.py +0 -36
- data/lib/rubyfox/server/data/lib/jconsole/testcase.py +0 -38
- data/lib/rubyfox/server/data/lib/jconsole/tip$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/tip.py +0 -47
- data/lib/rubyfox/server/data/lib/slf4j-api-1.5.10.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-log4j12.jar +0 -0
- data/lib/rubyfox/server/data/lib/ws-engine.jar +0 -0
- data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
- data/lib/rubyfox/server/data/www/root/admin/AdminTool.html +0 -120
Binary file
|
@@ -1,82 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
history.py - Handles the History of the jython console
|
3
|
-
Copyright (C) 2001 Carlos Quiroz
|
4
|
-
|
5
|
-
This program is free software; you can redistribute it and/or
|
6
|
-
modify it under the terms of the GNU General Public License
|
7
|
-
as published by the Free Software Foundation; either version 2
|
8
|
-
of the License, or any later version.
|
9
|
-
|
10
|
-
This program is distributed in the hope that it will be useful,
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
GNU General Public License for more details.
|
14
|
-
|
15
|
-
You should have received a copy of the GNU General Public License
|
16
|
-
along with this program; if not, write to the Free Software
|
17
|
-
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
18
|
-
"""
|
19
|
-
|
20
|
-
from java.lang import System, Runtime
|
21
|
-
from java.lang import Runnable, Thread
|
22
|
-
|
23
|
-
class History(Runnable):
|
24
|
-
"""
|
25
|
-
Command line history
|
26
|
-
"""
|
27
|
-
|
28
|
-
default_history_file = System.getProperty("user.home") + '/.jythonconsole.history'
|
29
|
-
MAX_SIZE = 200
|
30
|
-
|
31
|
-
def __init__(self, console, history_file=default_history_file):
|
32
|
-
Runtime.getRuntime().addShutdownHook(Thread(self))
|
33
|
-
|
34
|
-
self.history_file = history_file
|
35
|
-
self.history = []
|
36
|
-
self.loadHistory()
|
37
|
-
|
38
|
-
self.console = console
|
39
|
-
self.index = len(self.history) - 1
|
40
|
-
self.last = ""
|
41
|
-
|
42
|
-
def append(self, line):
|
43
|
-
if line == None or line == '\n' or len(line) == 0:
|
44
|
-
return
|
45
|
-
|
46
|
-
if line != self.last: # avoids duplicates
|
47
|
-
self.last = line
|
48
|
-
self.history.append(line)
|
49
|
-
|
50
|
-
self.index = len(self.history) - 1
|
51
|
-
|
52
|
-
def historyUp(self, event=None):
|
53
|
-
if len(self.history) > 0 and self.console.inLastLine():
|
54
|
-
self.console.replaceRow(self.history[self.index])
|
55
|
-
self.index = max(self.index - 1, 0)
|
56
|
-
|
57
|
-
def historyDown(self, event=None):
|
58
|
-
if len(self.history) > 0 and self.console.inLastLine():
|
59
|
-
if self.index == len(self.history) - 1:
|
60
|
-
self.console.replaceRow("")
|
61
|
-
else:
|
62
|
-
self.index += 1
|
63
|
-
self.console.replaceRow(self.history[self.index])
|
64
|
-
|
65
|
-
def loadHistory(self):
|
66
|
-
try:
|
67
|
-
f = open(self.history_file)
|
68
|
-
for line in f.readlines():
|
69
|
-
self.history.append(line[:-1])
|
70
|
-
f.close()
|
71
|
-
except:
|
72
|
-
pass
|
73
|
-
|
74
|
-
def saveHistory(self):
|
75
|
-
f = open(self.history_file, 'w')
|
76
|
-
for item in self.history[-self.MAX_SIZE:]:
|
77
|
-
f.write("%s\n" % item)
|
78
|
-
f.flush()
|
79
|
-
f.close()
|
80
|
-
|
81
|
-
def run(self):
|
82
|
-
self.saveHistory()
|
@@ -1,133 +0,0 @@
|
|
1
|
-
import unittest
|
2
|
-
import tempfile
|
3
|
-
from history import History
|
4
|
-
|
5
|
-
try:
|
6
|
-
True, False
|
7
|
-
except NameError:
|
8
|
-
(True, False) = (1, 0)
|
9
|
-
|
10
|
-
class MockConsole:
|
11
|
-
def replaceRow(self, text):
|
12
|
-
self.text = text
|
13
|
-
|
14
|
-
def inLastLine(self):
|
15
|
-
return True
|
16
|
-
|
17
|
-
class HistoryTestCase(unittest.TestCase):
|
18
|
-
|
19
|
-
def setUp(self):
|
20
|
-
self.console = MockConsole()
|
21
|
-
|
22
|
-
def tearDown(self):
|
23
|
-
self.console = None
|
24
|
-
|
25
|
-
def testHistoryUp(self):
|
26
|
-
h = History(self.console, tempfile.mktemp())
|
27
|
-
h.append("one")
|
28
|
-
h.append("two")
|
29
|
-
h.append("three")
|
30
|
-
|
31
|
-
h.historyUp()
|
32
|
-
self.assertEquals("three", self.console.text)
|
33
|
-
|
34
|
-
h.historyUp()
|
35
|
-
self.assertEquals("two", self.console.text)
|
36
|
-
|
37
|
-
h.historyUp()
|
38
|
-
self.assertEquals("one", self.console.text)
|
39
|
-
|
40
|
-
# history doesn't roll, just stops at the last item
|
41
|
-
h.historyUp()
|
42
|
-
self.assertEquals("one", self.console.text)
|
43
|
-
|
44
|
-
def testHistoryDown(self):
|
45
|
-
h = History(self.console,tempfile.mktemp())
|
46
|
-
h.append("one")
|
47
|
-
h.append("two")
|
48
|
-
h.append("three")
|
49
|
-
|
50
|
-
h.historyUp()
|
51
|
-
h.historyUp()
|
52
|
-
|
53
|
-
h.historyUp()
|
54
|
-
self.assertEquals("one", self.console.text)
|
55
|
-
|
56
|
-
h.historyDown()
|
57
|
-
self.assertEquals("two", self.console.text)
|
58
|
-
|
59
|
-
h.historyDown()
|
60
|
-
self.assertEquals("three", self.console.text)
|
61
|
-
|
62
|
-
h.historyDown()
|
63
|
-
self.assertEquals("", self.console.text)
|
64
|
-
|
65
|
-
# History doesn't wrap
|
66
|
-
h.historyDown()
|
67
|
-
self.assertEquals("", self.console.text)
|
68
|
-
|
69
|
-
def testSkipDuplicates(self):
|
70
|
-
h = History(self.console, tempfile.mktemp())
|
71
|
-
h.append("one")
|
72
|
-
h.append("one")
|
73
|
-
h.append("two")
|
74
|
-
h.append("two")
|
75
|
-
h.append("three")
|
76
|
-
h.append("three")
|
77
|
-
|
78
|
-
h.historyUp()
|
79
|
-
self.assertEquals("three", self.console.text)
|
80
|
-
|
81
|
-
h.historyUp()
|
82
|
-
self.assertEquals("two", self.console.text)
|
83
|
-
|
84
|
-
h.historyUp()
|
85
|
-
self.assertEquals("one", self.console.text)
|
86
|
-
|
87
|
-
def testSkipEmpty(self):
|
88
|
-
h = History(self.console, tempfile.mktemp())
|
89
|
-
size = len(h.history)
|
90
|
-
h.append("")
|
91
|
-
self.assert_(len(h.history) == size)
|
92
|
-
|
93
|
-
h.append("\n")
|
94
|
-
self.assert_(len(h.history) == size)
|
95
|
-
|
96
|
-
h.append(None)
|
97
|
-
self.assert_(len(h.history) == size)
|
98
|
-
|
99
|
-
def testLoadHistory(self):
|
100
|
-
file = tempfile.mktemp()
|
101
|
-
f = open(file, "w")
|
102
|
-
f.write("red\n")
|
103
|
-
f.write("yellow\n")
|
104
|
-
f.write("blue\n")
|
105
|
-
f.flush()
|
106
|
-
f.close()
|
107
|
-
|
108
|
-
h = History(self.console, file)
|
109
|
-
h.historyUp()
|
110
|
-
self.assertEquals("blue", self.console.text)
|
111
|
-
|
112
|
-
h.historyUp()
|
113
|
-
self.assertEquals("yellow", self.console.text)
|
114
|
-
|
115
|
-
h.historyUp()
|
116
|
-
self.assertEquals("red", self.console.text)
|
117
|
-
|
118
|
-
def testSaveHistory(self):
|
119
|
-
file = tempfile.mktemp()
|
120
|
-
|
121
|
-
h = History(self.console, file)
|
122
|
-
h.append("a")
|
123
|
-
h.append("b")
|
124
|
-
h.append("c")
|
125
|
-
h.saveHistory()
|
126
|
-
|
127
|
-
f = open(file)
|
128
|
-
self.assertEquals("a", f.readline()[:-1])
|
129
|
-
self.assertEquals("b", f.readline()[:-1])
|
130
|
-
self.assertEquals("c", f.readline()[:-1])
|
131
|
-
|
132
|
-
if __name__ == '__main__':
|
133
|
-
unittest.main()
|
Binary file
|
@@ -1,373 +0,0 @@
|
|
1
|
-
"""Provides a variety of introspective-type support functions for
|
2
|
-
things like call tips and command auto completion.
|
3
|
-
|
4
|
-
NOTE: this file is a modification of Patrick O'Brien's version 1.62
|
5
|
-
"""
|
6
|
-
|
7
|
-
from __future__ import nested_scopes
|
8
|
-
|
9
|
-
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
|
10
|
-
__cvsid__ = "$Id: introspect.py,v 1.5 2003/05/01 03:43:53 dcoleman Exp $"
|
11
|
-
__revision__ = "$Revision: 1.5 $"[11:-2]
|
12
|
-
|
13
|
-
|
14
|
-
import cStringIO
|
15
|
-
import inspect
|
16
|
-
import sys
|
17
|
-
import tokenize
|
18
|
-
import types
|
19
|
-
|
20
|
-
try:
|
21
|
-
True
|
22
|
-
except NameError:
|
23
|
-
True = 1==1
|
24
|
-
False = 1==0
|
25
|
-
|
26
|
-
def getAutoCompleteList(command='', locals=None, includeMagic=1,
|
27
|
-
includeSingle=1, includeDouble=1):
|
28
|
-
"""Return list of auto-completion options for command.
|
29
|
-
|
30
|
-
The list of options will be based on the locals namespace."""
|
31
|
-
attributes = []
|
32
|
-
# Get the proper chunk of code from the command.
|
33
|
-
root = getRoot(command, terminator='.')
|
34
|
-
try:
|
35
|
-
if locals is not None:
|
36
|
-
object = eval(root, locals)
|
37
|
-
else:
|
38
|
-
object = eval(root)
|
39
|
-
except:
|
40
|
-
pass
|
41
|
-
else:
|
42
|
-
attributes = getAttributeNames(object, includeMagic,
|
43
|
-
includeSingle, includeDouble)
|
44
|
-
return attributes
|
45
|
-
|
46
|
-
def getAttributeNames(object, includeMagic=1, includeSingle=1,
|
47
|
-
includeDouble=1):
|
48
|
-
"""Return list of unique attributes, including inherited, for object."""
|
49
|
-
attributes = []
|
50
|
-
dict = {}
|
51
|
-
if not hasattrAlwaysReturnsTrue(object):
|
52
|
-
# Add some attributes that don't always get picked up. If
|
53
|
-
# they don't apply, they'll get filtered out at the end.
|
54
|
-
attributes += ['__bases__', '__class__', '__dict__', '__name__',
|
55
|
-
'func_closure', 'func_code', 'func_defaults',
|
56
|
-
'func_dict', 'func_doc', 'func_globals', 'func_name']
|
57
|
-
if includeMagic:
|
58
|
-
try: attributes += object._getAttributeNames()
|
59
|
-
except: pass
|
60
|
-
# Get all attribute names.
|
61
|
-
attrdict = getAllAttributeNames(object)
|
62
|
-
for attrlist in attrdict.values():
|
63
|
-
attributes += attrlist
|
64
|
-
# Remove duplicates from the attribute list.
|
65
|
-
for item in attributes:
|
66
|
-
dict[item] = None
|
67
|
-
attributes = dict.keys()
|
68
|
-
attributes.sort(lambda x, y: cmp(x.upper(), y.upper()))
|
69
|
-
if not includeSingle:
|
70
|
-
attributes = filter(lambda item: item[0]!='_' \
|
71
|
-
or item[1]=='_', attributes)
|
72
|
-
if not includeDouble:
|
73
|
-
attributes = filter(lambda item: item[:2]!='__', attributes)
|
74
|
-
# Make sure we haven't picked up any bogus attributes somehow.
|
75
|
-
attributes = [attribute for attribute in attributes \
|
76
|
-
if hasattr(object, attribute)]
|
77
|
-
return attributes
|
78
|
-
|
79
|
-
def hasattrAlwaysReturnsTrue(object):
|
80
|
-
return hasattr(object, 'bogu5_123_aTTri8ute')
|
81
|
-
|
82
|
-
def getAllAttributeNames(object):
|
83
|
-
"""Return dict of all attributes, including inherited, for an object.
|
84
|
-
|
85
|
-
Recursively walk through a class and all base classes.
|
86
|
-
"""
|
87
|
-
attrdict = {} # (object, technique, count): [list of attributes]
|
88
|
-
# !!!
|
89
|
-
# Do Not use hasattr() as a test anywhere in this function,
|
90
|
-
# because it is unreliable with remote objects: xmlrpc, soap, etc.
|
91
|
-
# They always return true for hasattr().
|
92
|
-
# !!!
|
93
|
-
try:
|
94
|
-
# Yes, this can fail if object is an instance of a class with
|
95
|
-
# __str__ (or __repr__) having a bug or raising an
|
96
|
-
# exception. :-(
|
97
|
-
key = str(object)
|
98
|
-
except:
|
99
|
-
key = 'anonymous'
|
100
|
-
# Wake up sleepy objects - a hack for ZODB objects in "ghost" state.
|
101
|
-
wakeupcall = dir(object)
|
102
|
-
del wakeupcall
|
103
|
-
# Get attributes available through the normal convention.
|
104
|
-
attributes = dir(object)
|
105
|
-
attrdict[(key, 'dir', len(attributes))] = attributes
|
106
|
-
# Get attributes from the object's dictionary, if it has one.
|
107
|
-
try:
|
108
|
-
attributes = object.__dict__.keys()
|
109
|
-
attributes.sort()
|
110
|
-
except: # Must catch all because object might have __getattr__.
|
111
|
-
pass
|
112
|
-
else:
|
113
|
-
attrdict[(key, '__dict__', len(attributes))] = attributes
|
114
|
-
# For a class instance, get the attributes for the class.
|
115
|
-
try:
|
116
|
-
klass = object.__class__
|
117
|
-
except: # Must catch all because object might have __getattr__.
|
118
|
-
pass
|
119
|
-
else:
|
120
|
-
if klass is object:
|
121
|
-
# Break a circular reference. This happens with extension
|
122
|
-
# classes.
|
123
|
-
pass
|
124
|
-
else:
|
125
|
-
attrdict.update(getAllAttributeNames(klass))
|
126
|
-
# Also get attributes from any and all parent classes.
|
127
|
-
try:
|
128
|
-
bases = object.__bases__
|
129
|
-
except: # Must catch all because object might have __getattr__.
|
130
|
-
pass
|
131
|
-
else:
|
132
|
-
if isinstance(bases, types.TupleType):
|
133
|
-
for base in bases:
|
134
|
-
if type(base) is types.TypeType:
|
135
|
-
# Break a circular reference. Happens in Python 2.2.
|
136
|
-
pass
|
137
|
-
if type(base) is type(type):
|
138
|
-
# Break a circular reference. Happens in Jython 2.2b1.
|
139
|
-
pass
|
140
|
-
else:
|
141
|
-
attrdict.update(getAllAttributeNames(base))
|
142
|
-
return attrdict
|
143
|
-
|
144
|
-
def getCallTip(command='', locals=None):
|
145
|
-
"""For a command, return a tuple of object name, argspec, tip text.
|
146
|
-
|
147
|
-
The call tip information will be based on the locals namespace."""
|
148
|
-
calltip = ('', '', '') # object name, argspec, tip text.
|
149
|
-
# Get the proper chunk of code from the command.
|
150
|
-
root = getRoot(command, terminator='(')
|
151
|
-
try:
|
152
|
-
if locals is not None:
|
153
|
-
object = eval(root, locals)
|
154
|
-
else:
|
155
|
-
object = eval(root)
|
156
|
-
except:
|
157
|
-
return calltip
|
158
|
-
name = ''
|
159
|
-
object, dropSelf = getBaseObject(object)
|
160
|
-
try:
|
161
|
-
name = object.__name__
|
162
|
-
except AttributeError:
|
163
|
-
pass
|
164
|
-
tip1 = ''
|
165
|
-
argspec = ''
|
166
|
-
if inspect.isbuiltin(object):
|
167
|
-
# Builtin functions don't have an argspec that we can get.
|
168
|
-
pass
|
169
|
-
elif inspect.isfunction(object):
|
170
|
-
# tip1 is a string like: "getCallTip(command='', locals=None)"
|
171
|
-
argspec = apply(inspect.formatargspec, inspect.getargspec(object))
|
172
|
-
if dropSelf:
|
173
|
-
# The first parameter to a method is a reference to an
|
174
|
-
# instance, usually coded as "self", and is usually passed
|
175
|
-
# automatically by Python; therefore we want to drop it.
|
176
|
-
temp = argspec.split(',')
|
177
|
-
if len(temp) == 1: # No other arguments.
|
178
|
-
argspec = '()'
|
179
|
-
else: # Drop the first argument.
|
180
|
-
argspec = '(' + ','.join(temp[1:]).lstrip()
|
181
|
-
tip1 = name + argspec
|
182
|
-
doc = ''
|
183
|
-
if callable(object):
|
184
|
-
doc = inspect.getdoc(object)
|
185
|
-
if doc:
|
186
|
-
# tip2 is the first separated line of the docstring, like:
|
187
|
-
# "Return call tip text for a command."
|
188
|
-
# tip3 is the rest of the docstring, like:
|
189
|
-
# "The call tip information will be based on ... <snip>
|
190
|
-
firstline = doc.split('\n')[0].lstrip()
|
191
|
-
if tip1 == firstline:
|
192
|
-
tip1 = ''
|
193
|
-
else:
|
194
|
-
tip1 += '\n\n'
|
195
|
-
docpieces = doc.split('\n\n')
|
196
|
-
tip2 = docpieces[0]
|
197
|
-
tip3 = '\n\n'.join(docpieces[1:])
|
198
|
-
tip = '%s%s\n\n%s' % (tip1, tip2, tip3)
|
199
|
-
else:
|
200
|
-
tip = tip1
|
201
|
-
calltip = (name, argspec[1:-1], tip.strip())
|
202
|
-
return calltip
|
203
|
-
|
204
|
-
def getRoot(command, terminator=None):
|
205
|
-
"""Return the rightmost root portion of an arbitrary Python command.
|
206
|
-
|
207
|
-
Return only the root portion that can be eval()'d without side
|
208
|
-
effects. The command would normally terminate with a '(' or
|
209
|
-
'.'. The terminator and anything after the terminator will be
|
210
|
-
dropped."""
|
211
|
-
command = command.split('\n')[-1]
|
212
|
-
if command.startswith(sys.ps2):
|
213
|
-
command = command[len(sys.ps2):]
|
214
|
-
command = command.lstrip()
|
215
|
-
command = rtrimTerminus(command, terminator)
|
216
|
-
tokens = getTokens(command)
|
217
|
-
if not tokens:
|
218
|
-
return ''
|
219
|
-
if tokens[-1][0] is tokenize.ENDMARKER:
|
220
|
-
# Remove the end marker.
|
221
|
-
del tokens[-1]
|
222
|
-
if not tokens:
|
223
|
-
return ''
|
224
|
-
if terminator == '.' and \
|
225
|
-
(tokens[-1][1] <> '.' or tokens[-1][0] is not tokenize.OP):
|
226
|
-
# Trap decimals in numbers, versus the dot operator.
|
227
|
-
return ''
|
228
|
-
else:
|
229
|
-
# Strip off the terminator.
|
230
|
-
if terminator and command.endswith(terminator):
|
231
|
-
size = 0 - len(terminator)
|
232
|
-
command = command[:size]
|
233
|
-
command = command.rstrip()
|
234
|
-
tokens = getTokens(command)
|
235
|
-
tokens.reverse()
|
236
|
-
line = ''
|
237
|
-
start = None
|
238
|
-
prefix = ''
|
239
|
-
laststring = '.'
|
240
|
-
emptyTypes = ('[]', '()', '{}')
|
241
|
-
for token in tokens:
|
242
|
-
tokentype = token[0]
|
243
|
-
tokenstring = token[1]
|
244
|
-
line = token[4]
|
245
|
-
if tokentype is tokenize.ENDMARKER:
|
246
|
-
continue
|
247
|
-
if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
|
248
|
-
and laststring != '.':
|
249
|
-
# We've reached something that's not part of the root.
|
250
|
-
if prefix and line[token[3][1]] != ' ':
|
251
|
-
# If it doesn't have a space after it, remove the prefix.
|
252
|
-
prefix = ''
|
253
|
-
break
|
254
|
-
if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \
|
255
|
-
or (tokentype is tokenize.OP and tokenstring == '.'):
|
256
|
-
if prefix:
|
257
|
-
# The prefix isn't valid because it comes after a dot.
|
258
|
-
prefix = ''
|
259
|
-
break
|
260
|
-
else:
|
261
|
-
# start represents the last known good point in the line.
|
262
|
-
start = token[2][1]
|
263
|
-
elif len(tokenstring) == 1 and tokenstring in ('[({])}'):
|
264
|
-
# Remember, we're working backwords.
|
265
|
-
# So prefix += tokenstring would be wrong.
|
266
|
-
if prefix in emptyTypes and tokenstring in ('[({'):
|
267
|
-
# We've already got an empty type identified so now we
|
268
|
-
# are in a nested situation and we can break out with
|
269
|
-
# what we've got.
|
270
|
-
break
|
271
|
-
else:
|
272
|
-
prefix = tokenstring + prefix
|
273
|
-
else:
|
274
|
-
# We've reached something that's not part of the root.
|
275
|
-
break
|
276
|
-
laststring = tokenstring
|
277
|
-
if start is None:
|
278
|
-
start = len(line)
|
279
|
-
root = line[start:]
|
280
|
-
if prefix in emptyTypes:
|
281
|
-
# Empty types are safe to be eval()'d and introspected.
|
282
|
-
root = prefix + root
|
283
|
-
return root
|
284
|
-
|
285
|
-
def getTokens(command):
|
286
|
-
"""Return list of token tuples for command."""
|
287
|
-
command = str(command) # In case the command is unicode, which fails.
|
288
|
-
f = cStringIO.StringIO(command)
|
289
|
-
# tokens is a list of token tuples, each looking like:
|
290
|
-
# (type, string, (srow, scol), (erow, ecol), line)
|
291
|
-
tokens = []
|
292
|
-
# Can't use list comprehension:
|
293
|
-
# tokens = [token for token in tokenize.generate_tokens(f.readline)]
|
294
|
-
# because of need to append as much as possible before TokenError.
|
295
|
-
try:
|
296
|
-
## This code wasn't backward compatible with Python 2.1.3.
|
297
|
-
##
|
298
|
-
## for token in tokenize.generate_tokens(f.readline):
|
299
|
-
## tokens.append(token)
|
300
|
-
|
301
|
-
# This works with Python 2.1.3 (with nested_scopes).
|
302
|
-
def eater(*args):
|
303
|
-
tokens.append(args)
|
304
|
-
tokenize.tokenize_loop(f.readline, eater)
|
305
|
-
except tokenize.TokenError:
|
306
|
-
# This is due to a premature EOF, which we expect since we are
|
307
|
-
# feeding in fragments of Python code.
|
308
|
-
pass
|
309
|
-
return tokens
|
310
|
-
|
311
|
-
def rtrimTerminus(command, terminator=None):
|
312
|
-
"""Return command minus anything that follows the final terminator."""
|
313
|
-
if terminator:
|
314
|
-
pieces = command.split(terminator)
|
315
|
-
if len(pieces) > 1:
|
316
|
-
command = terminator.join(pieces[:-1]) + terminator
|
317
|
-
return command
|
318
|
-
|
319
|
-
def getBaseObject(object):
|
320
|
-
"""Return base object and dropSelf indicator for an object."""
|
321
|
-
if inspect.isbuiltin(object):
|
322
|
-
# Builtin functions don't have an argspec that we can get.
|
323
|
-
dropSelf = 0
|
324
|
-
elif inspect.ismethod(object):
|
325
|
-
# Get the function from the object otherwise
|
326
|
-
# inspect.getargspec() complains that the object isn't a
|
327
|
-
# Python function.
|
328
|
-
try:
|
329
|
-
if object.im_self is None:
|
330
|
-
# This is an unbound method so we do not drop self
|
331
|
-
# from the argspec, since an instance must be passed
|
332
|
-
# as the first arg.
|
333
|
-
dropSelf = 0
|
334
|
-
else:
|
335
|
-
dropSelf = 1
|
336
|
-
object = object.im_func
|
337
|
-
except AttributeError:
|
338
|
-
dropSelf = 0
|
339
|
-
elif inspect.isclass(object):
|
340
|
-
# Get the __init__ method function for the class.
|
341
|
-
constructor = getConstructor(object)
|
342
|
-
if constructor is not None:
|
343
|
-
object = constructor
|
344
|
-
dropSelf = 1
|
345
|
-
else:
|
346
|
-
dropSelf = 0
|
347
|
-
elif callable(object):
|
348
|
-
# Get the __call__ method instead.
|
349
|
-
try:
|
350
|
-
call_method = object.__call__.im_func
|
351
|
-
if call_method.__name__ == '__call__':
|
352
|
-
# unbound jython method end up here, example: string.index(
|
353
|
-
dropSelf = 0
|
354
|
-
else:
|
355
|
-
object = call_method
|
356
|
-
dropSelf = 1
|
357
|
-
except AttributeError:
|
358
|
-
# unbound python methods end up here
|
359
|
-
dropSelf = 0
|
360
|
-
else:
|
361
|
-
dropSelf = 0
|
362
|
-
return object, dropSelf
|
363
|
-
|
364
|
-
def getConstructor(object):
|
365
|
-
"""Return constructor for class object, or None if there isn't one."""
|
366
|
-
try:
|
367
|
-
return object.__init__.im_func
|
368
|
-
except AttributeError:
|
369
|
-
for base in object.__bases__:
|
370
|
-
constructor = getConstructor(base)
|
371
|
-
if constructor is not None:
|
372
|
-
return constructor
|
373
|
-
return None
|