shoes 4.0.0.pre2 → 4.0.0.pre3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -21
  3. metadata +18 -337
  4. data/CHANGELOG +0 -84
  5. data/Gemfile +0 -24
  6. data/Guardfile +0 -11
  7. data/Rakefile +0 -14
  8. data/app.yaml +0 -60
  9. data/benchmark/app_clear.rb +0 -21
  10. data/benchmark/clear.rb +0 -69
  11. data/benchmark/memory/text_dispose.rb +0 -9
  12. data/benchmark/para_creator.rb +0 -9
  13. data/benchmark/paras.rb +0 -52
  14. data/benchmark/urls.rb +0 -40
  15. data/bin/ruby-shoes +0 -6
  16. data/bin/shoes-guard +0 -8
  17. data/bin/shoes-stub +0 -59
  18. data/ext/install/Rakefile +0 -29
  19. data/ext/install/shoes.bat +0 -9
  20. data/lib/shoes.rb +0 -5
  21. data/lib/shoes/ui/cli.rb +0 -102
  22. data/lib/shoes/ui/help.rb +0 -535
  23. data/lib/shoes/ui/manual.rb +0 -6
  24. data/lib/shoes/version.rb +0 -3
  25. data/manifests/common.rb +0 -34
  26. data/manifests/shoes.rb +0 -44
  27. data/samples/Gemfile +0 -3
  28. data/samples/Gemfile.lock +0 -35
  29. data/samples/README +0 -97
  30. data/samples/boom.rb +0 -239
  31. data/samples/class-book-adjusted.rb +0 -45
  32. data/samples/class-book.rb +0 -43
  33. data/samples/class-book.yaml +0 -387
  34. data/samples/clicky.rb +0 -24
  35. data/samples/cy.png +0 -0
  36. data/samples/expert-definr.rb +0 -23
  37. data/samples/expert-funnies.rb +0 -60
  38. data/samples/expert-game-of-life-adjusted.rb +0 -249
  39. data/samples/expert-game-of-life.rb +0 -243
  40. data/samples/expert-irb-adjusted.rb +0 -110
  41. data/samples/expert-irb.rb +0 -112
  42. data/samples/expert-minesweeper-adjusted.rb +0 -272
  43. data/samples/expert-minesweeper.rb +0 -267
  44. data/samples/expert-othello-adjusted.rb +0 -325
  45. data/samples/expert-othello.rb +0 -318
  46. data/samples/expert-pong.rb +0 -62
  47. data/samples/expert-snake.rb +0 -78
  48. data/samples/expert-tankspank.rb +0 -385
  49. data/samples/flow.rb +0 -63
  50. data/samples/good-arc.rb +0 -45
  51. data/samples/good-clock.rb +0 -51
  52. data/samples/good-displace.rb +0 -98
  53. data/samples/good-follow.rb +0 -26
  54. data/samples/good-potato-chopping.rb +0 -22
  55. data/samples/good-reminder.rb +0 -174
  56. data/samples/good-vjot.rb +0 -58
  57. data/samples/gray.rb +0 -11
  58. data/samples/loogink.png +0 -0
  59. data/samples/nks_booklist.rb +0 -24
  60. data/samples/nks_breadsticks.rb +0 -7
  61. data/samples/nks_dancing_circle.rb +0 -13
  62. data/samples/nks_dictionary.rb +0 -23
  63. data/samples/nks_edit_box.rb +0 -4
  64. data/samples/nks_edit_line.rb +0 -6
  65. data/samples/nks_notes.rb +0 -16
  66. data/samples/nks_poem.rb +0 -22
  67. data/samples/nks_self.rb +0 -6
  68. data/samples/nks_text_sizes.rb +0 -10
  69. data/samples/nks_trurl.rb +0 -5
  70. data/samples/original-manual-adjusted.rb +0 -475
  71. data/samples/original-manual.rb +0 -472
  72. data/samples/packaging/package_me.rb +0 -6
  73. data/samples/potato_chopping/1258_s001.gif +0 -0
  74. data/samples/potato_chopping/1258_s002.gif +0 -0
  75. data/samples/potato_chopping/1258_s003.gif +0 -0
  76. data/samples/potato_chopping/1258_s004.gif +0 -0
  77. data/samples/potato_chopping/1258_s005.gif +0 -0
  78. data/samples/potato_chopping/1258_s006.gif +0 -0
  79. data/samples/potato_chopping/1258_s007.gif +0 -0
  80. data/samples/potato_chopping/1258_s008.gif +0 -0
  81. data/samples/potato_chopping/1258_s009.gif +0 -0
  82. data/samples/potato_chopping/1258_s010.gif +0 -0
  83. data/samples/potato_chopping/1258_s011.gif +0 -0
  84. data/samples/potato_chopping/1258_s012.gif +0 -0
  85. data/samples/potato_chopping/1258_s013.gif +0 -0
  86. data/samples/potato_chopping/1258_s014.gif +0 -0
  87. data/samples/potato_chopping/1258_s015.gif +0 -0
  88. data/samples/potato_chopping/1258_s016.gif +0 -0
  89. data/samples/potato_chopping/1258_s017.gif +0 -0
  90. data/samples/potato_chopping/1258_s018.gif +0 -0
  91. data/samples/potato_chopping/1258_s019.gif +0 -0
  92. data/samples/potato_chopping/1258_s020.gif +0 -0
  93. data/samples/potato_chopping/1258_s021.gif +0 -0
  94. data/samples/potato_chopping/1258_s022.gif +0 -0
  95. data/samples/potato_chopping/1258_s023.gif +0 -0
  96. data/samples/potato_chopping/1258_s024.gif +0 -0
  97. data/samples/potato_chopping/1258_s025.gif +0 -0
  98. data/samples/potato_chopping/1258_s026.gif +0 -0
  99. data/samples/potato_chopping/1258_s027.gif +0 -0
  100. data/samples/potato_chopping/1258_s028.gif +0 -0
  101. data/samples/potato_chopping/1258_s029.gif +0 -0
  102. data/samples/potato_chopping/1258_s030.gif +0 -0
  103. data/samples/potato_chopping/1258_s031.gif +0 -0
  104. data/samples/potato_chopping/1258_s032.gif +0 -0
  105. data/samples/potato_chopping/1258_s033.gif +0 -0
  106. data/samples/potato_chopping/1258_s034.gif +0 -0
  107. data/samples/potato_chopping/1258_s035.gif +0 -0
  108. data/samples/potato_chopping/1258_s036.gif +0 -0
  109. data/samples/potato_chopping/1258_s037.gif +0 -0
  110. data/samples/potato_chopping/1258_s038.gif +0 -0
  111. data/samples/potato_chopping/1258_s039.gif +0 -0
  112. data/samples/potato_chopping/1258_s040.gif +0 -0
  113. data/samples/potato_chopping/1258_s041.gif +0 -0
  114. data/samples/potato_chopping/1258_s042.gif +0 -0
  115. data/samples/potato_chopping/1258_s043.gif +0 -0
  116. data/samples/potato_chopping/1258_s044.gif +0 -0
  117. data/samples/potato_chopping/1258_s045.gif +0 -0
  118. data/samples/potato_chopping/1258_s046.gif +0 -0
  119. data/samples/potato_chopping/1258_s047.gif +0 -0
  120. data/samples/potato_chopping/1258_s048.gif +0 -0
  121. data/samples/potato_chopping/1258_s049.gif +0 -0
  122. data/samples/potato_chopping/1258_s050.gif +0 -0
  123. data/samples/potato_chopping/1258_s051.gif +0 -0
  124. data/samples/potato_chopping/1258_s052.gif +0 -0
  125. data/samples/potato_chopping/1258_s053.gif +0 -0
  126. data/samples/potato_chopping/1258_s054.gif +0 -0
  127. data/samples/potato_chopping/1258_s055.gif +0 -0
  128. data/samples/potato_chopping/1258_s056.gif +0 -0
  129. data/samples/potato_chopping/1258_s057.gif +0 -0
  130. data/samples/potato_chopping/1258_s058.gif +0 -0
  131. data/samples/potato_chopping/1258_s059.gif +0 -0
  132. data/samples/present.rb +0 -27
  133. data/samples/progress.rb +0 -10
  134. data/samples/sample1.rb +0 -30
  135. data/samples/sample12.rb +0 -21
  136. data/samples/sample13.rb +0 -13
  137. data/samples/sample14.rb +0 -64
  138. data/samples/sample15.rb +0 -18
  139. data/samples/sample16.rb +0 -10
  140. data/samples/sample17.rb +0 -10
  141. data/samples/sample2.rb +0 -14
  142. data/samples/sample21.rb +0 -5
  143. data/samples/sample23.rb +0 -8
  144. data/samples/sample24.rb +0 -21
  145. data/samples/sample27.rb +0 -18
  146. data/samples/sample3.rb +0 -14
  147. data/samples/sample31.rb +0 -22
  148. data/samples/sample34.rb +0 -27
  149. data/samples/sample35.rb +0 -32
  150. data/samples/sample37.rb +0 -8
  151. data/samples/sample4.rb +0 -7
  152. data/samples/sample42.rb +0 -14
  153. data/samples/sample45.rb +0 -11
  154. data/samples/sample56.rb +0 -10
  155. data/samples/sample6.rb +0 -9
  156. data/samples/sample7.rb +0 -3
  157. data/samples/sample8.rb +0 -7
  158. data/samples/sample9.rb +0 -10
  159. data/samples/simple-accordion.rb +0 -75
  160. data/samples/simple-anim-shapes.rb +0 -17
  161. data/samples/simple-anim-text.rb +0 -13
  162. data/samples/simple-animate.rb +0 -12
  163. data/samples/simple-arc.rb +0 -23
  164. data/samples/simple-bounce.rb +0 -24
  165. data/samples/simple-brightness-transitions.rb +0 -8
  166. data/samples/simple-button-animate.rb +0 -16
  167. data/samples/simple-calc-2.rb +0 -34
  168. data/samples/simple-calc.rb +0 -70
  169. data/samples/simple-color-selector.rb +0 -10
  170. data/samples/simple-color-transitions.rb +0 -11
  171. data/samples/simple-control-sizes.rb +0 -24
  172. data/samples/simple-curve.rb +0 -26
  173. data/samples/simple-dialogs-outside.rb +0 -12
  174. data/samples/simple-dialogs.rb +0 -32
  175. data/samples/simple-displace.rb +0 -15
  176. data/samples/simple-downloader.rb +0 -27
  177. data/samples/simple-draw.rb +0 -13
  178. data/samples/simple-editor.rb +0 -28
  179. data/samples/simple-face.rb +0 -14
  180. data/samples/simple-flow-wrap.rb +0 -11
  181. data/samples/simple-font.rb +0 -17
  182. data/samples/simple-form.rb +0 -29
  183. data/samples/simple-form.shy +0 -0
  184. data/samples/simple-fullscreen.rb +0 -4
  185. data/samples/simple-guess-game.rb +0 -28
  186. data/samples/simple-keypress.rb +0 -14
  187. data/samples/simple-manual.rb +0 -2
  188. data/samples/simple-mask.rb +0 -21
  189. data/samples/simple-menu.rb +0 -47
  190. data/samples/simple-mouse-follow.rb +0 -8
  191. data/samples/simple-move.rb +0 -13
  192. data/samples/simple-oval.rb +0 -3
  193. data/samples/simple-sample-executor.rb +0 -6
  194. data/samples/simple-shoes-intro.rb +0 -22
  195. data/samples/simple-slide.rb +0 -56
  196. data/samples/simple-sound.rb +0 -30
  197. data/samples/simple-sphere.rb +0 -28
  198. data/samples/simple-stripes.rb +0 -8
  199. data/samples/simple-tictactoe.rb +0 -238
  200. data/samples/simple-timer.rb +0 -15
  201. data/samples/simple-video.rb +0 -13
  202. data/samples/simple-visibility.rb +0 -11
  203. data/samples/simple-widget.rb +0 -9
  204. data/samples/sounds/102719__sarge4267__explosion.mp3 +0 -0
  205. data/samples/sounds/145622__andybrannan__train-fog-horn-long-wyomming.aiff +0 -0
  206. data/samples/sounds/46492__phreaksaccount__shields1.ogg +0 -0
  207. data/samples/sounds/61847__simon-rue__boink-v3.wav +0 -0
  208. data/samples/swt-raw.rb +0 -20
  209. data/samples/troll.rb +0 -22
  210. data/shoes.gemspec +0 -29
  211. data/snapshots/sample1.png +0 -0
  212. data/snapshots/sample10.png +0 -0
  213. data/snapshots/sample11.png +0 -0
  214. data/snapshots/sample12.png +0 -0
  215. data/snapshots/sample13.png +0 -0
  216. data/snapshots/sample14.png +0 -0
  217. data/snapshots/sample15.png +0 -0
  218. data/snapshots/sample16.png +0 -0
  219. data/snapshots/sample17.png +0 -0
  220. data/snapshots/sample18.png +0 -0
  221. data/snapshots/sample19.png +0 -0
  222. data/snapshots/sample2.png +0 -0
  223. data/snapshots/sample20.png +0 -0
  224. data/snapshots/sample21.png +0 -0
  225. data/snapshots/sample22.png +0 -0
  226. data/snapshots/sample23.png +0 -0
  227. data/snapshots/sample24.png +0 -0
  228. data/snapshots/sample27.png +0 -0
  229. data/snapshots/sample28.png +0 -0
  230. data/snapshots/sample29.png +0 -0
  231. data/snapshots/sample3.png +0 -0
  232. data/snapshots/sample30.png +0 -0
  233. data/snapshots/sample31.png +0 -0
  234. data/snapshots/sample34.png +0 -0
  235. data/snapshots/sample35.png +0 -0
  236. data/snapshots/sample36.png +0 -0
  237. data/snapshots/sample37.png +0 -0
  238. data/snapshots/sample4.png +0 -0
  239. data/snapshots/sample42.png +0 -0
  240. data/snapshots/sample44.png +0 -0
  241. data/snapshots/sample45.png +0 -0
  242. data/snapshots/sample46.png +0 -0
  243. data/snapshots/sample5.png +0 -0
  244. data/snapshots/sample56.png +0 -0
  245. data/snapshots/sample6.png +0 -0
  246. data/snapshots/sample7.png +0 -0
  247. data/snapshots/sample8.png +0 -0
  248. data/snapshots/sample9.png +0 -0
  249. data/snapshots/sample99.png +0 -0
  250. data/static/PKGBUILD +0 -47
  251. data/static/Shoes.icns +0 -0
  252. data/static/avatar.png +0 -0
  253. data/static/code_highlighter.js +0 -188
  254. data/static/code_highlighter_ruby.js +0 -26
  255. data/static/downloading.png +0 -0
  256. data/static/icon-debug.png +0 -0
  257. data/static/icon-error.png +0 -0
  258. data/static/icon-info.png +0 -0
  259. data/static/icon-warn.png +0 -0
  260. data/static/listbox_button1.png +0 -0
  261. data/static/listbox_button2.png +0 -0
  262. data/static/man-app.png +0 -0
  263. data/static/man-builds.png +0 -0
  264. data/static/man-builds1.png +0 -0
  265. data/static/man-editor-notepad.png +0 -0
  266. data/static/man-editor-osx.png +0 -0
  267. data/static/man-ele-background.png +0 -0
  268. data/static/man-ele-border.png +0 -0
  269. data/static/man-ele-button.png +0 -0
  270. data/static/man-ele-check.png +0 -0
  271. data/static/man-ele-editbox.png +0 -0
  272. data/static/man-ele-editline.png +0 -0
  273. data/static/man-ele-image.png +0 -0
  274. data/static/man-ele-listbox.png +0 -0
  275. data/static/man-ele-progress.png +0 -0
  276. data/static/man-ele-radio.png +0 -0
  277. data/static/man-ele-shape.png +0 -0
  278. data/static/man-ele-textblock.png +0 -0
  279. data/static/man-ele-video.png +0 -0
  280. data/static/man-intro-dmg.png +0 -0
  281. data/static/man-intro-exe.png +0 -0
  282. data/static/man-look-tiger.png +0 -0
  283. data/static/man-look-ubuntu.png +0 -0
  284. data/static/man-look-vista.png +0 -0
  285. data/static/man-run-osx.png +0 -0
  286. data/static/man-run-vista.png +0 -0
  287. data/static/man-run-xp.png +0 -0
  288. data/static/man-shot1.png +0 -0
  289. data/static/manual-en.txt +0 -3531
  290. data/static/manual-ja.txt +0 -2829
  291. data/static/manual.css +0 -184
  292. data/static/menu-corner1.png +0 -0
  293. data/static/menu-corner2.png +0 -0
  294. data/static/menu-gray.png +0 -0
  295. data/static/menu-left.png +0 -0
  296. data/static/menu-right.png +0 -0
  297. data/static/menu-top.png +0 -0
  298. data/static/shoes-dmg.jpg +0 -0
  299. data/static/shoes-icon-blue.png +0 -0
  300. data/static/shoes-icon-brown.png +0 -0
  301. data/static/shoes-icon.png +0 -0
  302. data/static/shoes-manual-apps.gif +0 -0
  303. data/static/shoes-manual-apps.png +0 -0
  304. data/static/shoes_main_window.png +0 -0
  305. data/static/stripe.png +0 -0
  306. data/static/tutor-back.png +0 -0
  307. data/tasks/changelog.rb +0 -92
  308. data/tasks/gem.rb +0 -38
  309. data/tasks/rspec.rb +0 -106
  310. data/tasks/sample.rb +0 -66
  311. data/tasks/yard.rb +0 -13
@@ -1,9 +0,0 @@
1
- class MyWidget < Shoes::Widget
2
- def initialize(color, args)
3
- background color
4
- end
5
- end
6
-
7
- Shoes.app do
8
- my_widget green, width: 170, height: 120
9
- end
data/samples/swt-raw.rb DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'java'
4
- $:.unshift(File.expand_path("../../lib", __FILE__))
5
- require 'swt'
6
-
7
- class ButtonExample
8
-
9
- def initialize
10
- style = ::Swt::SWT::CLOSE | ::Swt::SWT::MIN | ::Swt::SWT::V_SCROLL #| ::Swt::SWT::MAX | ::Swt::SWT::RESIZE
11
- @shell = Swt::Widgets::Shell.new(style)
12
- @shell.open
13
- end
14
-
15
- def start
16
- ::Swt.event_loop { @shell.disposed? }
17
- end
18
- end
19
-
20
- ButtonExample.new.start
data/samples/troll.rb DELETED
@@ -1,22 +0,0 @@
1
- require 'pry'
2
- require 'pry-nav'
3
- require 'shoes/swt/leak_hunter'
4
-
5
- Shoes.app do
6
- every(1) do
7
- print "!"
8
- clear
9
- stack width:100 do
10
- background green
11
-
12
- button "quit" do
13
- clear
14
- quit
15
- end
16
-
17
- 100.times do
18
- para "b", link("kind", fg: red)
19
- end
20
- end
21
- end
22
- end
data/shoes.gemspec DELETED
@@ -1,29 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- require_relative 'lib/shoes/version'
3
- require_relative 'manifests/shoes'
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "shoes"
7
- s.version = Shoes::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ["Team Shoes"]
10
- s.email = ["shoes@librelist.com"]
11
- s.homepage = "https://github.com/shoes/shoes4"
12
- s.summary = %q{Shoes is the best little GUI toolkit for Ruby. Shoes runs on JRuby only for now.}
13
- s.description = %q{Shoes is the best little GUI toolkit for Ruby. Shoes makes building for Mac, Windows, and Linux super simple. Shoes runs on JRuby only for now.}
14
- s.license = 'MIT'
15
-
16
- s.files = ShoesManifest.files
17
- s.test_files = ShoesManifest.test_files
18
- s.require_paths = ["lib"]
19
-
20
- s.add_dependency "shoes-dsl", Shoes::VERSION
21
- s.add_dependency "shoes-swt", Shoes::VERSION
22
-
23
- s.add_dependency "furoshiki", ">=0.1.2" # For packaging
24
- s.add_dependency "nokogiri" # For converting the manual to HTML
25
-
26
- # Curious why we don't install shoes? See ext/Rakefile for the nitty-gritty.
27
- s.executables = ['shoes-stub', 'ruby-shoes']
28
- s.extensions = ['ext/install/Rakefile']
29
- end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/static/PKGBUILD DELETED
@@ -1,47 +0,0 @@
1
- # Original contributor: Michael Fellinger <m.fellinger@gmail.com>
2
- # Updated by:
3
- # Tapio Saarinen <admin@bitlong.org>
4
- # Steve Klabnik <steve@steveklabnik.com>
5
- # Michael Fellinger <m.fellinger@gmail.com>
6
-
7
- pkgname=shoes
8
- pkgver=3.0
9
- pkgrel=1
10
- pkgdesc="The best little GUI toolkit, for Ruby."
11
- url="http://shoesrb.com/"
12
- arch=(i686 x86_64)
13
- license="MIT"
14
- depends=('ruby' 'giflib' 'gtk2' 'curl' 'portaudio' 'tk')
15
- makedepends=('git')
16
- conflicts=('shoes')
17
- replaces=('shoes')
18
- provides=('shoes')
19
- backup=()
20
- install=
21
- source=()
22
- md5sums=()
23
-
24
- _pkgname=shoes
25
- _gitrepo="git://github.com/shoes/shoes.git"
26
-
27
- build() {
28
- cd $srcdir
29
-
30
- msg "Getting source..."
31
- if [ -d $_pkgname ]; then
32
- cd $_pkgname
33
- git pull || return 1
34
- else
35
- git clone $_gitrepo $_pkgname || return 1
36
- cd $_pkgname
37
- fi
38
-
39
- rake
40
- cd dist
41
-
42
- mkdir -p $pkgdir/usr/{bin,lib/shoes}
43
- cp -r * $pkgdir/usr/lib/shoes/
44
-
45
- ln -s /usr/lib/shoes/shoes $pkgdir/usr/bin/shoes
46
- install -D -m644 $srcdir/$_pkgname/COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
47
- }
data/static/Shoes.icns DELETED
Binary file
data/static/avatar.png DELETED
Binary file
@@ -1,188 +0,0 @@
1
- /* Unobtrustive Code Highlighter By Dan Webb 11/2005
2
- Version: 0.4
3
-
4
- Usage:
5
- Add a script tag for this script and any stylesets you need to use
6
- to the page in question, add correct class names to CODE elements,
7
- define CSS styles for elements. That's it!
8
-
9
- Known to work on:
10
- IE 5.5+ PC
11
- Firefox/Mozilla PC/Mac
12
- Opera 7.23 + PC
13
- Safari 2
14
-
15
- Known to degrade gracefully on:
16
- IE5.0 PC
17
-
18
- Note: IE5.0 fails due to the use of lookahead in some stylesets. To avoid script errors
19
- in older browsers use expressions that use lookahead in string format when defining stylesets.
20
-
21
- This script is inspired by star-light by entirely cunning Dean Edwards
22
- http://dean.edwards.name/star-light/.
23
- */
24
-
25
- // replace callback support for safari.
26
- if ("a".replace(/a/, function() {return "b"}) != "b") (function(){
27
- var default_replace = String.prototype.replace;
28
- String.prototype.replace = function(search,replace){
29
- // replace is not function
30
- if(typeof replace != "function"){
31
- return default_replace.apply(this,arguments)
32
- }
33
- var str = "" + this;
34
- var callback = replace;
35
- // search string is not RegExp
36
- if(!(search instanceof RegExp)){
37
- var idx = str.indexOf(search);
38
- return (
39
- idx == -1 ? str :
40
- default_replace.apply(str,[search,callback(search, idx, str)])
41
- )
42
- }
43
- var reg = search;
44
- var result = [];
45
- var lastidx = reg.lastIndex;
46
- var re;
47
- while((re = reg.exec(str)) != null){
48
- var idx = re.index;
49
- var args = re.concat(idx, str);
50
- result.push(
51
- str.slice(lastidx,idx),
52
- callback.apply(null,args).toString()
53
- );
54
- if(!reg.global){
55
- lastidx += RegExp.lastMatch.length;
56
- break
57
- }else{
58
- lastidx = reg.lastIndex;
59
- }
60
- }
61
- result.push(str.slice(lastidx));
62
- return result.join("")
63
- }
64
- })();
65
-
66
- var CodeHighlighter = { styleSets : new Array };
67
-
68
- CodeHighlighter.addStyle = function(name, rules) {
69
- // using push test to disallow older browsers from adding styleSets
70
- if ([].push) this.styleSets.push({
71
- name : name,
72
- rules : rules,
73
- ignoreCase : arguments[2] || false
74
- })
75
-
76
- function setEvent() {
77
- // set highlighter to run on load (use LowPro if present)
78
- if (typeof Event != 'undefined' && typeof Event.onReady == 'function')
79
- return Event.onReady(CodeHighlighter.init.bind(CodeHighlighter));
80
-
81
- var old = window.onload;
82
-
83
- if (typeof window.onload != 'function') {
84
- window.onload = function() { CodeHighlighter.init() };
85
- } else {
86
- window.onload = function() {
87
- old();
88
- CodeHighlighter.init();
89
- }
90
- }
91
- }
92
-
93
- // only set the event when the first style is added
94
- if (this.styleSets.length==1) setEvent();
95
- }
96
-
97
- CodeHighlighter.init = function() {
98
- if (!document.getElementsByTagName) return;
99
- if ("a".replace(/a/, function() {return "b"}) != "b") return; // throw out Safari versions that don't support replace function
100
- // throw out older browsers
101
-
102
- var codeEls = document.getElementsByTagName("CODE");
103
- // collect array of all pre elements
104
- codeEls.filter = function(f) {
105
- var a = new Array;
106
- for (var i = 0; i < this.length; i++) if (f(this[i])) a[a.length] = this[i];
107
- return a;
108
- }
109
-
110
- var rules = new Array;
111
- rules.toString = function() {
112
- // joins regexes into one big parallel regex
113
- var exps = new Array;
114
- for (var i = 0; i < this.length; i++) exps.push(this[i].exp);
115
- return exps.join("|");
116
- }
117
-
118
- function addRule(className, rule) {
119
- // add a replace rule
120
- var exp = (typeof rule.exp != "string")?String(rule.exp).substr(1, String(rule.exp).length-2):rule.exp;
121
- // converts regex rules to strings and chops of the slashes
122
- rules.push({
123
- className : className,
124
- exp : "(" + exp + ")",
125
- length : (exp.match(/(^|[^\\])\([^?]/g) || "").length + 1, // number of subexps in rule
126
- replacement : rule.replacement || null
127
- });
128
- }
129
-
130
- function parse(text, ignoreCase) {
131
- // main text parsing and replacement
132
- return text.replace(new RegExp(rules, (ignoreCase)?"gi":"g"), function() {
133
- var i = 0, j = 1, rule;
134
- while (rule = rules[i++]) {
135
- if (arguments[j]) {
136
- // if no custom replacement defined do the simple replacement
137
- if (!rule.replacement) return "<span class=\"" + rule.className + "\">" + arguments[0] + "</span>";
138
- else {
139
- // replace $0 with the className then do normal replaces
140
- var str = rule.replacement.replace("$0", rule.className);
141
- for (var k = 1; k <= rule.length - 1; k++) str = str.replace("$" + k, arguments[j + k]);
142
- return str;
143
- }
144
- } else j+= rule.length;
145
- }
146
- });
147
- }
148
-
149
- function highlightCode(styleSet) {
150
- // clear rules array
151
- var parsed, clsRx = new RegExp("(\\s|^)" + styleSet.name + "(\\s|$)");
152
- rules.length = 0;
153
-
154
- // get stylable elements by filtering out all code elements without the correct className
155
- var stylableEls = codeEls.filter(function(item) { return clsRx.test(item.className) });
156
-
157
- // add style rules to parser
158
- for (var className in styleSet.rules) addRule(className, styleSet.rules[className]);
159
-
160
-
161
- // replace for all elements
162
- for (var i = 0; i < stylableEls.length; i++) {
163
- // EVIL hack to fix IE whitespace badness if it's inside a <pre>
164
- if (/MSIE/.test(navigator.appVersion) && stylableEls[i].parentNode.nodeName == 'PRE') {
165
- stylableEls[i] = stylableEls[i].parentNode;
166
-
167
- parsed = stylableEls[i].innerHTML.replace(/(<code[^>]*>)([^<]*)<\/code>/i, function() {
168
- return arguments[1] + parse(arguments[2], styleSet.ignoreCase) + "</code>"
169
- });
170
- parsed = parsed.replace(/\n( *)/g, function() {
171
- var spaces = "";
172
- for (var i = 0; i < arguments[1].length; i++) spaces+= "&nbsp;";
173
- return "\n" + spaces;
174
- });
175
- parsed = parsed.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;");
176
- parsed = parsed.replace(/\n(<\/\w+>)?/g, "<br />$1").replace(/<br \/>[\n\r\s]*<br \/>/g, "<p><br></p>");
177
-
178
- } else parsed = parse(stylableEls[i].innerHTML, styleSet.ignoreCase);
179
-
180
- stylableEls[i].innerHTML = parsed;
181
- }
182
- }
183
-
184
- // run highlighter on all stylesets
185
- for (var i=0; i < this.styleSets.length; i++) {
186
- highlightCode(this.styleSets[i]);
187
- }
188
- }
@@ -1,26 +0,0 @@
1
- CodeHighlighter.addStyle("rb",{
2
- comment : {
3
- exp : /#[^\n]+/
4
- },
5
- brackets : {
6
- exp : /\(|\)|\{|\}/
7
- },
8
- string : {
9
- exp : /'[^']*'|"[^"]*"/
10
- },
11
- keywords : {
12
- exp : /\b(do|end|self|class|def|if|module|yield|then|else|for|until|unless|while|elsif|case|when|break|retry|redo|rescue|raise)\b/
13
- },
14
- constant : {
15
- exp : /\b([A-Z]\w+)\b/
16
- },
17
- ivar : {
18
- exp : /([^@])(@{1,2}\w+)\b/
19
- },
20
- ns : {
21
- exp : /(:{2,})/
22
- },
23
- symbol : {
24
- exp : /(:[A-Za-z0-9_!?]+)/
25
- }
26
- });