Browse files

Finished demos from my IronRuby RailsConf 2009 talk

  • Loading branch information...
1 parent 60bcce3 commit 9cd83e968cfff828846556dc45ee7122a75dfce7 @jschementi committed May 8, 2009
Showing with 23,646 additions and 8,475 deletions.
  1. +10 −0 1-basics/dotnet-script.rb
  2. +16 −0 1-basics/excel-com.rb
  3. 0 {scaffold → 2-rails}/README
  4. 0 {scaffold → 2-rails}/Rakefile
  5. 0 {scaffold → 2-rails}/app/controllers/application_controller.rb
  6. 0 {scaffold → 2-rails}/app/controllers/posts_controller.rb
  7. 0 {helloworld/rails → 2-rails}/app/controllers/say_controller.rb
  8. 0 {scaffold → 2-rails}/app/helpers/application_helper.rb
  9. 0 {scaffold → 2-rails}/app/helpers/posts_helper.rb
  10. 0 {helloworld/rails → 2-rails}/app/helpers/say_helper.rb
  11. 0 {scaffold → 2-rails}/app/models/post.rb
  12. 0 {scaffold → 2-rails}/app/views/layouts/posts.html.erb
  13. 0 {scaffold → 2-rails}/app/views/posts/edit.html.erb
  14. 0 {scaffold → 2-rails}/app/views/posts/index.html.erb
  15. 0 {scaffold → 2-rails}/app/views/posts/new.html.erb
  16. 0 {scaffold → 2-rails}/app/views/posts/show.html.erb
  17. 0 {scaffold → 2-rails}/config/boot.rb
  18. +17 −0 2-rails/config/database.yml
  19. 0 {scaffold → 2-rails}/config/environment.rb
  20. 0 {scaffold → 2-rails}/config/environments/development.rb
  21. 0 {scaffold → 2-rails}/config/environments/production.rb
  22. 0 {scaffold → 2-rails}/config/environments/test.rb
  23. 0 {scaffold → 2-rails}/config/initializers/backtrace_silencers.rb
  24. 0 {scaffold → 2-rails}/config/initializers/inflections.rb
  25. 0 {scaffold → 2-rails}/config/initializers/mime_types.rb
  26. 0 {scaffold → 2-rails}/config/initializers/new_rails_defaults.rb
  27. 0 {scaffold → 2-rails}/config/initializers/session_store.rb
  28. 0 {scaffold → 2-rails}/config/locales/en.yml
  29. 0 {scaffold → 2-rails}/config/routes.rb
  30. 0 {scaffold → 2-rails}/db/migrate/.20090501065355_create_posts.rb.swp
  31. 0 {scaffold → 2-rails}/db/migrate/20090501065355_create_posts.rb
  32. 0 {scaffold → 2-rails}/db/schema.rb
  33. 0 {scaffold → 2-rails}/doc/README_FOR_APP
  34. +74 −0 2-rails/log/development.log
  35. 0 {scaffold → 2-rails}/public/404.html
  36. 0 {scaffold → 2-rails}/public/422.html
  37. 0 {scaffold → 2-rails}/public/500.html
  38. 0 {scaffold → 2-rails}/public/favicon.ico
  39. 0 {scaffold → 2-rails}/public/images/rails.png
  40. 0 {scaffold → 2-rails}/public/index.html
  41. 0 {scaffold → 2-rails}/public/javascripts/application.js
  42. 0 {scaffold → 2-rails}/public/javascripts/controls.js
  43. 0 {scaffold → 2-rails}/public/javascripts/dragdrop.js
  44. 0 {scaffold → 2-rails}/public/javascripts/effects.js
  45. 0 {scaffold → 2-rails}/public/javascripts/prototype.js
  46. 0 {scaffold → 2-rails}/public/robots.txt
  47. 0 {scaffold → 2-rails}/public/stylesheets/scaffold.css
  48. 0 {scaffold → 2-rails}/script/about
  49. 0 {scaffold → 2-rails}/script/console
  50. 0 {scaffold → 2-rails}/script/dbconsole
  51. 0 {scaffold → 2-rails}/script/destroy
  52. 0 {scaffold → 2-rails}/script/generate
  53. 0 {scaffold → 2-rails}/script/performance/benchmarker
  54. 0 {scaffold → 2-rails}/script/performance/profiler
  55. 0 {scaffold → 2-rails}/script/plugin
  56. 0 {scaffold → 2-rails}/script/runner
  57. 0 {scaffold → 2-rails}/script/server
  58. +2 −0 2-rails/start.bat
  59. 0 {scaffold → 2-rails}/test/fixtures/posts.yml
  60. 0 {scaffold → 2-rails}/test/functional/posts_controller_test.rb
  61. 0 {scaffold → 2-rails}/test/performance/browsing_test.rb
  62. 0 {scaffold → 2-rails}/test/test_helper.rb
  63. 0 {scaffold → 2-rails}/test/unit/helpers/posts_helper_test.rb
  64. 0 {scaffold → 2-rails}/test/unit/post_test.rb
  65. 0 {helloworld/sinatra → 3-sinatra}/app.rb
  66. 0 {helloworld/sinatra → 3-sinatra}/config.ru
  67. +2 −0 3-sinatra/start.bat
  68. +1 −0 3-sinatra/stop.bat
  69. +1 −0 4-pictures-rails
  70. +44 −0 5-rack-iis/Web.config
  71. 0 {helloworld/rack → 5-rack-iis}/app.rb
  72. BIN 5-rack-iis/bin/IronRuby.Libraries.Scanner.exe
  73. BIN 5-rack-iis/bin/IronRuby.Libraries.Scanner.pdb
  74. BIN 5-rack-iis/bin/IronRuby.Libraries.Yaml.dll
  75. BIN 5-rack-iis/bin/IronRuby.Libraries.Yaml.pdb
  76. BIN 5-rack-iis/bin/IronRuby.Libraries.dll
  77. BIN 5-rack-iis/bin/IronRuby.Libraries.pdb
  78. BIN 5-rack-iis/bin/IronRuby.Rack.dll
  79. BIN 5-rack-iis/bin/IronRuby.Rack.pdb
  80. BIN 5-rack-iis/bin/IronRuby.Tests.exe
  81. +17 −0 5-rack-iis/bin/IronRuby.Tests.exe.config
  82. BIN 5-rack-iis/bin/IronRuby.Tests.pdb
  83. BIN 5-rack-iis/bin/IronRuby.Tests.vshost.exe
  84. +17 −0 5-rack-iis/bin/IronRuby.Tests.vshost.exe.config
  85. +11 −0 5-rack-iis/bin/IronRuby.Tests.vshost.exe.manifest
  86. BIN 5-rack-iis/bin/IronRuby.dll
  87. BIN 5-rack-iis/bin/IronRuby.pdb
  88. BIN 5-rack-iis/bin/Microsoft.Dynamic.dll
  89. BIN 5-rack-iis/bin/Microsoft.Dynamic.pdb
  90. +710 −0 5-rack-iis/bin/Microsoft.Dynamic.xml
  91. BIN 5-rack-iis/bin/Microsoft.Scripting.Core.dll
  92. BIN 5-rack-iis/bin/Microsoft.Scripting.Core.pdb
  93. +10,488 −0 5-rack-iis/bin/Microsoft.Scripting.Core.xml
  94. BIN 5-rack-iis/bin/Microsoft.Scripting.ExtensionAttribute.dll
  95. BIN 5-rack-iis/bin/Microsoft.Scripting.ExtensionAttribute.pdb
  96. BIN 5-rack-iis/bin/Microsoft.Scripting.dll
  97. BIN 5-rack-iis/bin/Microsoft.Scripting.pdb
  98. +8,729 −0 5-rack-iis/bin/Microsoft.Scripting.xml
  99. BIN 5-rack-iis/bin/ir.exe
  100. +16 −0 5-rack-iis/bin/ir.exe.config
  101. BIN 5-rack-iis/bin/ir.pdb
  102. +16 −0 5-rack-iis/bin/lib/IronRuby.rb
  103. +1 −0 5-rack-iis/bin/lib/PresentationCore.rb
  104. +1 −0 5-rack-iis/bin/lib/PresentationFramework.rb
  105. +1 −0 5-rack-iis/bin/lib/System.Data.rb
  106. +1 −0 5-rack-iis/bin/lib/System.Drawing.rb
  107. +1 −0 5-rack-iis/bin/lib/System.Windows.Forms.rb
  108. +16 −0 5-rack-iis/bin/lib/bigdecimal.rb
  109. +16 −0 5-rack-iis/bin/lib/digest.rb
  110. +17 −0 5-rack-iis/bin/lib/digest/md5.rb
  111. +16 −0 5-rack-iis/bin/lib/digest/sha1.rb
  112. +16 −0 5-rack-iis/bin/lib/enumerator.rb
  113. +1 −0 5-rack-iis/bin/lib/etc.rb
  114. +16 −0 5-rack-iis/bin/lib/fcntl.rb
  115. +63 −0 5-rack-iis/bin/lib/hacks.rb
  116. +16 −0 5-rack-iis/bin/lib/iconv.rb
  117. +33 −0 5-rack-iis/bin/lib/nkf.rb
  118. +16 −0 5-rack-iis/bin/lib/openssl.rb
  119. +253 −0 5-rack-iis/bin/lib/parse_tree.rb
  120. +6 −0 5-rack-iis/bin/lib/prime.rb
  121. +177 −0 5-rack-iis/bin/lib/rbconfig.rb
  122. +16 −0 5-rack-iis/bin/lib/socket.rb
  123. +16 −0 5-rack-iis/bin/lib/stringio.rb
  124. +16 −0 5-rack-iis/bin/lib/strscan.rb
  125. +1 −0 5-rack-iis/bin/lib/syslog.rb
  126. +1 −0 5-rack-iis/bin/lib/system.rb
  127. +281 −0 5-rack-iis/bin/lib/test/unit.rb
  128. +217 −0 5-rack-iis/bin/lib/test/unit/autorunner.rb
  129. +161 −0 5-rack-iis/bin/lib/test/unit/testcase.rb
  130. +16 −0 5-rack-iis/bin/lib/thread.rb
  131. +38 −0 5-rack-iis/bin/lib/tmpdir.rb
  132. +18 −0 5-rack-iis/bin/lib/yaml.rb
  133. +16 −0 5-rack-iis/bin/lib/zlib.rb
  134. +2 −0 5-rack-iis/config.ru
  135. 0 {resizer → 6-resizer}/fam.jpg
  136. 0 {resizer → 6-resizer}/resizer.rb
  137. BIN 7-iis-setup/.deploy.rb.swp
  138. +205 −0 7-iis-setup/deploy.rb
  139. +44 −0 7-iis-setup/templates/Web.config
  140. 0 {ardb → 8-ardb}/README
  141. 0 {ardb → 8-ardb}/app.rb
  142. +0 −2 {ardb → 8-ardb}/ardb.rb
  143. +1 −1 {ardb → 8-ardb}/arinit.rb
  144. 0 {ardb → 8-ardb}/console.rb
  145. 0 {ardb → 8-ardb}/event.rb
  146. 0 {ardb → 8-ardb}/migrate.rb
  147. 0 {ardb → 8-ardb}/migrations/20090423112611_create_people.rb
  148. 0 {ardb → 8-ardb}/person.rb
  149. BIN 9-ironruby-team/DSC_0173.JPG
  150. BIN 9-ironruby-team/DSC_0174.JPG
  151. BIN 9-ironruby-team/DSC_0175.JPG
  152. BIN 9-ironruby-team/DSC_0176.JPG
  153. BIN 9-ironruby-team/DSC_0177.JPG
  154. BIN 9-ironruby-team/DSC_0178.JPG
  155. +20 −0 README.markdown
  156. +0 −2 ardb/activerecord.log
  157. BIN bin/IronRuby.Libraries.Scanner.exe
  158. BIN bin/IronRuby.Libraries.Yaml.dll
  159. BIN bin/IronRuby.Libraries.dll
  160. BIN bin/IronRuby.Rack.dll
  161. BIN bin/IronRuby.Tests.exe
  162. +17 −0 bin/IronRuby.Tests.exe.config
  163. BIN bin/IronRuby.dll
  164. BIN bin/Microsoft.Dynamic.dll
  165. BIN bin/Microsoft.Scripting.Core.dll
  166. BIN bin/Microsoft.Scripting.ExtensionAttribute.dll
  167. BIN bin/Microsoft.Scripting.dll
  168. BIN bin/ir.exe
  169. +17 −0 bin/ir.exe.config
  170. +16 −0 bin/lib/IronRuby.rb
  171. +1 −0 bin/lib/PresentationCore.rb
  172. +1 −0 bin/lib/PresentationFramework.rb
  173. +1 −0 bin/lib/System.Data.rb
  174. +1 −0 bin/lib/System.Drawing.rb
  175. +1 −0 bin/lib/System.Windows.Forms.rb
  176. +16 −0 bin/lib/bigdecimal.rb
  177. +16 −0 bin/lib/digest.rb
  178. +17 −0 bin/lib/digest/md5.rb
  179. +16 −0 bin/lib/digest/sha1.rb
  180. +16 −0 bin/lib/enumerator.rb
  181. +1 −0 bin/lib/etc.rb
  182. +16 −0 bin/lib/fcntl.rb
  183. +63 −0 bin/lib/hacks.rb
  184. +16 −0 bin/lib/iconv.rb
  185. +33 −0 bin/lib/nkf.rb
  186. +16 −0 bin/lib/openssl.rb
  187. +253 −0 bin/lib/parse_tree.rb
  188. +6 −0 bin/lib/prime.rb
  189. +177 −0 bin/lib/rbconfig.rb
  190. +16 −0 bin/lib/socket.rb
  191. +16 −0 bin/lib/stringio.rb
  192. +16 −0 bin/lib/strscan.rb
  193. +1 −0 bin/lib/syslog.rb
  194. +1 −0 bin/lib/system.rb
  195. +281 −0 bin/lib/test/unit.rb
  196. +217 −0 bin/lib/test/unit/autorunner.rb
  197. +161 −0 bin/lib/test/unit/testcase.rb
  198. +16 −0 bin/lib/thread.rb
  199. +38 −0 bin/lib/tmpdir.rb
  200. +18 −0 bin/lib/yaml.rb
  201. +16 −0 bin/lib/zlib.rb
  202. +0 −2 helloworld/rack/config.ru
  203. +0 −10 helloworld/rails/Rakefile
  204. +0 −10 helloworld/rails/app/controllers/application_controller.rb
  205. +0 −3 helloworld/rails/app/helpers/application_helper.rb
  206. +0 −110 helloworld/rails/config/boot.rb
  207. +0 −28 helloworld/rails/config/database.yml
  208. +0 −41 helloworld/rails/config/environment.rb
  209. +0 −17 helloworld/rails/config/environments/development.rb
  210. +0 −28 helloworld/rails/config/environments/production.rb
  211. +0 −28 helloworld/rails/config/environments/test.rb
  212. +0 −7 helloworld/rails/config/initializers/backtrace_silencers.rb
  213. +0 −10 helloworld/rails/config/initializers/inflections.rb
  214. +0 −5 helloworld/rails/config/initializers/mime_types.rb
  215. +0 −19 helloworld/rails/config/initializers/new_rails_defaults.rb
  216. +0 −15 helloworld/rails/config/initializers/session_store.rb
  217. +0 −45 helloworld/rails/config/routes.rb
  218. +0 −14 helloworld/rails/db/schema.rb
  219. +0 −30 helloworld/rails/public/404.html
  220. +0 −30 helloworld/rails/public/422.html
  221. +0 −30 helloworld/rails/public/500.html
  222. 0 helloworld/rails/public/favicon.ico
  223. BIN helloworld/rails/public/images/rails.png
  224. +0 −2 helloworld/rails/public/javascripts/application.js
  225. +0 −963 helloworld/rails/public/javascripts/controls.js
  226. +0 −973 helloworld/rails/public/javascripts/dragdrop.js
  227. +0 −1,128 helloworld/rails/public/javascripts/effects.js
  228. +0 −4,320 helloworld/rails/public/javascripts/prototype.js
  229. +0 −5 helloworld/rails/public/robots.txt
  230. +0 −4 helloworld/rails/script/about
  231. +0 −3 helloworld/rails/script/console
  232. +0 −3 helloworld/rails/script/dbconsole
  233. +0 −3 helloworld/rails/script/destroy
  234. +0 −3 helloworld/rails/script/generate
  235. +0 −3 helloworld/rails/script/performance/benchmarker
  236. +0 −3 helloworld/rails/script/performance/profiler
  237. +0 −3 helloworld/rails/script/plugin
  238. +0 −3 helloworld/rails/script/runner
  239. +0 −7 helloworld/rails/script/server
  240. +0 −8 helloworld/rails/test/functional/say_controller_test.rb
  241. +0 −9 helloworld/rails/test/performance/browsing_test.rb
  242. +0 −38 helloworld/rails/test/test_helper.rb
  243. +0 −4 helloworld/rails/test/unit/helpers/say_helper_test.rb
  244. +0 −101 iis-setup/iis-setup.rb
  245. +1 −11 init.bat
  246. +224 −0 irails-usage.txt
  247. BIN resizer/fel.jpg
  248. +0 −28 scaffold/config/database.yml
  249. +0 −363 scaffold/log/development.log
  250. 0 scaffold/log/production.log
  251. 0 scaffold/log/server.log
  252. 0 scaffold/log/test.log
View
10 1-basics/dotnet-script.rb
@@ -0,0 +1,10 @@
+require 'mscorlib'
+include System
+
+System.constants.sort
+
+class_names = System.constants.sort.grep /^[A-C]/
+
+classes = class_names.map { |c| eval c }
+
+classes.first.to_clr_type.is_interface
View
16 1-basics/excel-com.rb
@@ -0,0 +1,16 @@
+def newCOM progId
+ System::Activator.CreateInstance(System::Type.GetTypeFromProgID(progId))
+end
+
+ex = newCOM("Excel.Application")
+
+ex.Visible = true
+nb = ex.Workbooks.Add
+ws = nb.Worksheets[1]
+p ws.Name
+
+10.times do |i|
+ 10.times do |j|
+ ws.Cells[i + 1, j + 1] = (i + 1) * (j + 1)
+ end
+end
View
0 scaffold/README → 2-rails/README
File renamed without changes.
View
0 scaffold/Rakefile → 2-rails/Rakefile
File renamed without changes.
View
0 ...app/controllers/application_controller.rb → ...app/controllers/application_controller.rb
File renamed without changes.
View
0 scaffold/app/controllers/posts_controller.rb → 2-rails/app/controllers/posts_controller.rb
File renamed without changes.
View
0 ...d/rails/app/controllers/say_controller.rb → 2-rails/app/controllers/say_controller.rb
File renamed without changes.
View
0 scaffold/app/helpers/application_helper.rb → 2-rails/app/helpers/application_helper.rb
File renamed without changes.
View
0 scaffold/app/helpers/posts_helper.rb → 2-rails/app/helpers/posts_helper.rb
File renamed without changes.
View
0 helloworld/rails/app/helpers/say_helper.rb → 2-rails/app/helpers/say_helper.rb
File renamed without changes.
View
0 scaffold/app/models/post.rb → 2-rails/app/models/post.rb
File renamed without changes.
View
0 scaffold/app/views/layouts/posts.html.erb → 2-rails/app/views/layouts/posts.html.erb
File renamed without changes.
View
0 scaffold/app/views/posts/edit.html.erb → 2-rails/app/views/posts/edit.html.erb
File renamed without changes.
View
0 scaffold/app/views/posts/index.html.erb → 2-rails/app/views/posts/index.html.erb
File renamed without changes.
View
0 scaffold/app/views/posts/new.html.erb → 2-rails/app/views/posts/new.html.erb
File renamed without changes.
View
0 scaffold/app/views/posts/show.html.erb → 2-rails/app/views/posts/show.html.erb
File renamed without changes.
View
0 scaffold/config/boot.rb → 2-rails/config/boot.rb
File renamed without changes.
View
17 2-rails/config/database.yml
@@ -0,0 +1,17 @@
+development:
+ adapter: mssql
+ host: JIMMYSCH-GEMINI\SQLEXPRESS
+ database: ironruby_rails_dev
+ integrated_security: true
+
+test:
+ adapter: mssql
+ host: JIMMYSCH-GEMINI\SQLEXPRESS
+ database: ironruby_rails_test
+ integrated_security: true
+
+production:
+ adapter: mssql
+ host: JIMMYSCH-GEMINI\SQLEXPRESS
+ database: ironruby_rails_prod
+ integrated_security: true
View
0 scaffold/config/environment.rb → 2-rails/config/environment.rb
File renamed without changes.
View
0 scaffold/config/environments/development.rb → 2-rails/config/environments/development.rb
File renamed without changes.
View
0 scaffold/config/environments/production.rb → 2-rails/config/environments/production.rb
File renamed without changes.
View
0 scaffold/config/environments/test.rb → 2-rails/config/environments/test.rb
File renamed without changes.
View
0 ...onfig/initializers/backtrace_silencers.rb → ...onfig/initializers/backtrace_silencers.rb
File renamed without changes.
View
0 scaffold/config/initializers/inflections.rb → 2-rails/config/initializers/inflections.rb
File renamed without changes.
View
0 scaffold/config/initializers/mime_types.rb → 2-rails/config/initializers/mime_types.rb
File renamed without changes.
View
0 ...config/initializers/new_rails_defaults.rb → ...config/initializers/new_rails_defaults.rb
File renamed without changes.
View
0 ...fold/config/initializers/session_store.rb → 2-rails/config/initializers/session_store.rb
File renamed without changes.
View
0 scaffold/config/locales/en.yml → 2-rails/config/locales/en.yml
File renamed without changes.
View
0 scaffold/config/routes.rb → 2-rails/config/routes.rb
File renamed without changes.
View
0 ...grate/.20090501065355_create_posts.rb.swp → ...grate/.20090501065355_create_posts.rb.swp
File renamed without changes.
View
0 ...db/migrate/20090501065355_create_posts.rb → ...db/migrate/20090501065355_create_posts.rb
File renamed without changes.
View
0 scaffold/db/schema.rb → 2-rails/db/schema.rb
File renamed without changes.
View
0 scaffold/doc/README_FOR_APP → 2-rails/doc/README_FOR_APP
File renamed without changes.
View
74 2-rails/log/development.log
@@ -0,0 +1,74 @@
+# Logfile created on Thu May 07 12:19:24 -07:00 2009/!\ FAILSAFE /!\ Thu May 07 12:22:37 -07:00 2009
+ Status: 500 Internal Server Error
+ Cannot open database "ironruby_rails_dev" requested by the login. The login failed.
+Login failed for user 'REDMOND\jimmysch'.
+ System.Data:0:in `OnError'
+ System.Data:0:in `ThrowExceptionAndWarning'
+ System.Data:0:in `Run'
+ System.Data:0:in `CompleteLogin'
+ System.Data:0:in `AttemptOneLogin'
+ System.Data:0:in `LoginNoFailover'
+ System.Data:0:in `OpenLoginEnlist'
+ System.Data:0:in `.ctor'
+ System.Data:0:in `CreateConnection'
+ System.Data:0:in `CreatePooledConnection'
+ System.Data:0:in `CreateObject'
+ System.Data:0:in `UserCreateRequest'
+ System.Data:0:in `GetConnection'
+ System.Data:0:in `GetConnection'
+ System.Data:0:in `OpenConnection'
+ System.Data:0:in `Open'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/mssql_adapter.rb:383:in `connect'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/mssql_adapter.rb:54:in `initialize'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/mssql_adapter.rb:33:in `mssql_connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
+ :0:in `__send__'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:185:in `checkout'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `checkout'
+ :0:in `loop'
+ c:/ruby/lib/ruby/1.8/monitor.rb:242:in `mon_synchronize'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:6:in `cache'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
+ c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
+ :0:in `synchronize'
+ c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call'
+ static.rb:13:in `call'
+ urlmap.rb:40:in `call'
+ :0:in `each'
+ urlmap.rb:36:in `call'
+ log_tailer.rb:15:in `call'
+ content_length.rb:12:in `call'
+ webrick.rb:25:in `service'
+ httpserver.rb:89:in `service'
+ httpserver.rb:43:in `run'
+ server.rb:162:in `start_thread'
+ c:\dev\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTED\Builtins\ThreadOps.cs:640:in `RubyThreadStart'
+ c:\dev\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTED\Builtins\ThreadOps.cs:621:in `<CreateThread>b__0'
+ mscorlib:0:in `ThreadStart_Context'
+ mscorlib:0:in `Run'
+ mscorlib:0:in `ThreadStart'
+
+
+Processing SayController#index (for 127.0.0.1 at 2009-05-07 12:27:07) [GET]
+Completed in 435ms (View: 302, DB: 0) | 200 OK [http://localhost/say]
+
+
+Processing PostsController#index (for 127.0.0.1 at 2009-05-07 12:28:29) [GET]
+Rendering template within layouts/posts
+Rendering posts/index
+Completed in 2659ms (View: 2127, DB: 0) | 200 OK [http://localhost/posts]
View
0 scaffold/public/404.html → 2-rails/public/404.html
File renamed without changes.
View
0 scaffold/public/422.html → 2-rails/public/422.html
File renamed without changes.
View
0 scaffold/public/500.html → 2-rails/public/500.html
File renamed without changes.
View
0 scaffold/public/favicon.ico → 2-rails/public/favicon.ico
File renamed without changes.
View
0 scaffold/public/images/rails.png → 2-rails/public/images/rails.png
File renamed without changes
View
0 scaffold/public/index.html → 2-rails/public/index.html
File renamed without changes.
View
0 scaffold/public/javascripts/application.js → 2-rails/public/javascripts/application.js
File renamed without changes.
View
0 scaffold/public/javascripts/controls.js → 2-rails/public/javascripts/controls.js
File renamed without changes.
View
0 scaffold/public/javascripts/dragdrop.js → 2-rails/public/javascripts/dragdrop.js
File renamed without changes.
View
0 scaffold/public/javascripts/effects.js → 2-rails/public/javascripts/effects.js
File renamed without changes.
View
0 scaffold/public/javascripts/prototype.js → 2-rails/public/javascripts/prototype.js
File renamed without changes.
View
0 scaffold/public/robots.txt → 2-rails/public/robots.txt
File renamed without changes.
View
0 scaffold/public/stylesheets/scaffold.css → 2-rails/public/stylesheets/scaffold.css
File renamed without changes.
View
0 scaffold/script/about → 2-rails/script/about
File renamed without changes.
View
0 scaffold/script/console → 2-rails/script/console
File renamed without changes.
View
0 scaffold/script/dbconsole → 2-rails/script/dbconsole
File renamed without changes.
View
0 scaffold/script/destroy → 2-rails/script/destroy
File renamed without changes.
View
0 scaffold/script/generate → 2-rails/script/generate
File renamed without changes.
View
0 scaffold/script/performance/benchmarker → 2-rails/script/performance/benchmarker
File renamed without changes.
View
0 scaffold/script/performance/profiler → 2-rails/script/performance/profiler
File renamed without changes.
View
0 scaffold/script/plugin → 2-rails/script/plugin
File renamed without changes.
View
0 scaffold/script/runner → 2-rails/script/runner
File renamed without changes.
View
0 scaffold/script/server → 2-rails/script/server
File renamed without changes.
View
2 2-rails/start.bat
@@ -0,0 +1,2 @@
+set GEM_PATH=c:\ruby\lib\ruby\gems\1.8
+%~dp0..\bin\ir %~dp0script\server -e production
View
0 scaffold/test/fixtures/posts.yml → 2-rails/test/fixtures/posts.yml
File renamed without changes.
View
0 .../test/functional/posts_controller_test.rb → .../test/functional/posts_controller_test.rb
File renamed without changes.
View
0 scaffold/test/performance/browsing_test.rb → 2-rails/test/performance/browsing_test.rb
File renamed without changes.
View
0 scaffold/test/test_helper.rb → 2-rails/test/test_helper.rb
File renamed without changes.
View
0 ...ld/test/unit/helpers/posts_helper_test.rb → ...ls/test/unit/helpers/posts_helper_test.rb
File renamed without changes.
View
0 scaffold/test/unit/post_test.rb → 2-rails/test/unit/post_test.rb
File renamed without changes.
View
0 helloworld/sinatra/app.rb → 3-sinatra/app.rb
File renamed without changes.
View
0 helloworld/sinatra/config.ru → 3-sinatra/config.ru
File renamed without changes.
View
2 3-sinatra/start.bat
@@ -0,0 +1,2 @@
+set GEM_PATH=c:\ruby\lib\ruby\gems\1.8
+%~dp0..\bin\ir app.rb
View
1 3-sinatra/stop.bat
@@ -0,0 +1 @@
+taskkill /IM ir.exe /F
1 4-pictures-rails
@@ -0,0 +1 @@
+Subproject commit 3b2bdcd5e34a9cde770afab1e8cc7c7f106fb0e6
View
44 5-rack-iis/Web.config
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<configuration>
+
+ <configSections>
+ <!-- custom configuration section for DLR hosting -->
+ <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.5.1, Culture=neutral, PublicKeyToken=null" requirePermission="false"/>
+ </configSections>
+
+ <system.webServer>
+ <handlers>
+ <!-- clear all other handlers first. Don't do this if you have other handlers you want to run -->
+ <clear/>
+
+ <!-- This hooks up the HttpHandler which will dispatch all requests to Rack -->
+ <add name="IronRuby" path="*" verb="*" type="IronRuby.Rack.HttpHandlerFactory, IronRuby.Rack" resourceType="Unspecified" requireAccess="Read" preCondition="integratedMode"/>
+ </handlers>
+ </system.webServer>
+
+ <system.web>
+ <!-- make this true if you want to compile any of the DLR code, IronRuby.Rack, or your own managed code -->
+ <compilation debug="false"/>
+ </system.web>
+
+ <!-- DLR configuration. Set debugMode to "true" if you want to debug your dynamic language code with VS -->
+ <microsoft.scripting debugMode="false">
+ <options>
+ <!--
+ Library paths. Requires that you have Ruby installed at C:\ruby (default install location)
+ Note: paths are relative to this file's directory
+ -->
+ <set option="LibraryPaths" value=".;..\bin\lib;c:\ruby\lib\ruby\site_ruby\1.8;c:\ruby\lib\ruby\site_ruby;c:\ruby\lib\ruby\1.8"/>
+ </options>
+ </microsoft.scripting>
+
+ <appSettings>
+
+ <!-- Settings for IronRuby.Rack -->
+ <add key="AppRoot" value="." /> <!-- Where is "config.ru" located -->
+ <add key="Log" value="ironrack.log" /> <!-- Log for IronRuby.Rack only -->
+
+ <!-- Other settings -->
+
+ </appSettings>
+</configuration>
View
0 helloworld/rack/app.rb → 5-rack-iis/app.rb
File renamed without changes.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.Scanner.exe
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.Scanner.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.Yaml.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.Yaml.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Libraries.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Rack.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Rack.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Tests.exe
Binary file not shown.
View
17 5-rack-iis/bin/IronRuby.Tests.exe.config
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <configSections>
+ <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.5.1, Culture=neutral, PublicKeyToken=null" requirePermission="false" />
+ </configSections>
+
+ <microsoft.scripting>
+ <languages>
+ <language names="IronPython;Python;py" extensions=".py" displayName="IronPython 2.6 Alpha" type="IronPython.Runtime.PythonContext, IronPython, Version=2.6.0.1, Culture=neutral, PublicKeyToken=null" />
+ <language names="IronRuby;Ruby;rb" extensions=".rb" displayName="IronRuby 0.4" type="IronRuby.Runtime.RubyContext, IronRuby, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null" />
+ </languages>
+
+ <options>
+ <set language="Ruby" option="LibraryPaths" value="..\..\Languages\Ruby\libs\;c:\ruby\lib\ruby\site_ruby\1.8\;c:\ruby\lib\ruby\1.8\" />
+ </options>
+ </microsoft.scripting>
+</configuration>
View
BIN 5-rack-iis/bin/IronRuby.Tests.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.Tests.vshost.exe
Binary file not shown.
View
17 5-rack-iis/bin/IronRuby.Tests.vshost.exe.config
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <configSections>
+ <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.5.1, Culture=neutral, PublicKeyToken=null" requirePermission="false" />
+ </configSections>
+
+ <microsoft.scripting>
+ <languages>
+ <language names="IronPython;Python;py" extensions=".py" displayName="IronPython 2.6 Alpha" type="IronPython.Runtime.PythonContext, IronPython, Version=2.6.0.1, Culture=neutral, PublicKeyToken=null" />
+ <language names="IronRuby;Ruby;rb" extensions=".rb" displayName="IronRuby 0.4" type="IronRuby.Runtime.RubyContext, IronRuby, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null" />
+ </languages>
+
+ <options>
+ <set language="Ruby" option="LibraryPaths" value="..\..\Languages\Ruby\libs\;c:\ruby\lib\ruby\site_ruby\1.8\;c:\ruby\lib\ruby\1.8\" />
+ </options>
+ </microsoft.scripting>
+</configuration>
View
11 5-rack-iis/bin/IronRuby.Tests.vshost.exe.manifest
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
View
BIN 5-rack-iis/bin/IronRuby.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/IronRuby.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Dynamic.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Dynamic.pdb
Binary file not shown.
View
710 5-rack-iis/bin/Microsoft.Dynamic.xml
@@ -0,0 +1,710 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>Microsoft.Dynamic</name>
+ </assembly>
+ <members>
+ <member name="T:System.Dynamic.SimpleArgBuilder">
+ <summary>
+ SimpleArgBuilder produces the value produced by the user as the argument value. It
+ also tracks information about the original parameter and is used to create extended
+ methods for params arrays and param dictionary functions.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ArgBuilder">
+ <summary>
+ ArgBuilder provides an argument value used by the MethodBinder. One ArgBuilder exists for each
+ physical parameter defined on a method.
+
+ Contrast this with ParameterWrapper which represents the logical argument passed to the method.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ArgBuilder.Marshal(System.Linq.Expressions.Expression)">
+ <summary>
+ Provides the Expression which provides the value to be passed to the argument.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ArgBuilder.MarshalToRef(System.Linq.Expressions.Expression)">
+ <summary>
+ Provides the Expression which provides the value to be passed to the argument.
+ This method is called when result is intended to be used ByRef.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ArgBuilder.UnmarshalFromRef(System.Linq.Expressions.Expression)">
+ <summary>
+ Provides an Expression which will update the provided value after a call to the method.
+ May return null if no update is required.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ComRuntimeHelpers.GetITypeInfoFromIDispatch(System.Dynamic.IDispatch,System.Boolean)">
+ <summary>
+ Look for typeinfo using IDispatch.GetTypeInfo
+ </summary>
+ <param name="dispatch"></param>
+ <param name="throwIfMissingExpectedTypeInfo">
+ Some COM objects just dont expose typeinfo. In these cases, this method will return null.
+ Some COM objects do intend to expose typeinfo, but may not be able to do so if the type-library is not properly
+ registered. This will be considered as acceptable or as an error condition depending on throwIfMissingExpectedTypeInfo</param>
+ <returns></returns>
+ </member>
+ <member name="M:System.Dynamic.ComRuntimeHelpers.CheckIfMissingTypeInfoIsExpected(System.Int32,System.Boolean)">
+ <summary>
+ This method should be called when typeinfo is not available for an object. The function
+ will check if the typeinfo is expected to be missing. This can include error cases where
+ the same error is guaranteed to happen all the time, on all machines, under all circumstances.
+ In such cases, we just have to operate without the typeinfo.
+
+ However, if accessing the typeinfo is failing in a transient way, we might want to throw
+ an exception so that we will eagerly predictably indicate the problem.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.UnsafeMethods">
+ <summary>
+ This class contains methods that either cannot be expressed in C#, or which require writing unsafe code.
+ Callers of these methods need to use them extremely carefully as incorrect use could cause GC-holes
+ and other problems.
+ </summary>
+
+ </member>
+ <member name="M:System.Dynamic.UnsafeMethods.AssertByrefPointsToStack(System.IntPtr)">
+ <summary>
+ Ensure that "value" is a local variable in some caller's frame. So converting
+ the byref to an IntPtr is a safe operation. Alternatively, we could also allow
+ allowed "value" to be a pinned object.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.UnsafeMethods.IUnknownReleaseDelegate">
+ <summary>
+ We will emit an indirect call to an unmanaged function pointer from the vtable of the given interface pointer.
+ This approach can take only ~300 instructions on x86 compared with ~900 for Marshal.Release. We are relying on
+ the JIT-compiler to do pinvoke-stub-inlining and calling the pinvoke target directly.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.UnsafeMethods.IDispatchInvokeDelegate">
+ <summary>
+ We will emit an indirect call to an unmanaged function pointer from the vtable of the given IDispatch interface pointer.
+ It is not possible to express this in C#. Using an indirect pinvoke call allows us to do our own marshalling.
+ We can allocate the Variant arguments cheaply on the stack. We are relying on the JIT-compiler to do
+ pinvoke-stub-inlining and calling the pinvoke target directly.
+ The alternative of calling via a managed interface declaration of IDispatch would have a performance
+ penalty of going through a CLR stub that would have to re-push the arguments on the stack, etc.
+ Marshal.GetDelegateForFunctionPointer could be used here, but its too expensive (~2000 instructions on x86).
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ComInvokeBinder.MakeIDispatchInvokeTarget">
+ <summary>
+ Create a stub for the target of the optimized lopop.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Dynamic.ComInvokeBinder.MakeArgumentExpressions">
+ <summary>
+ Gets expressions to access all the arguments. This includes the instance argument.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.IDispatchComObject">
+ <summary>
+ An object that implements IDispatch
+
+ This currently has the following issues:
+ 1. If we prefer ComObjectWithTypeInfo over IDispatchComObject, then we will often not
+ IDispatchComObject since implementations of IDispatch often rely on a registered type library.
+ If we prefer IDispatchComObject over ComObjectWithTypeInfo, users get a non-ideal experience.
+ 2. IDispatch cannot distinguish between properties and methods with 0 arguments (and non-0
+ default arguments?). So obj.foo() is ambiguous as it could mean invoking method foo,
+ or it could mean invoking the function pointer returned by property foo.
+ We are attempting to find whether we need to call a method or a property by examining
+ the ITypeInfo associated with the IDispatch. ITypeInfo tell's use what parameters the method
+ expects, is it a method or a property, what is the default property of the object, how to
+ create an enumerator for collections etc.
+ 3. IronPython processes the signature and converts ref arguments into return values.
+ However, since the signature of a DispMethod is not available beforehand, this conversion
+ is not possible. There could be other signature conversions that may be affected. How does
+ VB6 deal with ref arguments and IDispatch?
+
+ We also support events for IDispatch objects:
+ Background:
+ COM objects support events through a mechanism known as Connect Points.
+ Connection Points are separate objects created off the actual COM
+ object (this is to prevent circular references between event sink
+ and event source). When clients want to sink events generated by
+ COM object they would implement callback interfaces (aka source
+ interfaces) and hand it over (advise) to the Connection Point.
+
+ Implementation details:
+ When IDispatchComObject.TryGetMember request is received we first check
+ whether the requested member is a property or a method. If this check
+ fails we will try to determine whether an event is requested. To do
+ so we will do the following set of steps:
+ 1. Verify the COM object implements IConnectionPointContainer
+ 2. Attempt to find COM object's coclass's description
+ a. Query the object for IProvideClassInfo interface. Go to 3, if found
+ b. From object's IDispatch retrieve primary interface description
+ c. Scan coclasses declared in object's type library.
+ d. Find coclass implementing this particular primary interface
+ 3. Scan coclass for all its source interfaces.
+ 4. Check whether to any of the methods on the source interfaces matches
+ the request name
+
+ Once we determine that TryGetMember requests an event we will return
+ an instance of BoundDispEvent class. This class has InPlaceAdd and
+ InPlaceSubtract operators defined. Calling InPlaceAdd operator will:
+ 1. An instance of ComEventSinksContainer class is created (unless
+ RCW already had one). This instance is hanged off the RCW in attempt
+ to bind the lifetime of event sinks to the lifetime of the RCW itself,
+ meaning event sink will be collected once the RCW is collected (this
+ is the same way event sinks lifetime is controlled by PIAs).
+ Notice: ComEventSinksContainer contains a Finalizer which will go and
+ unadvise all event sinks.
+ Notice: ComEventSinksContainer is a list of ComEventSink objects.
+ 2. Unless we have already created a ComEventSink for the required
+ source interface, we will create and advise a new ComEventSink. Each
+ ComEventSink implements a single source interface that COM object
+ supports.
+ 3. ComEventSink contains a map between method DISPIDs to the
+ multicast delegate that will be invoked when the event is raised.
+ 4. ComEventSink implements IReflect interface which is exposed as
+ custom IDispatch to COM consumers. This allows us to intercept calls
+ to IDispatch.Invoke and apply custom logic - in particular we will
+ just find and invoke the multicast delegate corresponding to the invoked
+ dispid.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComObject">
+ <summary>
+ This is a helper class for runtime-callable-wrappers of COM instances. We create one instance of this type
+ for every generic RCW instance.
+ </summary>
+ </member>
+ <member name="F:System.Dynamic.ComObject._rcw">
+ <summary>
+ The runtime-callable wrapper
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ComObject.ObjectToComObject(System.Object)">
+ <summary>
+ This is the factory method to get the ComObject corresponding to an RCW
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="T:System.Dynamic.ComEventSinkProxy">
+ <summary>
+ ComEventSinkProxy class is responsible for handling QIs for sourceIid
+ on instances of ComEventSink.
+
+ Background: When a COM even sink advises to a connection point it is
+ supposed to hand over the dispinterface. Now, some hosts will trust
+ the COM client to pass the correct pointer, but some will not.
+ E.g. Excel's implementation of Connection Points will not cause a
+ QI on the pointer that has been passed, however Word will QI the
+ pointer to return the required interface.
+
+ ComEventSink does not, strongly speaking, implements the interface
+ that it claims to implement - it is just "faking" it by using IReflect.
+ Thus, Word's QIs on the pointer passed to ICP::Advise would fail. To
+ prevent this we take advangate of RealProxy's ability of
+ "dressing up" like other classes and hence successfully respond to QIs
+ for interfaces that it does not really support( it is OK to say
+ "I implement this interface" for event sinks only since the common
+ practice is to use IDistpach.Invoke when calling into event sinks).
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.BoundDispEvent.TryBinaryOperation(System.Dynamic.BinaryOperationBinder,System.Object,System.Object@)">
+ <summary>
+ Provides the implementation of performing AddAssign and SubtractAssign binary operations.
+ </summary>
+ <param name="binder">The binder provided by the call site.</param>
+ <param name="handler">The handler for the operation.</param>
+ <param name="result">The result of the operation.</param>
+ <returns>true if the operation is complete, false if the call site should determine behavior.</returns>
+ </member>
+ <member name="M:System.Dynamic.BoundDispEvent.InPlaceAdd(System.Object)">
+ <summary>
+ Adds a handler to an event.
+ </summary>
+ <param name="handler">The handler to be added.</param>
+ <returns>The original event with handler added.</returns>
+ </member>
+ <member name="M:System.Dynamic.BoundDispEvent.InPlaceSubtract(System.Object)">
+ <summary>
+ Removes handler from the event.
+ </summary>
+ <param name="handler">The handler to be removed.</param>
+ <returns>The original event with handler removed.</returns>
+ </member>
+ <member name="T:System.Dynamic.VarEnumSelector">
+ <summary>
+ If a managed user type (as opposed to a primitive type or a COM object) is passed as an argument to a COM call, we need
+ to determine the VarEnum type we will marshal it as. We have the following options:
+ 1. Raise an exception. Languages with their own version of primitive types would not be able to call
+ COM methods using the language's types (for eg. strings in IronRuby are not System.String). An explicit
+ cast would be needed.
+ 2. We could marshal it as VT_DISPATCH. Then COM code will be able to access all the APIs in a late-bound manner,
+ but old COM components will probably malfunction if they expect a primitive type.
+ 3. We could guess which primitive type is the closest match. This will make COM components be as easily
+ accessible as .NET methods.
+ 4. We could use the type library to check what the expected type is. However, the type library may not be available.
+
+ VarEnumSelector implements option # 3
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.GetManagedMarshalType(System.Runtime.InteropServices.VarEnum)">
+ <summary>
+ Gets the managed type that an object needs to be coverted to in order for it to be able
+ to be represented as a Variant.
+
+ In general, there is a many-to-many mapping between Type and VarEnum. However, this method
+ returns a simple mapping that is needed for the current implementation. The reason for the
+ many-to-many relation is:
+ 1. Int32 maps to VT_I4 as well as VT_ERROR, and Decimal maps to VT_DECIMAL and VT_CY. However,
+ this changes if you throw the wrapper types into the mix.
+ 2. There is no Type to represent COM types. __ComObject is a private type, and Object is too
+ general.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.CreateComPrimitiveTypeFamilies">
+ <summary>
+ Creates a family of COM types such that within each family, there is a completely non-lossy
+ conversion from a type to an earlier type in the family.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.GetConversionsToComPrimitiveTypeFamilies(System.Type)">
+ <summary>
+ Get the (one representative type for each) primitive type families that the argument can be converted to
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.CheckForAmbiguousMatch(System.Type,System.Collections.Generic.List{System.Runtime.InteropServices.VarEnum})">
+ <summary>
+ If there is more than one type family that the argument can be converted to, we will throw a
+ AmbiguousMatchException instead of randomly picking a winner.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.TryGetPrimitiveComTypeViaConversion(System.Type,System.Runtime.InteropServices.VarEnum@)">
+ <summary>
+ Is there a unique primitive type that has the best conversion for the argument
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.VarEnumSelector.GetVariantBuilder(System.Type)">
+ <summary>
+ Get the COM Variant type that argument should be marshaled as for a call to COM
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ExcepInfo">
+ <summary>
+ This is similar to ComTypes.EXCEPINFO, but lets us do our own custom marshaling
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComBinder">
+ <summary>
+ Provides helper methods to bind COM objects dynamically.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.IsComObject(System.Object)">
+ <summary>
+ Determines if an object is a COM object.
+ </summary>
+ <param name="value">The object to test.</param>
+ <returns>true if the object is a COM object, false otherwise.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindGetMember(System.Dynamic.GetMemberBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject@,System.Boolean)">
+ <summary>
+ Tries to perform binding of the dynamic get member operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.GetMemberBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <param name="delayInvocation">true if member evaluation may be delayed.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindGetMember(System.Dynamic.GetMemberBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic get member operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.GetMemberBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindSetMember(System.Dynamic.SetMemberBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic set member operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.SetMemberBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation.</param>
+ <param name="value">The <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the value for the set member operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindInvoke(System.Dynamic.InvokeBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic invoke operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.InvokeBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="args">An array of <see cref="T:System.Dynamic.DynamicMetaObject"/> instances - arguments to the invoke member operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindInvokeMember(System.Dynamic.InvokeMemberBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic invoke member operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.InvokeMemberBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="args">An array of <see cref="T:System.Dynamic.DynamicMetaObject"/> instances - arguments to the invoke member operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindGetIndex(System.Dynamic.GetIndexBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic get index operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.GetIndexBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="args">An array of <see cref="T:System.Dynamic.DynamicMetaObject"/> instances - arguments to the invoke member operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryBindSetIndex(System.Dynamic.SetIndexBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic set index operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.SetIndexBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation. </param>
+ <param name="args">An array of <see cref="T:System.Dynamic.DynamicMetaObject"/> instances - arguments to the invoke member operation.</param>
+ <param name="value">The <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the value for the set index operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.TryConvert(System.Dynamic.ConvertBinder,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject@)">
+ <summary>
+ Tries to perform binding of the dynamic Convert operation.
+ </summary>
+ <param name="binder">An instance of the <see cref="T:System.Dynamic.ConvertBinder"/> that represents the details of the dynamic operation.</param>
+ <param name="instance">The target of the dynamic operation.</param>
+ <param name="result">The new <see cref="T:System.Dynamic.DynamicMetaObject"/> representing the result of the binding.</param>
+ <returns>true if operation was bound successfully; otherwise, false.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.GetDynamicMemberNames(System.Object)">
+ <summary>
+ Gets the member names associated with the object.
+ This function can operate only with objects for which <see cref="M:System.Dynamic.ComBinder.IsComObject(System.Object)"/> returns true.
+ </summary>
+ <param name="value">The object for which member names are requested.</param>
+ <returns>The collection of member names.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.GetDynamicDataMemberNames(System.Object)">
+ <summary>
+ Gets the member names of the data-like members associated with the object.
+ This function can operate only with objects for which <see cref="M:System.Dynamic.ComBinder.IsComObject(System.Object)"/> returns true.
+ </summary>
+ <param name="value">The object for which member names are requested.</param>
+ <returns>The collection of member names.</returns>
+ </member>
+ <member name="M:System.Dynamic.ComBinder.GetDynamicDataMembers(System.Object,System.Collections.Generic.IEnumerable{System.String})">
+ <summary>
+ Gets the data-like members and associated data for an object.
+ This function can operate only with objects for which <see cref="M:System.Dynamic.ComBinder.IsComObject(System.Object)"/> returns true.
+ </summary>
+ <param name="value">The object for which data members are requested.</param>
+ <param name="names">The enumeration of names of data members for which to retrieve values.</param>
+ <returns>The collection of pairs that represent data member's names and their data.</returns>
+ </member>
+ <member name="T:System.Dynamic.ComBinder.ComGetMemberBinder">
+ <summary>
+ Special binder that indicates special semantics for COM GetMember operation.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.NullArgBuilder">
+ <summary>
+ ArgBuilder which always produces null.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.Variant">
+ <summary>
+ Variant is the basic COM type for late-binding. It can contain any other COM data type.
+ This type definition precisely matches the unmanaged data layout so that the struct can be passed
+ to and from COM calls.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Variant.IsPrimitiveType(System.Runtime.InteropServices.VarEnum)">
+ <summary>
+ Primitive types are the basic COM types. It includes valuetypes like ints, but also reference types
+ like BStrs. It does not include composite types like arrays and user-defined COM types (IUnknown/IDispatch).
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Variant.ToObject">
+ <summary>
+ Get the managed object representing the Variant.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:System.Dynamic.Variant.Clear">
+ <summary>
+ Release any unmanaged memory associated with the Variant
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="T:System.Dynamic.DispCallable">
+ <summary>
+ This represents a bound dispmember on a IDispatch object.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComEventSinksContainer">
+ <summary>
+ ComEventSinksContainer is just a regular list with a finalizer.
+ This list is usually attached as a custom data for RCW object and
+ is finalized whenever RCW is finalized.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.IDispatchMethodIndices">
+ <summary>
+ Layout of the IDispatch vtable
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.VariantBuilder">
+ <summary>
+ VariantBuilder handles packaging of arguments into a Variant for a call to IDispatch.Invoke
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.Strings">
+ <summary>
+ Strongly-typed and parameterized string factory.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.UnexpectedVarEnum(System.Object)">
+ <summary>
+ A string like "Unexpected VarEnum {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispBadParamCount(System.Object)">
+ <summary>
+ A string like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispMemberNotFound(System.Object)">
+ <summary>
+ A string like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispNoNamedArgs(System.Object)">
+ <summary>
+ A string like "Error while invoking {0}. Named arguments are not supported."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispOverflow(System.Object)">
+ <summary>
+ A string like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispTypeMismatch(System.Object,System.Object)">
+ <summary>
+ A string like "Could not convert argument {0} for call to {1}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.DispParamNotOptional(System.Object)">
+ <summary>
+ A string like "Error while invoking {0}. A required parameter was omitted."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.GetIDsOfNamesInvalid(System.Object)">
+ <summary>
+ A string like "IDispatch::GetIDsOfNames behaved unexpectedly for {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.CouldNotGetDispId(System.Object,System.Object)">
+ <summary>
+ A string like "Could not get dispatch ID for {0} (error: {1})."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.AmbiguousConversion(System.Object,System.Object)">
+ <summary>
+ A string like "There are valid conversions from {0} to {1}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Strings.VariantGetAccessorNYI(System.Object)">
+ <summary>
+ A string like "Variant.GetAccessor cannot handle {0}."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.InvalidArgumentValue">
+ <summary>
+ A string like "Invalid argument value"
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.ComObjectExpected">
+ <summary>
+ A string like "COM object is expected."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.CannotCall">
+ <summary>
+ A string like "Cannot perform call."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.COMObjectDoesNotSupportEvents">
+ <summary>
+ A string like "COM object does not support events."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.COMObjectDoesNotSupportSourceInterface">
+ <summary>
+ A string like "COM object does not support specified source interface."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.SetComObjectDataFailed">
+ <summary>
+ A string like "Marshal.SetComObjectData failed."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.MethodShouldNotBeCalled">
+ <summary>
+ A string like "This method exists only to keep the compiler happy."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.CannotRetrieveTypeInformation">
+ <summary>
+ A string like "ResolveComReference.CannotRetrieveTypeInformation."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.UnsupportedEnumType">
+ <summary>
+ A string like "Attempting to wrap an unsupported enum type."
+ </summary>
+ </member>
+ <member name="P:System.Dynamic.Strings.UnsupportedHandlerType">
+ <summary>
+ A string like "Attempting to pass an event handler of an unsupported type."
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.Error">
+ <summary>
+ Strongly-typed and parameterized exception factory.
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.COMObjectDoesNotSupportEvents">
+ <summary>
+ ArgumentException with message like "COM object does not support events."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.COMObjectDoesNotSupportSourceInterface">
+ <summary>
+ ArgumentException with message like "COM object does not support specified source interface."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.SetComObjectDataFailed">
+ <summary>
+ InvalidOperationException with message like "Marshal.SetComObjectData failed."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.MethodShouldNotBeCalled">
+ <summary>
+ InvalidOperationException with message like "This method exists only to keep the compiler happy."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.UnexpectedVarEnum(System.Object)">
+ <summary>
+ InvalidOperationException with message like "Unexpected VarEnum {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispBadParamCount(System.Object)">
+ <summary>
+ System.Reflection.TargetParameterCountException with message like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispMemberNotFound(System.Object)">
+ <summary>
+ MissingMemberException with message like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispNoNamedArgs(System.Object)">
+ <summary>
+ ArgumentException with message like "Error while invoking {0}. Named arguments are not supported."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispOverflow(System.Object)">
+ <summary>
+ OverflowException with message like "Error while invoking {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispTypeMismatch(System.Object,System.Object)">
+ <summary>
+ ArgumentException with message like "Could not convert argument {0} for call to {1}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.DispParamNotOptional(System.Object)">
+ <summary>
+ ArgumentException with message like "Error while invoking {0}. A required parameter was omitted."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.CannotRetrieveTypeInformation">
+ <summary>
+ InvalidOperationException with message like "ResolveComReference.CannotRetrieveTypeInformation."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.GetIDsOfNamesInvalid(System.Object)">
+ <summary>
+ ArgumentException with message like "IDispatch::GetIDsOfNames behaved unexpectedly for {0}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.UnsupportedEnumType">
+ <summary>
+ InvalidOperationException with message like "Attempting to wrap an unsupported enum type."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.UnsupportedHandlerType">
+ <summary>
+ InvalidOperationException with message like "Attempting to pass an event handler of an unsupported type."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.CouldNotGetDispId(System.Object,System.Object)">
+ <summary>
+ MissingMemberException with message like "Could not get dispatch ID for {0} (error: {1})."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.AmbiguousConversion(System.Object,System.Object)">
+ <summary>
+ System.Reflection.AmbiguousMatchException with message like "There are valid conversions from {0} to {1}."
+ </summary>
+ </member>
+ <member name="M:System.Dynamic.Error.VariantGetAccessorNYI(System.Object)">
+ <summary>
+ NotImplementedException with message like "Variant.GetAccessor cannot handle {0}."
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComEventSink">
+ <summary>
+ This class implements an event sink for a particular RCW.
+ Unlike the implementation of events in TlbImp'd assemblies,
+ we will create only one event sink per RCW (theoretically RCW might have
+ several ComEventSink evenk sinks - but all these implement different source intefaces).
+ Each ComEventSink contains a list of ComEventSinkMethod objects - which represent
+ a single method on the source interface an a multicast delegate to redirect
+ the calls. Notice that we are chaining multicast delegates so that same
+ ComEventSinkMedhod can invoke multiple event handlers).
+
+ ComEventSink implements an IDisposable pattern to Unadvise from the connection point.
+ Typically, when RCW is finalized the corresponding Dispose will be triggered by
+ ComEventSinksContainer finalizer. Notice that lifetime of ComEventSinksContainer
+ is bound to the lifetime of the RCW.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComEventSink.ComEventSinkMethod">
+ <summary>
+ Contains a methods DISPID (in a string formatted of "[DISPID=N]"
+ and a chained list of delegates to invoke
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.ComInvokeAction">
+ <summary>
+ Invokes the object. If it falls back, just produce an error.
+ </summary>
+ </member>
+ <member name="T:System.Dynamic.SplatInvokeBinder">
+ <summary>
+ Splats the arguments to another nested dynamic site, which does the
+ real invocation of the IDynamicMetaObjectProvider.
+ </summary>
+ </member>
+ </members>
+</doc>
View
BIN 5-rack-iis/bin/Microsoft.Scripting.Core.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Scripting.Core.pdb
Binary file not shown.
View
10,488 5-rack-iis/bin/Microsoft.Scripting.Core.xml
10,488 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN 5-rack-iis/bin/Microsoft.Scripting.ExtensionAttribute.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Scripting.ExtensionAttribute.pdb
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Scripting.dll
Binary file not shown.
View
BIN 5-rack-iis/bin/Microsoft.Scripting.pdb
Binary file not shown.
View
8,729 5-rack-iis/bin/Microsoft.Scripting.xml
8,729 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN 5-rack-iis/bin/ir.exe
Binary file not shown.
View
16 5-rack-iis/bin/ir.exe.config
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <configSections>
+ <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.5.1, Culture=neutral, PublicKeyToken=null" requirePermission="false" />
+ </configSections>
+
+ <microsoft.scripting>
+ <languages>
+ <language names="IronRuby;Ruby;rb" extensions=".rb" displayName="IronRuby 0.4" type="IronRuby.Runtime.RubyContext, IronRuby, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null" />
+ </languages>
+
+ <options>
+ <set language="Ruby" option="LibraryPaths" value="lib;c:\ruby\lib\ruby\site_ruby\1.8\;c:\ruby\lib\ruby\1.8\" />
+ </options>
+ </microsoft.scripting>
+</configuration>
View
BIN 5-rack-iis/bin/ir.pdb
Binary file not shown.
View
16 5-rack-iis/bin/lib/IronRuby.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+warn("IronRuby library is built-in and doesn't need to be required anymore")
View
1 5-rack-iis/bin/lib/PresentationCore.rb
@@ -0,0 +1 @@
+require 'PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
View
1 5-rack-iis/bin/lib/PresentationFramework.rb
@@ -0,0 +1 @@
+require 'PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
View
1 5-rack-iis/bin/lib/System.Data.rb
@@ -0,0 +1 @@
+require 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
View
1 5-rack-iis/bin/lib/System.Drawing.rb
@@ -0,0 +1 @@
+require 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
View
1 5-rack-iis/bin/lib/System.Windows.Forms.rb
@@ -0,0 +1 @@
+require 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
View
16 5-rack-iis/bin/lib/bigdecimal.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.BigDecimal'
View
16 5-rack-iis/bin/lib/digest.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.Digest'
View
17 5-rack-iis/bin/lib/digest/md5.rb
@@ -0,0 +1,17 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+require 'digest'
+# placeholder no-op file
View
16 5-rack-iis/bin/lib/digest/sha1.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+require 'digest'
View
16 5-rack-iis/bin/lib/enumerator.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.Enumerator'
View
1 5-rack-iis/bin/lib/etc.rb
@@ -0,0 +1 @@
+# No-op file since we won't support this under Windows
View
16 5-rack-iis/bin/lib/fcntl.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.FileControl'
View
63 5-rack-iis/bin/lib/hacks.rb
@@ -0,0 +1,63 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+# In non-iirb sessions, TOPLEVEL_BINDING isn't defined
+unless defined?(TOPLEVEL_BINDING)
+ TOPLEVEL_BINDING = binding
+end
+
+# IronRuby bug: IO#read seems to chop off the first char
+
+class TCPSocket
+ def read size
+ recv size
+ end
+end
+
+# Ruby implementation of Method#to_proc
+
+class Method
+ def to_proc
+ Proc.new { |*args| self.call(*args) }
+ end
+end
+
+# Subclass Tracking
+
+module SubclassTracking
+ class Holder < Array
+ def each_object(klass, &b)
+ self.each { |c| b[c] }
+ end
+ end
+ def self.extended(klass)
+ (class << klass; self; end).send :attr_accessor, :subclasses
+ (class << klass; self; end).send :define_method, :inherited do |klazz|
+ klass.subclasses << klazz
+ super
+ end
+ klass.subclasses = Holder.new
+ end
+end
+
+class IO
+ def flush; end # nop
+end
+
+class String
+ def hex
+ self.to_i(16)
+ end
+end
View
16 5-rack-iis/bin/lib/iconv.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.Iconv'
View
33 5-rack-iis/bin/lib/nkf.rb
@@ -0,0 +1,33 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+# HACKHACKHACK: Stub implementation of NKF
+
+module NKF
+ AUTO = 0
+ JIS = 1
+ EUC = 2
+ SJIS = 3
+ NOCONV = 4
+ ASCII = 5
+ BINARY = 4
+ NKF_RELEASE_DATE = "2007-01-28"
+ NKF_VERSION = "2.0.8"
+ UNKNOWN = 0
+ UTF16 = 8
+ UTF32 = 12
+ UTF8 = 6
+ VERSION = "2.0.8 (2007-01-28)"
+end
View
16 5-rack-iis/bin/lib/openssl.rb
@@ -0,0 +1,16 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.OpenSsl'
View
253 5-rack-iis/bin/lib/parse_tree.rb
@@ -0,0 +1,253 @@
+# ****************************************************************************
+#
+# Copyright (c) Microsoft Corporation.
+#
+# This source code is subject to terms and conditions of the Microsoft Public License. A
+# copy of the license can be found in the License.html file at the root of this distribution. If
+# you cannot locate the Microsoft Public License, please send an email to
+# ironruby@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+# by the terms of the Microsoft Public License.
+#
+# You must not remove this notice, or any other, from this software.
+#
+#
+# ****************************************************************************
+
+abort "*** Sorry, ParseTree doesn't work with ruby #{RUBY_VERSION}" if
+ RUBY_VERSION >= "1.9"
+
+load_assembly 'IronRuby.Libraries', 'IronRuby.StandardLibrary.ParseTree'
+
+class Module
+ def modules
+ ancestors[1..-1]
+ end
+end
+
+class Class
+ def modules
+ a = self.ancestors
+ a[1..a.index(superclass)-1]
+ end
+end
+
+##
+# ParseTree is a RubyInline-style extension that accesses and
+# traverses the internal parse tree created by ruby.
+#
+# class Example
+# def blah
+# return 1 + 1
+# end
+# end
+#
+# ParseTree.new.parse_tree(Example)
+# => [[:class, :Example, :Object,
+# [:defn,
+# "blah",
+# [:scope,
+# [:block,
+# [:args],
+# [:return, [:call, [:lit, 1], "+", [:array, [:lit, 1]]]]]]]]]
+
+class ParseTree
+
+ VERSION = '2.1.1'
+
+ ##
+ # Front end translation method.
+
+ def self.translate(klass_or_str, method=nil)
+ pt = self.new(false)
+ case klass_or_str
+ when String then
+ sexp = pt.parse_tree_for_string(klass_or_str).first
+ if method then
+ # class, scope, block, *methods
+ sexp.last.last[1..-1].find do |defn|
+ defn[1] == method
+ end
+ else
+ sexp
+ end
+ else
+ unless method.nil? then
+ if method.to_s =~ /^self\./ then
+ method = method.to_s[5..-1].intern
+ pt.parse_tree_for_method(klass_or_str, method, true)
+ else
+ pt.parse_tree_for_method(klass_or_str, method)
+ end
+ else
+ pt.parse_tree(klass_or_str).first
+ end
+ end
+ end
+
+ ##
+ # Initializes a ParseTree instance. Includes newline nodes if
+ # +include_newlines+ which defaults to +$DEBUG+.
+
+ def initialize(include_newlines=$DEBUG)
+ @include_newlines = include_newlines
+ end
+
+ ##
+ # Main driver for ParseTree. Returns an array of arrays containing
+ # the parse tree for +klasses+.
+ #
+ # Structure:
+ #
+ # [[:class, classname, superclassname, [:defn :method1, ...], ...], ...]
+ #
+ # NOTE: v1.0 - v1.1 had the signature (klass, meth=nil). This wasn't
+ # used much at all and since parse_tree_for_method already existed,
+ # it was deemed more useful to expand this method to do multiple
+ # classes.
+
+ def parse_tree(*klasses)
+ result = []
+ klasses.each do |klass|
+ klassname = klass.name rescue '' # HACK klass.name should never be nil
+ # Tempfile's DelegateClass(File) seems to
+ # cause this
+ klassname = "UnnamedClass_#{klass.object_id}" if klassname.empty?
+ klassname = klassname.to_sym
+
+ code = if Class === klass then
+ sc = klass.superclass
+ sc_name = ((sc.nil? or sc.name.empty?) ? "nil" : sc.name).intern
+ [:class, klassname, [:const, sc_name]]
+ else
+ [:module, klassname]
+ end
+
+ method_names = []
+ method_names += klass.instance_methods false
+ method_names += klass.private_instance_methods false
+ # protected methods are included in instance_methods, go figure!
+
+ method_names.sort.each do |m|
+ r = parse_tree_for_method(klass, m.to_sym)
+ code << r
+ end
+
+ klass.modules.each do |mod| # TODO: add a test for this
+ mod.instance_methods.each do |m|
+ r = parse_tree_for_method(mod, m.to_sym)
+ code << r
+ end
+ end
+
+ klass.singleton_methods(false).sort.each do |m|
+ code << parse_tree_for_method(klass, m.to_sym, true)
+ end
+
+ result << code
+ end
+ return result
+ end
+
+ ##
+ # Returns the parse tree for just one +method+ of a class +klass+.
+ #
+ # Format:
+ #
+ # [:defn, :name, :body]
+
+ def parse_tree_for_method(klass, method, is_cls_meth=false)
+ $stderr.puts "** parse_tree_for_method(#{klass}, #{method}):" if $DEBUG
+ r = parse_tree_for_meth(klass, method.to_sym, is_cls_meth)
+ r
+ end
+
+ ##
+ # Returns the parse tree for a string +source+.
+ #
+ # Format:
+ #
+ # [[sexps] ... ]
+
+ def parse_tree_for_string(source, filename = '(string)', line = 1)
+ old_verbose, $VERBOSE = $VERBOSE, true
+ return parse_tree_for_str0(source, filename, line)
+ ensure
+ $VERBOSE = old_verbose
+ end
+
+ def parse_tree_for_str0(*__1args2__) # :nodoc:
+ parse_tree_for_str(*__1args2__) # just helps clean up the binding
+ end
+
+ if RUBY_VERSION < "1.8.4" then
+ inline do |builder|
+ builder.add_type_converter("bool", '', '')
+ builder.c_singleton "
+ bool has_alloca() {
+ (void)self;
+ #ifdef C_ALLOCA
+ return Qtrue;
+ #else
+ return Qfalse;
+ #endif
+ }"
+ end
+ else
+ def self.has_alloca
+ true
+ end
+ end
+
+
+ NODE_NAMES = [
+ # 00
+ :method, :fbody, :cfunc, :scope, :block,
+ :if, :case, :when, :opt_n, :while,
+ # 10
+ :until, :iter, :for, :break, :next,
+ :redo, :retry, :begin, :rescue, :resbody,
+ # 20
+ :ensure, :and, :or, :not, :masgn,