Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

fork form

  • Loading branch information...
commit bd48ecbda626c11c8bbf2d122505c385434c0edd 0 parents
tka tka authored
Showing with 4,544 additions and 0 deletions.
  1. +9 −0 .gitignore
  2. +54 −0 Info.plist
  3. +339 −0 LICENSE
  4. +22 −0 README.markdown
  5. +123 −0 Rakefile
  6. +2 −0  bin/build-all.sh
  7. +9 −0 bin/startJar-linux.sh
  8. +8 −0 bin/startJar-osx.sh
  9. +5 −0 bin/to_release.sh
  10. +89 −0 build_configuration.rb
  11. +74 −0 editor_extensions/vim-compassapp/plugin/compassapp.vim
  12. BIN  lib/applescript/64.png
  13. BIN  lib/applescript/growl.applescript
  14. BIN  lib/applescript/growl.scpt
  15. BIN  lib/images/icon/128.png
  16. BIN  lib/images/icon/16.png
  17. BIN  lib/images/icon/16_dark.png
  18. BIN  lib/images/icon/256.png
  19. BIN  lib/images/icon/32.png
  20. BIN  lib/images/icon/32_dark.png
  21. BIN  lib/images/icon/512.png
  22. BIN  lib/images/icon/64.png
  23. BIN  lib/images/icon/icon-osx.icns
  24. BIN  lib/images/icon/icon-win.ico
  25. BIN  lib/images/where_am_i.png
  26. BIN  lib/java/jruby-complete.jar
  27. +925 −0 lib/javascripts/livereload.js
  28. +29 −0 lib/ruby/compass_0.11/compass-0.11.7/LICENSE.markdown
  29. +56 −0 lib/ruby/compass_0.11/compass-0.11.7/README.markdown
  30. +115 −0 lib/ruby/compass_0.11/compass-0.11.7/Rakefile
  31. +5 −0 lib/ruby/compass_0.11/compass-0.11.7/VERSION.yml
  32. +44 −0 lib/ruby/compass_0.11/compass-0.11.7/bin/compass
  33. +707 −0 lib/ruby/compass_0.11/compass-0.11.7/bin/compass.compiled.rbc
  34. +4 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/README.markdown
  35. +7 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/config.rb
  36. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/images/grid.png
  37. +85 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/index.html.haml
  38. +282 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/elements.html.haml
  39. +200 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/forms.html.haml
  40. +274 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/grid.html.haml
  41. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/test-small.jpg
  42. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/test.jpg
  43. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/parts/valid.png
  44. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/src/ie.scss
  45. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/src/images/grid.png
  46. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/src/print.scss
  47. +9 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_default/src/screen.scss
  48. +8 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/config.rb
  49. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/buttons/cross.png
  50. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/buttons/key.png
  51. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/buttons/tick.png
  52. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/grid.png
  53. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/doc.png
  54. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/email.png
  55. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/external.png
  56. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/feed.png
  57. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/im.png
  58. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/pdf.png
  59. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/visited.png
  60. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/link_icons/xls.png
  61. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/test-small.jpg
  62. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/test.jpg
  63. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/images/valid.png
  64. +96 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/index.html.haml
  65. +67 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/plugins/buttons.html.haml
  66. +100 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/plugins/fancy_type.html.haml
  67. +61 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/plugins/link_icons.html.haml
  68. +100 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/plugins/rtl.html.haml
  69. +47 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/buttons.scss
  70. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/ie.scss
  71. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/images/grid.png
  72. +13 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/link_icons.scss
  73. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/print.scss
  74. +15 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/rtl_screen.scss
  75. +12 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_plugins/src/screen.scss
  76. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped/images/grid.png
  77. +4 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped/src/ie.scss
  78. +4 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped/src/print.scss
  79. +5 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped/src/screen.scss
  80. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped_form/images/grid.png
  81. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped_form/src/ie.scss
  82. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped_form/src/print.scss
  83. +15 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_scoped_form/src/screen.scss
  84. +7 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/config.rb
  85. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/images/grid.png
  86. +86 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/index.html.haml
  87. +100 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/parts/fancy_type.html.haml
  88. +100 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/parts/liquid.html.haml
  89. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/parts/test-small.jpg
  90. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/parts/test.jpg
  91. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/parts/valid.png
  92. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/src/ie.scss
  93. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/src/images/grid.png
  94. +69 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/src/liquid.scss
  95. +3 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/src/print.scss
  96. +69 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/blueprint_semantic/src/screen.scss
  97. +4 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/compass/bootstrap.rb
  98. +2 −0  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/clean.rb
  99. +39 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/compass/compass.html.haml
  100. +6 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/compass/compass_app_log.txt
  101. +8 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/compass/config.rb
  102. +7 −0 lib/ruby/compass_0.11/compass-0.11.7/examples/compass/headers.txt
  103. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/blue_arrow.gif
  104. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/border2.png
  105. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem-a043c4f148.png
  106. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/favorite.png
  107. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/important.png
  108. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/photos.png
  109. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/readonly.png
  110. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/symbolic-link.png
  111. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/system.png
  112. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/emblem/unreadable.png
  113. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag-03c3b29b35.png
  114. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag-21cfbfbfc8.png
  115. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ad.png
  116. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ae.png
  117. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/af.png
  118. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ag.png
  119. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ai.png
  120. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/al.png
  121. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/am.png
  122. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/an.png
  123. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ao.png
  124. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ar.png
  125. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/as.png
  126. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/at.png
  127. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/au.png
  128. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/aw.png
  129. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ax.png
  130. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/az.png
  131. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ba.png
  132. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bb.png
  133. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bd.png
  134. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/be.png
  135. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bf.png
  136. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bg.png
  137. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bh.png
  138. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bi.png
  139. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bj.png
  140. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bm.png
  141. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bn.png
  142. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bo.png
  143. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/br.png
  144. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bs.png
  145. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bt.png
  146. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bv.png
  147. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bw.png
  148. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/by.png
  149. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/bz.png
  150. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ca.png
  151. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/catalonia.png
  152. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cc.png
  153. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cd.png
  154. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cf.png
  155. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cg.png
  156. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ch.png
  157. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ci.png
  158. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ck.png
  159. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cl.png
  160. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cm.png
  161. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cn.png
  162. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/co.png
  163. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cr.png
  164. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cs.png
  165. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cu.png
  166. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cv.png
  167. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cx.png
  168. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cy.png
  169. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/cz.png
  170. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/de.png
  171. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/dj.png
  172. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/dk.png
  173. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/dm.png
  174. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/do.png
  175. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/dz.png
  176. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ec.png
  177. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ee.png
  178. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/eg.png
  179. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/eh.png
  180. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/england.png
  181. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/er.png
  182. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/es.png
  183. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/et.png
  184. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/europeanunion.png
  185. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fam.png
  186. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fi.png
  187. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fj.png
  188. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fk.png
  189. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fm.png
  190. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fo.png
  191. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/fr.png
  192. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ga.png
  193. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gb.png
  194. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gd.png
  195. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ge.png
  196. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gf.png
  197. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gh.png
  198. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gi.png
  199. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gl.png
  200. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gm.png
  201. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gn.png
  202. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gp.png
  203. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gq.png
  204. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gr.png
  205. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gs.png
  206. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gt.png
  207. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gu.png
  208. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gw.png
  209. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/gy.png
  210. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/hk.png
  211. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/hm.png
  212. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/hn.png
  213. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/hr.png
  214. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ht.png
  215. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/hu.png
  216. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/id-2.png
  217. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ie.png
  218. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/il.png
  219. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/in.png
  220. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/io.png
  221. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/iq.png
  222. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ir.png
  223. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/is.png
  224. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/it.png
  225. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/jm.png
  226. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/jo.png
  227. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/jp.png
  228. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ke.png
  229. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kg.png
  230. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kh.png
  231. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ki.png
  232. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/km.png
  233. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kn.png
  234. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kp.png
  235. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kr.png
  236. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kw.png
  237. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ky.png
  238. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/kz.png
  239. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/la.png
  240. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lb.png
  241. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lc.png
  242. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/li.png
  243. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lk.png
  244. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lr.png
  245. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ls.png
  246. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lt.png
  247. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lu.png
  248. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/lv.png
  249. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ly.png
  250. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ma.png
  251. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mc.png
  252. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/md.png
  253. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/me.png
  254. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mg.png
  255. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mh.png
  256. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mk.png
  257. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ml.png
  258. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mm.png
  259. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mn.png
  260. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mo.png
  261. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mp.png
  262. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mq.png
  263. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mr.png
  264. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ms.png
  265. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mt.png
  266. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mu.png
  267. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mv.png
  268. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mw.png
  269. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mx.png
  270. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/my.png
  271. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/mz.png
  272. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/na.png
  273. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nc.png
  274. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ne.png
  275. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nf.png
  276. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ng.png
  277. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ni.png
  278. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nl.png
  279. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/no.png
  280. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/np.png
  281. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nr.png
  282. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nu.png
  283. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/nz.png
  284. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/om.png
  285. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pa.png
  286. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pe.png
  287. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pf.png
  288. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pg.png
  289. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ph.png
  290. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pk.png
  291. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pl.png
  292. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pm.png
  293. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pn.png
  294. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pr.png
  295. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/ps.png
  296. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pt.png
  297. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/pw.png
  298. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/py.png
  299. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/qa.png
  300. BIN  lib/ruby/compass_0.11/compass-0.11.7/examples/compass/images/flag/re.png
Sorry, we could not display the entire diff because too many files (4,069) changed.
9 .gitignore
@@ -0,0 +1,9 @@
+package
+packages
+lib/java/swt*
+*.swp
+update_url
+src/compile_version.rb
+.rvmrc
+.rbenv-version
+src/compile_version.rb
54 Info.plist
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>NSUIElement</key>
+ <string>1</string>
+ <key>CFBundleName</key>
+ <string>compass.app</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.0</string>
+ <key>CFBundleAllowMixedLocalizations</key>
+ <string>true</string>
+ <key>CFBundleExecutable</key>
+ <string>JavaApplicationStub</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleIconFile</key>
+ <string>icon-osx.icns</string>
+ <key>Java</key>
+ <dict>
+ <key>MainClass</key>
+ <string>org.rubyforge.rawr.Main</string>
+ <key>JVMVersion</key>
+ <string>1.6*</string>
+ <key>ClassPath</key>
+ <array>
+ <string>$JAVAROOT/compass-app.jar</string>
+ </array>
+ <key>Properties</key>
+ <dict>
+ <key>apple.laf.useScreenMenuBar</key>
+ <string>true</string>
+ </dict>
+ <key>JVMArchs</key>
+ <array>
+ <string>i386</string>
+ </array>
+ <key>StartOnMainThread</key>
+ <string>true</string>
+ <key>VMOptions</key>
+ <array>
+ <string>-Dfile.encoding=utf8</string>
+ <string>-Xverify:none</string>
+ <string>-Xbootclasspath/p:$APP_PACKAGE/Contents/Resources/Java/lib/java/jruby-complete.jar</string>
+ </array>
+ </dict>
+</dict>
+</plist>
339 LICENSE
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
22 README.markdown
@@ -0,0 +1,22 @@
+# Compass.app
+
+http://compass.handlino.com/
+
+[Compass.app](http://compass.handlino.com/) helps designers compile stylesheets easily without resorting to command line interface. It is written in Java and works in Windows/Linux/Mac OS X.
+
+[Compass](http://compass-style.org/) is a stylesheet authoring framework that makes your stylesheets and markup easier to build and maintain. With compass, you write your stylesheets in [Sass](http://sass-lang.com/) instead of CSS.
+
+# License
+
+Copyright (c) 2010 Handlino Inc.
+Licensed under GPL v2.
+
+We sell prebuild software in our offical site. If you know how to build it, feel free to download the source and build your own.
+
+# System Requirement
+
+* Java Runtime
+
+# Build Your Own
+
+If you want to build your own copy, you will need [JRuby 1.6.5](http://jruby.org/) and [rawr](http://rawr.rubyforge.org/).
123 Rakefile
@@ -0,0 +1,123 @@
+require 'rawr'
+require 'app_bundler'
+require 'exe_bundler'
+require 'yaml'
+module Rawr
+ class AppBundler
+ # monkey patch again, option mac_do_not_generate_plist not work
+ def generate_info_plist
+ return
+ end
+ end
+end
+
+namespace :rawr do
+ namespace :bundle do
+ task :create_packages_dir do
+ @packages_dir = File.join(File.dirname(__FILE__), 'packages')
+ Dir.mkdir( @packages_dir ) unless File.exists?( @packages_dir )
+ end
+
+ task :write_version_info do
+ @revision ||= (%x{git log | head -c 17 | tail -c 10}).strip
+ @compile_time ||= Time.now.strftime('%Y%m%d%H%M')
+ @update_url = open('update_url').readline.strip if File.exists?("update_url")
+ @update_url ||= ''
+ File.open "src/compile_version.rb", 'w' do |file|
+ file << <<-INFO_ENDL
+ module CompileVersion
+ REVISION = '#{@revision}'
+ COMPILE_TIME = '#{@compile_time}'
+ UPDATE_URL = '#{@update_url}'
+ end
+INFO_ENDL
+ end
+ end
+
+ task(:app).clear_prerequisites.clear_actions
+ desc "Bundles the jar from rawr:jar into a native Mac OS X application (.app)"
+ task :app => ["rawr:bundle:create_packages_dir", "rawr:bundle:write_version_info", "rawr:jar", CONFIG.osx_output_dir ] do
+ Rawr::AppBundler.new.deploy CONFIG
+ Dir.chdir File.dirname(__FILE__)
+ %x{mkdir -p #{CONFIG.osx_output_dir}/#{CONFIG.project_name}.app/Contents/Resources/swt}
+ %x{cp -R lib/swt/swt_osx* #{CONFIG.osx_output_dir}/#{CONFIG.project_name}.app/Contents/Resources/swt}
+
+ %w{ruby images applescript javascripts}.each do | copy_dir |
+ %x{cp -R lib/#{copy_dir} #{CONFIG.osx_output_dir}/#{CONFIG.project_name}.app/Contents/Resources }
+ end
+ Dir.chdir CONFIG.osx_output_dir
+ %x{mv #{CONFIG.project_name}.app compass.app;}
+ @osx_bundle_file="compass.app.osx.#{@compile_time}-#{@revision}.zip"
+ %x{zip -9 -r #{@packages_dir}/#{@osx_bundle_file} compass.app}
+ %x{mkdir #{@packages_dir}/osx; cp -R compass.app #{@packages_dir}/osx}
+ end
+
+ task(:exe).clear_prerequisites.clear_actions
+ desc "Bundles the jar from rawr:jar into a native Windows application (.exe)"
+ task :exe => ["rawr:bundle:create_packages_dir", "rawr:bundle:write_version_info", "rawr:jar", CONFIG.windows_output_dir ] do
+ Dir.chdir File.dirname(__FILE__)
+ %x{mkdir -p package/windows/package/windows} # path for launch4j link fle
+ Rawr::ExeBundler.new.deploy CONFIG
+
+ %x{mkdir -p #{CONFIG.windows_output_dir}/lib/swt}
+ %x{cp -R lib/swt/swt_win* #{CONFIG.windows_output_dir}/lib/swt}
+
+ %w{ruby images javascripts}.each do | copy_dir |
+ %x{cp -R lib/#{copy_dir} #{CONFIG.windows_output_dir}/lib }
+ end
+
+ %x{mv package/windows/package/windows/*.exe package/windows}
+ %x{rm -rf package/windows/package}
+ Dir.chdir 'package'
+ %x{rm -rf compass.app windows/*.xml; mv windows compass.app}
+ @windows_bundle_file="compass.app.windows.#{@compile_time}-#{@revision}.zip"
+ %x{zip -9 -r #{@packages_dir}/#{@windows_bundle_file} compass.app}
+ %x{mkdir #{@packages_dir}/windows; cp -R compass.app #{@packages_dir}/windows}
+ end
+
+ desc "Bundles the jar from rawr:jar into a Linux script"
+ task :linux => ["rawr:bundle:create_packages_dir", "rawr:bundle:write_version_info", "rawr:jar" ] do
+ Dir.chdir File.dirname(__FILE__)
+ %x{mkdir -p package/jar/lib/swt}
+ %x{cp -R lib/swt/swt_linux* package/jar/lib/swt}
+
+ %w{ruby images javascripts}.each do | copy_dir |
+ %x{cp -R lib/#{copy_dir} package/jar/lib }
+ end
+
+ %x{mv package/jar package/compass.app}
+ File.open('package/compass.app/run.sh','w') do |f|
+ f.write("#!/usr/bin/env bash\ncd $(dirname $0)\njava -client -jar compass-app.jar")
+ end
+ %x{chmod +x package/compass.app/run.sh}
+ Dir.chdir 'package'
+ @linux_bundle_file="compass.app.linux.#{@compile_time}-#{@revision}.zip"
+ %x{zip -9 -r #{@packages_dir}/#{@linux_bundle_file} compass.app}
+ %x{mkdir #{@packages_dir}/linux; cp -R compass.app #{@packages_dir}/linux}
+ end
+
+ desc "Bundles Linux, OSX and Window package"
+ task :all do
+ Dir.chdir File.dirname(__FILE__)
+ %x{rm -rf package/* packages/*}
+ Rake::Task['rawr:bundle:app'].invoke
+
+ Rake::Task.tasks.each{|t| t.reenable}
+ Dir.chdir File.dirname(__FILE__)
+ %x{rm -rf package/*}
+ Rake::Task['rawr:bundle:exe'].invoke
+
+ Rake::Task.tasks.each{|t| t.reenable}
+ Dir.chdir File.dirname(__FILE__)
+ %x{rm -rf package/*}
+ Rake::Task['rawr:bundle:linux'].invoke
+ url_base=File.dirname(@update_url)
+ info={ "linux" => { "compile_version"=> @compile_time, "url"=> File.join(url_base, @linux_bundle_file) },
+ "osx" => { "compile_version"=> @compile_time, "url"=> File.join(url_base, @osx_bundle_file) },
+ "windows" => { "compile_version"=> @compile_time, "url"=> File.join(url_base, @windows_bundle_file)} }
+ open( File.join(@packages_dir,'update.yml'),'w' ) do |f|
+ f.write info.to_yaml
+ end
+ end
+ end
+end
2  bin/build-all.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+rake rawr:bundle:all
9 bin/startJar-linux.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+if [ "$1" = "full" ]; then
+ rake rawr:clean
+fi
+rake rawr:jar
+#java -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Djruby.reify.classes=true -Djruby.compat.version="1.9" \
+java -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Djruby.reify.classes=true \
+ -Xms512m -Xmn128m \
+-client -Xverify:none -Xbootclasspath/a:lib/java/jruby-complete.jar -jar package/jar/compass-app.jar
8 bin/startJar-osx.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+if [ "$1" = "full" ]; then
+ rake rawr:clean
+fi
+rake rawr:jar
+#java -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails \
+# -Xms128m -Xmn32m -Xmx128m \
+java -Dfile.encoding=utf8 -d32 -client -Xverify:none -XstartOnFirstThread -Xbootclasspath/a:lib/java/jruby-complete.jar -jar package/jar/compass-app.jar
5 bin/to_release.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+cp packages/compass.app.windows* packages/compass.app.windows.$1.zip
+cp packages/compass.app.osx* packages/compass.app.osx.$1.zip
+cp packages/compass.app.linux* packages/compass.app.linux.$1.zip
+ls -lot packages
89 build_configuration.rb
@@ -0,0 +1,89 @@
+configuration do |c|
+ # The name for your resulting application file (e.g., if the project_name is 'foo' then you'll get foo.jar, foo.exe, etc.)
+ # default value: "tka"
+ #
+ c.project_name = "compass-app"
+
+ # Undocumented option 'output_dir'
+ # default value: "package"
+ #
+ #c.output_dir = "package"
+
+ # The main ruby file to invoke, minus the .rb extension
+ # default value: "main"
+ #
+ c.main_ruby_file = "src/main"
+
+ # The fully-qualified name of the main Java file used to initiate the application.
+ # default value: "org.rubyforge.rawr.Main"
+ #
+ #c.main_java_file = "org.rubyforge.rawr.Main"
+
+ # A list of directories where source files reside
+ # default value: ["src"]
+ #
+ #c.source_dirs = ["src",'lib/ruby/gem/gems/haml-3.0.24']
+
+ # A list of regexps of files to exclude
+ # default value: []
+ #
+ #c.source_exclude_filter = [/spec/,/test/,/example/]
+
+ # Whether Ruby source files should be compiled into .class files
+ # default value: true
+ #
+ #c.compile_ruby_files = true
+
+ # A list of individual Java library files to include.
+ # default value: []
+ #
+ #c.java_lib_files = []
+
+ # A list of directories for rawr to include . All files in the given directories get bundled up.
+ # default value: ["lib/java"]
+ #
+ #c.java_lib_dirs = ["lib/java"]
+
+ # Undocumented option 'files_to_copy'
+ # default value: []
+ #
+ #c.files_to_copy = ['lib/ruby', 'lib/applescript']
+
+ # Undocumented option 'target_jvm_version'
+ # default value: 1.6
+ #
+ # c.target_jvm_version = 1.6
+
+ # Undocumented option 'jvm_arguments'
+ # default value: ""
+ #
+ #c.jvm_arguments = ""
+
+ # Undocumented option 'java_library_path'
+ # default value: ""
+ #
+ c.java_library_path = "src"
+
+ # Undocumented option 'extra_user_jars'
+ # default value: {}
+ #
+ #c.extra_user_jars[:data] = { :directory => 'data/images/png',
+ # :location_in_jar => 'images',
+ # :exclude => /*.bak$/ }
+
+ # Undocumented option 'mac_do_not_generate_plist'
+ # default value: nil
+ #
+ #c.mac_do_not_generate_plist = true
+
+ # Undocumented option 'mac_icon_path'
+ # default value: nil
+ #
+ c.mac_icon_path = Dir.pwd + "/lib/images/icon/icon-osx.icns"
+
+ # Undocumented option 'windows_icon_path'
+ # default value: nil
+ #
+ c.windows_icon_path = Dir.pwd + "/lib/images/icon/icon-win.ico"
+
+end
74 editor_extensions/vim-compassapp/plugin/compassapp.vim
@@ -0,0 +1,74 @@
+func! CompassCompl(st,base)
+ if a:st
+ let line = getline('.')
+ let start = col('.') - 1
+ while start > 0 && line[start - 1] =~ '[a-z0-9\$@]'
+ let start -= 1
+ endwhile
+ return start
+ else
+
+ let basefilename='~/.compass-ui/autocomplete_cache/'. substitute( expand('%:p'), '[^a-z0-9]', '_','g')
+ if a:base[0] == "$"
+ let wordfile=basefilename. "_variable"
+ let get_word_cmd='test -f '. wordfile .' && cat '. wordfile .'|tr "\n" ,'
+ exe 'let wordlist=['. system(get_word_cmd) . ']'
+
+ " add variable in current file
+ let file = getline(1, '$')
+ let jfile = join(file, ' ')
+ let int_vals = split(jfile, '\ze\$')
+ let int_vars = {}
+ for i in int_vals
+ let val = matchstr(i, '^\$[a-z_][a-z_\-0-9]*')
+ if val != ''
+ call add(wordlist, val)
+ endif
+ endfor
+
+ else
+ let line = getline('.')
+ if line =~ '@include'
+ let wordfile=basefilename. "_mixin"
+ let get_word_cmd='test -f '. wordfile .' && cat '. wordfile .'|tr "\n" ,'
+ exe 'let wordlist=['. system(get_word_cmd) . ']'
+
+ " add mixin in current file
+ let int_vals = getline(1, '$')
+ let int_vars = {}
+ for i in int_vals
+ let val = matchlist(i, '^@mixin \([a-z0-9\_]*[^{]*\)')
+ if len(val) > 0 && val[1] != ''
+ call add(wordlist, val[1])
+ endif
+ endfor
+
+ " if you need complete mixin args, comment below 5 lines
+ let clean_wordlist = []
+ for i in wordlist
+ call add(clean_wordlist, matchstr(i, "^[a-z0-9\-_]*"))
+ endfor
+ let wordlist = clean_wordlist
+
+ endif
+ endif
+
+ " if we got scss words
+ if exists('wordlist')
+ let res = []
+ for m in wordlist
+ if m =~ '^' . a:base
+ call add(res, m)
+ endif
+ endfor
+
+ return res
+ end
+
+ " default match csscomplete#CompleteCSS
+ return csscomplete#CompleteCSS(0, a:base)
+ endif
+endfunc
+autocmd BufNewFile,BufRead *.scss set ft=scss.css iskeyword+=- ofu=CompassCompl
+autocmd BufNewFile,BufRead *.sass set ft=sass.css iskeyword+=- ofu=CompassCompl
+
BIN  lib/applescript/64.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/applescript/growl.applescript
Binary file not shown
BIN  lib/applescript/growl.scpt
Binary file not shown
BIN  lib/images/icon/128.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/16.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/16_dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/256.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/32.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/32_dark.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/512.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/64.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/images/icon/icon-osx.icns
Binary file not shown
BIN  lib/images/icon/icon-win.ico
Binary file not shown
BIN  lib/images/where_am_i.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/java/jruby-complete.jar
Binary file not shown
925 lib/javascripts/livereload.js
@@ -0,0 +1,925 @@
+(function() {
+var __customevents = {}, __protocol = {}, __connector = {}, __timer = {}, __options = {}, __reloader = {}, __livereload = {}, __less = {}, __startup = {};
+
+// customevents
+var CustomEvents;
+CustomEvents = {
+ bind: function(element, eventName, handler) {
+ if (element.addEventListener) {
+ return element.addEventListener(eventName, handler, false);
+ } else if (element.attachEvent) {
+ element[eventName] = 1;
+ return element.attachEvent('onpropertychange', function(event) {
+ if (event.propertyName === eventName) {
+ return handler();
+ }
+ });
+ } else {
+ throw new Error("Attempt to attach custom event " + eventName + " to something which isn't a DOMElement");
+ }
+ },
+ fire: function(element, eventName) {
+ var event;
+ if (element.addEventListener) {
+ event = document.createEvent('HTMLEvents');
+ event.initEvent(eventName, true, true);
+ return document.dispatchEvent(event);
+ } else if (element.attachEvent) {
+ if (element[eventName]) {
+ return element[eventName]++;
+ }
+ } else {
+ throw new Error("Attempt to fire custom event " + eventName + " on something which isn't a DOMElement");
+ }
+ }
+};
+__customevents.bind = CustomEvents.bind;
+__customevents.fire = CustomEvents.fire;
+
+// protocol
+var PROTOCOL_6, PROTOCOL_7, Parser, ProtocolError;
+var __indexOf = Array.prototype.indexOf || function(item) {
+ for (var i = 0, l = this.length; i < l; i++) {
+ if (this[i] === item) return i;
+ }
+ return -1;
+};
+__protocol.PROTOCOL_6 = PROTOCOL_6 = 'http://livereload.com/protocols/official-6';
+__protocol.PROTOCOL_7 = PROTOCOL_7 = 'http://livereload.com/protocols/official-7';
+__protocol.ProtocolError = ProtocolError = (function() {
+ function ProtocolError(reason, data) {
+ this.message = "LiveReload protocol error (" + reason + ") after receiving data: \"" + data + "\".";
+ }
+ return ProtocolError;
+})();
+__protocol.Parser = Parser = (function() {
+ function Parser(handlers) {
+ this.handlers = handlers;
+ this.reset();
+ }
+ Parser.prototype.reset = function() {
+ return this.protocol = null;
+ };
+ Parser.prototype.process = function(data) {
+ var command, message, options, _ref;
+ try {
+ if (!(this.protocol != null)) {
+ if (data.match(/^!!ver:([\d.]+)$/)) {
+ this.protocol = 6;
+ } else if (message = this._parseMessage(data, ['hello'])) {
+ if (!message.protocols.length) {
+ throw new ProtocolError("no protocols specified in handshake message");
+ } else if (__indexOf.call(message.protocols, PROTOCOL_7) >= 0) {
+ this.protocol = 7;
+ } else if (__indexOf.call(message.protocols, PROTOCOL_6) >= 0) {
+ this.protocol = 6;
+ } else {
+ throw new ProtocolError("no supported protocols found");
+ }
+ }
+ return this.handlers.connected(this.protocol);
+ } else if (this.protocol === 6) {
+ message = JSON.parse(data);
+ if (!message.length) {
+ throw new ProtocolError("protocol 6 messages must be arrays");
+ }
+ command = message[0], options = message[1];
+ if (command !== 'refresh') {
+ throw new ProtocolError("unknown protocol 6 command");
+ }
+ return this.handlers.message({
+ command: 'reload',
+ path: options.path,
+ liveCSS: (_ref = options.apply_css_live) != null ? _ref : true
+ });
+ } else {
+ message = this._parseMessage(data, ['reload', 'alert']);
+ return this.handlers.message(message);
+ }
+ } catch (e) {
+ if (e instanceof ProtocolError) {
+ return this.handlers.error(e);
+ } else {
+ throw e;
+ }
+ }
+ };
+ Parser.prototype._parseMessage = function(data, validCommands) {
+ var message, _ref;
+ try {
+ message = JSON.parse(data);
+ } catch (e) {
+ throw new ProtocolError('unparsable JSON', data);
+ }
+ if (!message.command) {
+ throw new ProtocolError('missing "command" key', data);
+ }
+ if (_ref = message.command, __indexOf.call(validCommands, _ref) < 0) {
+ throw new ProtocolError("invalid command '" + message.command + "', only valid commands are: " + (validCommands.join(', ')) + ")", data);
+ }
+ return message;
+ };
+ return Parser;
+})();
+
+// connector
+var Connector, PROTOCOL_6, PROTOCOL_7, Parser, Version, _ref;
+var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+_ref = __protocol, Parser = _ref.Parser, PROTOCOL_6 = _ref.PROTOCOL_6, PROTOCOL_7 = _ref.PROTOCOL_7;
+Version = '2.0.4';
+__connector.Connector = Connector = (function() {
+ function Connector(options, WebSocket, Timer, handlers) {
+ this.options = options;
+ this.WebSocket = WebSocket;
+ this.Timer = Timer;
+ this.handlers = handlers;
+ this._uri = "ws://" + this.options.host + ":" + this.options.port + "/livereload";
+ this._nextDelay = this.options.mindelay;
+ this._connectionDesired = false;
+ this.protocol = 0;
+ this.protocolParser = new Parser({
+ connected: __bind(function(protocol) {
+ this.protocol = protocol;
+ this._handshakeTimeout.stop();
+ this._nextDelay = this.options.mindelay;
+ this._disconnectionReason = 'broken';
+ return this.handlers.connected(protocol);
+ }, this),
+ error: __bind(function(e) {
+ this.handlers.error(e);
+ return this._closeOnError();
+ }, this),
+ message: __bind(function(message) {
+ return this.handlers.message(message);
+ }, this)
+ });
+ this._handshakeTimeout = new Timer(__bind(function() {
+ if (!this._isSocketConnected()) {
+ return;
+ }
+ this._disconnectionReason = 'handshake-timeout';
+ return this.socket.close();
+ }, this));
+ this._reconnectTimer = new Timer(__bind(function() {
+ if (!this._connectionDesired) {
+ return;
+ }
+ return this.connect();
+ }, this));
+ this.connect();
+ }
+ Connector.prototype._isSocketConnected = function() {
+ return this.socket && this.socket.readyState === this.WebSocket.OPEN;
+ };
+ Connector.prototype.connect = function() {
+ this._connectionDesired = true;
+ if (this._isSocketConnected()) {
+ return;
+ }
+ if (this._reconnectTimer) {
+ clearTimeout(this._reconnectTimer);
+ }
+ this._disconnectionReason = 'cannot-connect';
+ this.protocolParser.reset();
+ this.handlers.connecting();
+ this.socket = new this.WebSocket(this._uri);
+ this.socket.onopen = __bind(function(e) {
+ return this._onopen(e);
+ }, this);
+ this.socket.onclose = __bind(function(e) {
+ return this._onclose(e);
+ }, this);
+ this.socket.onmessage = __bind(function(e) {
+ return this._onmessage(e);
+ }, this);
+ return this.socket.onerror = __bind(function(e) {
+ return this._onerror(e);
+ }, this);
+ };
+ Connector.prototype.disconnect = function() {
+ this._connectionDesired = false;
+ this._reconnectTimer.stop();
+ if (!this._isSocketConnected()) {
+ return;
+ }
+ this._disconnectionReason = 'manual';
+ return this.socket.close();
+ };
+ Connector.prototype._scheduleReconnection = function() {
+ if (!this._connectionDesired) {
+ return;
+ }
+ if (!this._reconnectTimer.running) {
+ this._reconnectTimer.start(this._nextDelay);
+ return this._nextDelay = Math.min(this.options.maxdelay, this._nextDelay * 2);
+ }
+ };
+ Connector.prototype.sendCommand = function(command) {
+ if (this.protocol == null) {
+ return;
+ }
+ return this._sendCommand(command);
+ };
+ Connector.prototype._sendCommand = function(command) {
+ return this.socket.send(JSON.stringify(command));
+ };
+ Connector.prototype._closeOnError = function() {
+ this._handshakeTimeout.stop();
+ this._disconnectionReason = 'error';
+ return this.socket.close();
+ };
+ Connector.prototype._onopen = function(e) {
+ var hello;
+ this.handlers.socketConnected();
+ this._disconnectionReason = 'handshake-failed';
+ hello = {
+ command: 'hello',
+ protocols: [PROTOCOL_6, PROTOCOL_7]
+ };
+ hello.ver = Version;
+ if (this.options.ext) {
+ hello.ext = this.options.ext;
+ }
+ if (this.options.extver) {
+ hello.extver = this.options.extver;
+ }
+ if (this.options.snipver) {
+ hello.snipver = this.options.snipver;
+ }
+ this._sendCommand(hello);
+ return this._handshakeTimeout.start(this.options.handshake_timeout);
+ };
+ Connector.prototype._onclose = function(e) {
+ this.protocol = 0;
+ this.handlers.disconnected(this._disconnectionReason, this._nextDelay);
+ return this._scheduleReconnection();
+ };
+ Connector.prototype._onerror = function(e) {};
+ Connector.prototype._onmessage = function(e) {
+ return this.protocolParser.process(e.data);
+ };
+ return Connector;
+})();
+
+// timer
+var Timer;
+var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+__timer.Timer = Timer = (function() {
+ function Timer(func) {
+ this.func = func;
+ this.running = false;
+ this.id = null;
+ this._handler = __bind(function() {
+ this.running = false;
+ this.id = null;
+ return this.func();
+ }, this);
+ }
+ Timer.prototype.start = function(timeout) {
+ if (this.running) {
+ clearTimeout(this.id);
+ }
+ this.id = setTimeout(this._handler, timeout);
+ return this.running = true;
+ };
+ Timer.prototype.stop = function() {
+ if (this.running) {
+ clearTimeout(this.id);
+ this.running = false;
+ return this.id = null;
+ }
+ };
+ return Timer;
+})();
+Timer.start = function(timeout, func) {
+ return setTimeout(func, timeout);
+};
+
+// options
+var Options;
+__options.Options = Options = (function() {
+ function Options() {
+ this.host = null;
+ this.port = 35729;
+ this.snipver = null;
+ this.ext = null;
+ this.extver = null;
+ this.mindelay = 1000;
+ this.maxdelay = 60000;
+ this.handshake_timeout = 5000;
+ }
+ Options.prototype.set = function(name, value) {
+ switch (typeof this[name]) {
+ case 'undefined':
+ break;
+ case 'number':
+ return this[name] = +value;
+ default:
+ return this[name] = value;
+ }
+ };
+ return Options;
+})();
+Options.extract = function(document) {
+ var element, keyAndValue, m, mm, options, pair, src, _i, _j, _len, _len2, _ref, _ref2;
+ _ref = document.getElementsByTagName('script');
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ element = _ref[_i];
+ if ((src = element.src) && (m = src.match(/^[^:]+:\/\/(.*)\/z?livereload\.js(?:\?(.*))?$/))) {
+ options = new Options();
+ if (mm = m[1].match(/^([^\/:]+)(?::(\d+))?$/)) {
+ options.host = mm[1];
+ if (mm[2]) {
+ options.port = parseInt(mm[2], 10);
+ }
+ }
+ if (m[2]) {
+ _ref2 = m[2].split('&');
+ for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
+ pair = _ref2[_j];
+ if ((keyAndValue = pair.split('=')).length > 1) {
+ options.set(keyAndValue[0].replace(/-/g, '_'), keyAndValue.slice(1).join('='));
+ }
+ }
+ }
+ return options;
+ }
+ }
+ return null;
+};
+
+// reloader
+var IMAGE_STYLES, Reloader, numberOfMatchingSegments, pathFromUrl, pathsMatch, pickBestMatch, splitUrl;
+var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+splitUrl = function(url) {
+ var hash, index, params;
+ if ((index = url.indexOf('#')) >= 0) {
+ hash = url.slice(index);
+ url = url.slice(0, index);
+ } else {
+ hash = '';
+ }
+ if ((index = url.indexOf('?')) >= 0) {
+ params = url.slice(index);
+ url = url.slice(0, index);
+ } else {
+ params = '';
+ }
+ return {
+ url: url,
+ params: params,
+ hash: hash
+ };
+};
+pathFromUrl = function(url) {
+ var path;
+ url = splitUrl(url).url;
+ if (url.indexOf('file://') === 0) {
+ path = url.replace(/^file:\/\/(localhost)?/, '');
+ } else {
+ path = url.replace(/^([^:]+:)?\/\/([^:\/]+)(:\d*)?\//, '/');
+ }
+ return decodeURIComponent(path);
+};
+pickBestMatch = function(path, objects, pathFunc) {
+ var bestMatch, object, score, _i, _len;
+ bestMatch = {
+ score: 0
+ };
+ for (_i = 0, _len = objects.length; _i < _len; _i++) {
+ object = objects[_i];
+ score = numberOfMatchingSegments(path, pathFunc(object));
+ if (score > bestMatch.score) {
+ bestMatch = {
+ object: object,
+ score: score
+ };
+ }
+ }
+ if (bestMatch.score > 0) {
+ return bestMatch;
+ } else {
+ return null;
+ }
+};
+numberOfMatchingSegments = function(path1, path2) {
+ var comps1, comps2, eqCount, len;
+ path1 = path1.replace(/^\/+/, '').toLowerCase();
+ path2 = path2.replace(/^\/+/, '').toLowerCase();
+ if (path1 === path2) {
+ return 10000;
+ }
+ comps1 = path1.split('/').reverse();
+ comps2 = path2.split('/').reverse();
+ len = Math.min(comps1.length, comps2.length);
+ eqCount = 0;
+ while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {
+ ++eqCount;
+ }
+ return eqCount;
+};
+pathsMatch = function(path1, path2) {
+ return numberOfMatchingSegments(path1, path2) > 0;
+};
+IMAGE_STYLES = [
+ {
+ selector: 'background',
+ styleNames: ['backgroundImage']
+ }, {
+ selector: 'border',
+ styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage']
+ }
+];
+__reloader.Reloader = Reloader = (function() {
+ function Reloader(window, console, Timer) {
+ this.window = window;
+ this.console = console;
+ this.Timer = Timer;
+ this.document = this.window.document;
+ this.stylesheetGracePeriod = 200;
+ this.importCacheWaitPeriod = 200;
+ this.plugins = [];
+ }
+ Reloader.prototype.addPlugin = function(plugin) {
+ return this.plugins.push(plugin);
+ };
+ Reloader.prototype.analyze = function(callback) {
+ return results;
+ };
+ Reloader.prototype.reload = function(path, options) {
+ var plugin, _i, _len, _ref;
+ _ref = this.plugins;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ plugin = _ref[_i];
+ if (plugin.reload && plugin.reload(path, options)) {
+ return;
+ }
+ }
+ if (options.liveCSS) {
+ if (path.match(/\.css$/i)) {
+ if (this.reloadStylesheet(path)) {
+ return;
+ }
+ }
+ }
+ if (options.liveImg) {
+ if (path.match(/\.(jpe?g|png|gif)$/i)) {
+ this.reloadImages(path);
+ return;
+ }
+ }
+ return this.reloadPage();
+ };
+ Reloader.prototype.reloadPage = function() {
+ return this.window.document.location.reload();
+ };
+ Reloader.prototype.reloadImages = function(path) {
+ var expando, img, selector, styleNames, styleSheet, _i, _j, _k, _l, _len, _len2, _len3, _len4, _ref, _ref2, _ref3, _ref4, _results;
+ expando = this.generateUniqueString();
+ _ref = this.document.images;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ img = _ref[_i];
+ if (pathsMatch(path, pathFromUrl(img.src))) {
+ img.src = this.generateCacheBustUrl(img.src, expando);
+ }
+ }
+ if (this.document.querySelectorAll) {
+ for (_j = 0, _len2 = IMAGE_STYLES.length; _j < _len2; _j++) {
+ _ref2 = IMAGE_STYLES[_j], selector = _ref2.selector, styleNames = _ref2.styleNames;
+ _ref3 = this.document.querySelectorAll("[style*=" + selector + "]");
+ for (_k = 0, _len3 = _ref3.length; _k < _len3; _k++) {
+ img = _ref3[_k];
+ this.reloadStyleImages(img.style, styleNames, path, expando);
+ }
+ }
+ }
+ if (this.document.styleSheets) {
+ _ref4 = this.document.styleSheets;
+ _results = [];
+ for (_l = 0, _len4 = _ref4.length; _l < _len4; _l++) {
+ styleSheet = _ref4[_l];
+ _results.push(this.reloadStylesheetImages(styleSheet, path, expando));
+ }
+ return _results;
+ }
+ };
+ Reloader.prototype.reloadStylesheetImages = function(styleSheet, path, expando) {
+ var rule, rules, styleNames, _i, _j, _len, _len2;
+ try {
+ rules = styleSheet != null ? styleSheet.cssRules : void 0;
+ } catch (e) {
+
+ }
+ if (!rules) {
+ return;
+ }
+ for (_i = 0, _len = rules.length; _i < _len; _i++) {
+ rule = rules[_i];
+ switch (rule.type) {
+ case CSSRule.IMPORT_RULE:
+ this.reloadStylesheetImages(rule.styleSheet, path, expando);
+ break;
+ case CSSRule.STYLE_RULE:
+ for (_j = 0, _len2 = IMAGE_STYLES.length; _j < _len2; _j++) {
+ styleNames = IMAGE_STYLES[_j].styleNames;
+ this.reloadStyleImages(rule.style, styleNames, path, expando);
+ }
+ break;
+ case CSSRule.MEDIA_RULE:
+ this.reloadStylesheetImages(rule, path, expando);
+ }
+ }
+ };
+ Reloader.prototype.reloadStyleImages = function(style, styleNames, path, expando) {
+ var newValue, styleName, value, _i, _len;
+ for (_i = 0, _len = styleNames.length; _i < _len; _i++) {
+ styleName = styleNames[_i];
+ value = style[styleName];
+ if (typeof value === 'string') {
+ newValue = value.replace(/\burl\s*\(([^)]*)\)/, __bind(function(match, src) {
+ if (pathsMatch(path, pathFromUrl(src))) {
+ return "url(" + (this.generateCacheBustUrl(src, expando)) + ")";
+ } else {
+ return match;
+ }
+ }, this));
+ if (newValue !== value) {
+ style[styleName] = newValue;
+ }
+ }
+ }
+ };
+ Reloader.prototype.reloadStylesheet = function(path) {
+ var imported, link, links, match, style, _i, _j, _k, _len, _len2, _len3, _ref;
+ links = (function() {
+ var _i, _len, _ref, _results;
+ _ref = this.document.getElementsByTagName('link');
+ _results = [];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ link = _ref[_i];
+ if (link.rel === 'stylesheet' && !link.__LiveReload_pendingRemoval) {
+ _results.push(link);
+ }
+ }
+ return _results;
+ }).call(this);
+ imported = [];
+ _ref = this.document.getElementsByTagName('style');
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ style = _ref[_i];
+ if (style.sheet) {
+ this.collectImportedStylesheets(style, style.sheet, imported);
+ }
+ }
+ for (_j = 0, _len2 = links.length; _j < _len2; _j++) {
+ link = links[_j];
+ this.collectImportedStylesheets(link, link.sheet, imported);
+ }
+ this.console.log("LiveReload found " + links.length + " LINKed stylesheets, " + imported.length + " @imported stylesheets");
+ match = pickBestMatch(path, links.concat(imported), function(l) {
+ return pathFromUrl(l.href);
+ });
+ if (match) {
+ if (match.object.rule) {
+ this.console.log("LiveReload is reloading imported stylesheet: " + match.object.href);
+ this.reattachImportedRule(match.object);
+ } else {
+ this.console.log("LiveReload is reloading stylesheet: " + match.object.href);
+ this.reattachStylesheetLink(match.object);
+ }
+ } else {
+ this.console.log("LiveReload will reload all stylesheets because path '" + path + "' did not match any specific one");
+ for (_k = 0, _len3 = links.length; _k < _len3; _k++) {
+ link = links[_k];
+ this.reattachStylesheetLink(link);
+ }
+ }
+ return true;
+ };
+ Reloader.prototype.collectImportedStylesheets = function(link, styleSheet, result) {
+ var index, rule, rules, _len;
+ try {
+ rules = styleSheet != null ? styleSheet.cssRules : void 0;
+ } catch (e) {
+
+ }
+ if (rules && rules.length) {
+ for (index = 0, _len = rules.length; index < _len; index++) {
+ rule = rules[index];
+ switch (rule.type) {
+ case CSSRule.CHARSET_RULE:
+ continue;
+ case CSSRule.IMPORT_RULE:
+ result.push({
+ link: link,
+ rule: rule,
+ index: index,
+ href: rule.href
+ });
+ this.collectImportedStylesheets(link, rule.styleSheet, result);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ };
+ Reloader.prototype.reattachStylesheetLink = function(link) {
+ var clone, parent, timer;
+ if (link.__LiveReload_pendingRemoval) {
+ return;
+ }
+ link.__LiveReload_pendingRemoval = true;
+ clone = link.cloneNode(false);
+ clone.href = this.generateCacheBustUrl(link.href);
+ parent = link.parentNode;
+ if (parent.lastChild === link) {
+ parent.appendChild(clone);
+ } else {
+ parent.insertBefore(clone, link.nextSibling);
+ }
+ timer = new this.Timer(function() {
+ if (link.parentNode) {
+ return link.parentNode.removeChild(link);
+ }
+ });
+ return timer.start(this.stylesheetGracePeriod);
+ };
+ Reloader.prototype.reattachImportedRule = function(_arg) {
+ var href, index, link, media, newRule, parent, rule, tempLink;
+ rule = _arg.rule, index = _arg.index, link = _arg.link;
+ parent = rule.parentStyleSheet;
+ href = this.generateCacheBustUrl(rule.href);
+ media = rule.media.length ? [].join.call(rule.media, ', ') : '';
+ newRule = "@import url(\"" + href + "\") " + media + ";";
+ rule.__LiveReload_newHref = href;
+ tempLink = this.document.createElement("link");
+ tempLink.rel = 'stylesheet';
+ tempLink.href = href;
+ tempLink.__LiveReload_pendingRemoval = true;
+ if (link.parentNode) {
+ link.parentNode.insertBefore(tempLink, link);
+ }
+ return this.Timer.start(this.importCacheWaitPeriod, __bind(function() {
+ if (tempLink.parentNode) {
+ tempLink.parentNode.removeChild(tempLink);
+ }
+ if (rule.__LiveReload_newHref !== href) {
+ return;
+ }
+ parent.insertRule(newRule, index);
+ parent.deleteRule(index + 1);
+ rule = parent.cssRules[index];
+ rule.__LiveReload_newHref = href;
+ return this.Timer.start(this.importCacheWaitPeriod, __bind(function() {
+ if (rule.__LiveReload_newHref !== href) {
+ return;
+ }
+ parent.insertRule(newRule, index);
+ return parent.deleteRule(index + 1);
+ }, this));
+ }, this));
+ };
+ Reloader.prototype.generateUniqueString = function() {
+ return 'livereload=' + Date.now();
+ };
+ Reloader.prototype.generateCacheBustUrl = function(url, expando) {
+ var hash, oldParams, params, _ref;
+ if (expando == null) {
+ expando = this.generateUniqueString();
+ }
+ _ref = splitUrl(url), url = _ref.url, hash = _ref.hash, oldParams = _ref.params;
+ params = oldParams.replace(/(\?|&)livereload=(\d+)/, function(match, sep) {
+ return "" + sep + expando;
+ });
+ if (params === oldParams) {
+ if (oldParams.length === 0) {
+ params = "?" + expando;
+ } else {
+ params = "" + oldParams + "&" + expando;
+ }
+ }
+ return url + params + hash;
+ };
+ return Reloader;
+})();
+
+// livereload
+var Connector, LiveReload, Options, Reloader, Timer;
+var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+Connector = __connector.Connector;
+Timer = __timer.Timer;
+Options = __options.Options;
+Reloader = __reloader.Reloader;
+__livereload.LiveReload = LiveReload = (function() {
+ function LiveReload(window) {
+ this.window = window;
+ this.listeners = {};
+ this.plugins = [];
+ this.pluginIdentifiers = {};
+ this.console = this.window.console && this.window.console.log && this.window.console.error ? this.window.console : {
+ log: function() {},
+ error: function() {}
+ };
+ if (!(this.WebSocket = this.window.WebSocket || this.window.MozWebSocket)) {
+ console.error("LiveReload disabled because the browser does not seem to support web sockets");
+ return;
+ }
+ if (!(this.options = Options.extract(this.window.document))) {
+ console.error("LiveReload disabled because it could not find its own <SCRIPT> tag");
+ return;
+ }
+ this.reloader = new Reloader(this.window, this.console, Timer);
+ this.connector = new Connector(this.options, this.WebSocket, Timer, {
+ connecting: __bind(function() {}, this),
+ socketConnected: __bind(function() {}, this),
+ connected: __bind(function(protocol) {
+ var _base;
+ if (typeof (_base = this.listeners).connect === "function") {
+ _base.connect();
+ }
+ this.log("LiveReload is connected to " + this.options.host + ":" + this.options.port + " (protocol v" + protocol + ").");
+ return this.analyze();
+ }, this),
+ error: __bind(function(e) {
+ if (e instanceof ProtocolError) {
+ return console.log("" + e.message + ".");
+ } else {
+ return console.log("LiveReload internal error: " + e.message);
+ }
+ }, this),
+ disconnected: __bind(function(reason, nextDelay) {
+ var _base;
+ if (typeof (_base = this.listeners).disconnect === "function") {
+ _base.disconnect();
+ }
+ switch (reason) {
+ case 'cannot-connect':
+ return this.log("LiveReload cannot connect to " + this.options.host + ":" + this.options.port + ", will retry in " + nextDelay + " sec.");
+ case 'broken':
+ return this.log("LiveReload disconnected from " + this.options.host + ":" + this.options.port + ", reconnecting in " + nextDelay + " sec.");
+ case 'handshake-timeout':
+ return this.log("LiveReload cannot connect to " + this.options.host + ":" + this.options.port + " (handshake timeout), will retry in " + nextDelay + " sec.");
+ case 'handshake-failed':
+ return this.log("LiveReload cannot connect to " + this.options.host + ":" + this.options.port + " (handshake failed), will retry in " + nextDelay + " sec.");
+ case 'manual':
+ break;
+ case 'error':
+ break;
+ default:
+ return this.log("LiveReload disconnected from " + this.options.host + ":" + this.options.port + " (" + reason + "), reconnecting in " + nextDelay + " sec.");
+ }
+ }, this),
+ message: __bind(function(message) {
+ switch (message.command) {
+ case 'reload':
+ return this.performReload(message);
+ case 'alert':
+ return this.performAlert(message);
+ }
+ }, this)
+ });
+ }
+ LiveReload.prototype.on = function(eventName, handler) {
+ return this.listeners[eventName] = handler;
+ };
+ LiveReload.prototype.log = function(message) {
+ return this.console.log("" + message);
+ };
+ LiveReload.prototype.performReload = function(message) {
+ var _ref, _ref2;
+ this.log("LiveReload received reload request for " + message.path + ".");
+ return this.reloader.reload(message.path, {
+ liveCSS: (_ref = message.liveCSS) != null ? _ref : true,
+ liveImg: (_ref2 = message.liveImg) != null ? _ref2 : true,
+ originalPath: message.originalPath || ''
+ });
+ };
+ LiveReload.prototype.performAlert = function(message) {
+ return alert(message.message);
+ };
+ LiveReload.prototype.shutDown = function() {
+ var _base;
+ this.connector.disconnect();
+ this.log("LiveReload disconnected.");
+ return typeof (_base = this.listeners).shutdown === "function" ? _base.shutdown() : void 0;
+ };
+ LiveReload.prototype.hasPlugin = function(identifier) {
+ return !!this.pluginIdentifiers[identifier];
+ };
+ LiveReload.prototype.addPlugin = function(pluginClass) {
+ var plugin;
+ if (this.hasPlugin(pluginClass.identifier)) {
+ return;
+ }
+ this.pluginIdentifiers[pluginClass.identifier] = true;
+ plugin = new pluginClass(this.window, {
+ _livereload: this,
+ _reloader: this.reloader,
+ _connector: this.connector,
+ console: this.console,
+ Timer: Timer,
+ generateCacheBustUrl: __bind(function(url) {
+ return this.reloader.generateCacheBustUrl(url);
+ }, this)
+ });
+ this.plugins.push(plugin);
+ this.reloader.addPlugin(plugin);
+ };
+ LiveReload.prototype.analyze = function() {
+ var plugin, pluginData, pluginsData, _i, _len, _ref;
+ if (!(this.connector.protocol >= 7)) {
+ return;
+ }
+ pluginsData = {};
+ _ref = this.plugins;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ plugin = _ref[_i];
+ pluginsData[plugin.constructor.identifier] = pluginData = (typeof plugin.analyze === "function" ? plugin.analyze() : void 0) || {};
+ pluginData.version = plugin.constructor.version;
+ }
+ this.connector.sendCommand({
+ command: 'info',
+ plugins: pluginsData,
+ url: this.window.location.href
+ });
+ };
+ return LiveReload;
+})();
+
+// less
+var LessPlugin;
+__less = LessPlugin = (function() {
+ LessPlugin.identifier = 'less';
+ LessPlugin.version = '1.0';
+ function LessPlugin(window, host) {
+ this.window = window;
+ this.host = host;
+ }
+ LessPlugin.prototype.reload = function(path, options) {
+ if (this.window.less && this.window.less.refresh) {
+ if (path.match(/\.less$/i)) {
+ return this.reloadLess(path);
+ }
+ if (options.originalPath.match(/\.less$/i)) {
+ return this.reloadLess(options.originalPath);
+ }
+ }
+ return false;
+ };
+ LessPlugin.prototype.reloadLess = function(path) {
+ var link, links, _i, _len;
+ links = (function() {
+ var _i, _len, _ref, _results;
+ _ref = document.getElementsByTagName('link');
+ _results = [];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ link = _ref[_i];
+ if (link.href && link.rel === 'stylesheet/less' || (link.rel.match(/stylesheet/) && link.type.match(/^text\/(x-)?less$/))) {
+ _results.push(link);
+ }
+ }
+ return _results;
+ })();
+ if (links.length === 0) {
+ return false;
+ }
+ for (_i = 0, _len = links.length; _i < _len; _i++) {
+ link = links[_i];
+ link.href = this.host.generateCacheBustUrl(link.href);
+ }
+ this.host.console.log("LiveReload is asking LESS to recompile all stylesheets");
+ this.window.less.refresh(true);
+ return true;
+ };
+ LessPlugin.prototype.analyze = function() {
+ return {
+ disable: !!(this.window.less && this.window.less.refresh)
+ };
+ };
+ return LessPlugin;
+})();
+
+// startup
+var CustomEvents, LiveReload, k;
+CustomEvents = __customevents;
+LiveReload = window.LiveReload = new (__livereload.LiveReload)(window);
+for (k in window) {
+ if (k.match(/^LiveReloadPlugin/)) {
+ LiveReload.addPlugin(window[k]);
+ }
+}
+LiveReload.addPlugin(__less);
+LiveReload.on('shutdown', function() {
+ return delete window.LiveReload;
+});
+LiveReload.on('connect', function() {
+ return CustomEvents.fire(document, 'LiveReloadConnect');
+});
+LiveReload.on('disconnect', function() {
+ return CustomEvents.fire(document, 'LiveReloadDisconnect');
+});
+CustomEvents.bind(document, 'LiveReloadShutDown', function() {
+ return LiveReload.shutDown();
+});
+})();
29 lib/ruby/compass_0.11/compass-0.11.7/LICENSE.markdown
@@ -0,0 +1,29 @@
+Copyright (c) 2009 Christopher M. Eppstein
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+No attribution is required by products that make use of this software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written authorization.
+
+Contributors to this project agree to grant all rights to the copyright
+holder of the primary product. Attribution is maintained in the source
+control history of the product.
56 lib/ruby/compass_0.11/compass-0.11.7/README.markdown
@@ -0,0 +1,56 @@
+# Compass
+A [Sass][sass]-based CSS Meta-Framework that allows you to mix and match any of the following CSS frameworks:
+
+- [Compass Core][compass_core_website] - [Wiki Documentation][compass_core_wiki]
+- [Blueprint][blueprint_website] - [Wiki Documentation][bleuprint_wiki]
+- [960][ninesixty_website] - [Wiki Documentation][ninesixty_wiki]
+- [Susy][susy_website] - [Wiki Documentation][susy_wiki]
+- [YUI][yui_website] - [Wiki Documentation][yui_wiki]
+- New frameworks and extensions are [tracked on the wiki][plugins_wiki] as they are created.
+- Other frameworks can be added relatively easily. Create your own!
+
+## Compass Provides
+
+1. A [command line tool][command_line_wiki] for managing your Sass projects.
+2. Simple integration with [Ruby-on-Rails][ruby_on_rails_wiki], [Merb][merb_wiki], [StaticMatic][static_matic_wiki], and even [non-ruby application servers][command_line_wiki].
+3. Loads of Sass mixins to make building your website a snap.
+
+## Quick Start
+
+ $ (sudo) gem install compass
+ $ compass create my_compass_project --using blueprint
+ $ cd my_compass_project
+ $ compass watch
+
+## More Information
+Please see the [wiki][wiki]
+
+## Author
+Compass is written by [Chris Eppstein][chris_eppstein].<br>
+Chris is the Software Architect of [Caring.com][caring.com] and a member of the [Sass][sass] core team.
+
+## License
+Copyright (c) 2008-2009 Christopher M. Eppstein<br>
+All Rights Reserved.<br>
+Released under a [slightly modified MIT License][license].
+
+[sass]: http://sass-lang.com/ "Syntactically Awesome StyleSheets"
+[compass_core_website]: http://github.com/chriseppstein/compass/tree/master/frameworks/compass
+[compass_core_wiki]: http://github.com/chriseppstein/compass/wikis/compass-core-documentation
+[blueprint_website]: http://blueprintcss.org/
+[bleuprint_wiki]: http://github.com/chriseppstein/compass/wikis/blueprint-documentation
+[yui_website]: http://developer.yahoo.com/yui/grids/
+[yui_wiki]: http://github.com/chriseppstein/compass/wikis/yui-documentation
+[plugins_wiki]: http://github.com/chriseppstein/compass/wikis/compass-plugins
+[ninesixty_website]: http://960.gs/
+[ninesixty_wiki]: http://github.com/chriseppstein/compass/wikis/960gs-documentation
+[command_line_wiki]: http://wiki.github.com/chriseppstein/compass/command-line-tool
+[wiki]: http://github.com/chriseppstein/compass/wikis/home
+[ruby_on_rails_wiki]: http://wiki.github.com/chriseppstein/compass/ruby-on-rails-integration
+[merb_wiki]: http://wiki.github.com/chriseppstein/compass/merb-integration
+[static_matic_wiki]: http://wiki.github.com/chriseppstein/compass/staticmatic-integration
+[chris_eppstein]: http://chriseppstein.github.com
+[caring.com]: http://www.caring.com/ "Senior Care Resources"
+[license]: http://github.com/chriseppstein/compass/tree/master/LICENSE.markdown
+[susy_website]: http://www.oddbird.net/susy/
+[susy_wiki]: http://github.com/chriseppstein/compass/wikis/susy-documentation
115 lib/ruby/compass_0.11/compass-0.11.7/Rakefile
@@ -0,0 +1,115 @@
+require 'rubygems'
+require 'bundler'
+Bundler.setup
+require 'compass'
+
+# ----- Default: Testing ------
+
+task :default => [:test, :features]
+
+require 'rake/testtask'
+require 'fileutils'
+require 'cucumber'
+require 'cucumber/rake/task'
+
+Cucumber::Rake::Task.new(:features) do |t|
+ t.cucumber_opts = "features --format progress"
+end
+
+Rake::TestTask.new :test do |t|
+ t.libs << 'lib'
+ t.libs << 'test'
+ test_files = FileList['test/**/*_test.rb']
+ test_files.exclude('test/rails/*', 'test/haml/*')
+ t.test_files = test_files
+ t.verbose = true
+end
+Rake::Task[:test].send(:add_comment, <<END)
+To run with an alternate version of Rails, make test/rails a symlink to that version.
+To run with an alternate version of Haml & Sass, make test/haml a symlink to that version.
+END
+
+desc "Compile Examples into HTML and CSS"
+task :examples do
+ linked_haml = "tests/haml"
+ if File.exists?(linked_haml) && !$:.include?(linked_haml + '/lib')
+ puts "[ using linked Haml ]"
+ $:.unshift linked_haml + '/lib'
+ end
+ require 'haml'
+ require 'sass'
+ require 'pathname'
+ require 'compass'
+ require 'compass/exec'
+ FileList['examples/*'].each do |example|
+ next unless File.directory?(example)
+ puts "\nCompiling #{example}"
+ puts "=" * "Compiling #{example}".length
+ Dir.chdir example do
+ load "bootstrap.rb" if File.exists?("bootstrap.rb")
+ Compass::Exec::SubCommandUI.new(%w(compile --force)).run!
+ end
+ # compile any haml templates to html
+ FileList["#{example}/**/*.haml"].each do |haml_file|
+ basename = haml_file[0..-6]
+ engine = Haml::Engine.new(open(haml_file).read, :filename => haml_file)
+ puts " haml #{File.basename(basename)}"
+ output = open(basename,'w')
+ output.write(engine.render)
+ output.close
+ end
+ end
+end
+
+namespace :examples do
+ desc "clean up the example directories"
+ task :clean do
+ puts "Cleaning Examples"
+ Dir.glob('examples/*/clean.rb').each do |cleaner|
+ load cleaner
+ end
+ end
+end
+
+task "gemspec:generate" => "examples:clean"
+
+namespace :git do
+ task :clean do
+ sh "git", "clean", "-fdx"
+ end
+end
+
+
+begin
+ require 'cucumber/rake/task'
+ require 'rcov/rcovtask'
+ namespace :rcov do
+ Cucumber::Rake::Task.new(:cucumber) do |t|
+ t.rcov = true
+ t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
+ t.rcov_opts << %[-o "coverage"]
+ end
+
+ Rcov::RcovTask.new(:units) do |rcov|
+ rcov.libs << 'lib'
+ test_files = FileList['test/**/*_test.rb']
+ test_files.exclude('test/rails/*', 'test/haml/*')
+ rcov.pattern = test_files
+ rcov.output_dir = 'coverage'
+ rcov.verbose = true
+ rcov.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
+ rcov.rcov_opts << %[-o "coverage" --sort coverage]
+ end
+
+
+ desc "Run both specs and features to generate aggregated coverage"
+ task :all do |t|
+ rm "coverage.data" if File.exist?("coverage.data")
+ Rake::Task["rcov:units"].invoke
+ Rake::Task["rcov:cucumber"].invoke
+ end
+ end
+rescue LoadError => e
+ puts "WARNING: #{e}"
+end
+
5 lib/ruby/compass_0.11/compass-0.11.7/VERSION.yml
@@ -0,0 +1,5 @@
+---
+:major: 0
+:minor: 11
+:patch: 7
+:name: Antares
44 lib/ruby/compass_0.11/compass-0.11.7/bin/compass
@@ -0,0 +1,44 @@
+#!/usr/bin/env ruby
+# The compass command line utility
+
+# This allows compass to run easily from a git checkout without install.
+def fallback_load_path(path)
+ retried = false
+ begin
+ yield
+ rescue LoadError
+ unless retried
+ $: << path
+ retried = true
+ retry
+ end
+ raise
+ end
+end
+
+fallback_load_path(File.join(File.dirname(__FILE__), '..', 'lib')) do
+ require 'compass'
+ require 'compass/exec'
+end
+
+runner = Proc.new do
+ Compass::Exec::SubCommandUI.new(ARGV).run!
+end
+
+if ARGV.delete("--profile")
+ require 'ruby-prof'
+ RubyProf.start
+ exit_code = runner.call
+ result = RubyProf.stop
+
+ # Print a flat profile to text
+ printer = RubyProf::FlatPrinter.new(result)
+ printer.print(STDERR, 0)
+ exit exit_code
+else
+ if exit_code = runner.call
+ exit exit_code
+ else
+ exit 1
+ end
+end
707 lib/ruby/compass_0.11/compass-0.11.7/bin/compass.compiled.rbc
@@ -0,0 +1,707 @@
+!RBIX
+9595534255132031488
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+169
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+15
+5
+45
+4
+5
+45
+4
+6
+65
+49
+7
+0
+49
+8
+1
+7
+9
+64
+7
+10
+64
+49
+11
+3
+56
+12
+47
+50
+0
+1
+15
+45
+13
+14
+56
+15
+50
+16
+0
+19
+0
+15
+45
+17
+18
+7
+19
+64
+49
+20
+1
+9
+151
+5
+7
+21
+64
+47
+49
+22
+1
+15
+45
+23
+24
+49
+25
+0
+15
+20
+0
+49
+26
+0
+19
+1
+15
+45
+23
+27
+49
+28
+0
+19
+2
+15
+45
+23
+29
+43
+30
+13
+71
+16
+47
+9
+124
+47