frontsau 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +21 -0
  5. data/README.md +30 -0
  6. data/Rakefile +2 -0
  7. data/bin/frontsau +15 -0
  8. data/bin/frontsau-phaml-compiler +35 -0
  9. data/example/.frontsau +12 -0
  10. data/example/assets/head.jpg +0 -0
  11. data/example/assets/script.js +4 -0
  12. data/example/assets/style.css +6 -0
  13. data/example/css/includes.sass +2 -0
  14. data/example/css/style.sass +6 -0
  15. data/example/image/head.jpg +0 -0
  16. data/example/index.html +0 -0
  17. data/example/js/script.coffee +1 -0
  18. data/frontsau.gemspec +41 -0
  19. data/lib/Phamlp/Phamlp.php +72 -0
  20. data/lib/Phamlp/PhamlpException.php +31 -0
  21. data/lib/Phamlp/haml/HamlException.php +29 -0
  22. data/lib/Phamlp/haml/HamlHelpers.php +199 -0
  23. data/lib/Phamlp/haml/HamlParser.php +1250 -0
  24. data/lib/Phamlp/haml/filters/HamlBaseFilter.php +30 -0
  25. data/lib/Phamlp/haml/filters/HamlCdataFilter.php +29 -0
  26. data/lib/Phamlp/haml/filters/HamlCssFilter.php +30 -0
  27. data/lib/Phamlp/haml/filters/HamlEscapedFilter.php +32 -0
  28. data/lib/Phamlp/haml/filters/HamlJavascriptFilter.php +31 -0
  29. data/lib/Phamlp/haml/filters/HamlPhpFilter.php +27 -0
  30. data/lib/Phamlp/haml/filters/HamlPlainFilter.php +28 -0
  31. data/lib/Phamlp/haml/filters/HamlPreserveFilter.php +29 -0
  32. data/lib/Phamlp/haml/filters/HamlSassFilter.php +37 -0
  33. data/lib/Phamlp/haml/filters/HamlScssFilter.php +37 -0
  34. data/lib/Phamlp/haml/filters/_HamlMarkdownFilter.php +50 -0
  35. data/lib/Phamlp/haml/filters/_HamlTextileFilter.php +50 -0
  36. data/lib/Phamlp/haml/messages/_i18n.php +32 -0
  37. data/lib/Phamlp/haml/messages/de.php +32 -0
  38. data/lib/Phamlp/haml/messages/fr.php +32 -0
  39. data/lib/Phamlp/haml/renderers/HamlCompactRenderer.php +32 -0
  40. data/lib/Phamlp/haml/renderers/HamlCompressedRenderer.php +48 -0
  41. data/lib/Phamlp/haml/renderers/HamlExpandedRenderer.php +58 -0
  42. data/lib/Phamlp/haml/renderers/HamlNestedRenderer.php +77 -0
  43. data/lib/Phamlp/haml/renderers/HamlRenderer.php +137 -0
  44. data/lib/Phamlp/haml/tree/HamlCodeBlockNode.php +58 -0
  45. data/lib/Phamlp/haml/tree/HamlCommentNode.php +41 -0
  46. data/lib/Phamlp/haml/tree/HamlDoctypeNode.php +27 -0
  47. data/lib/Phamlp/haml/tree/HamlElementNode.php +52 -0
  48. data/lib/Phamlp/haml/tree/HamlFilterNode.php +50 -0
  49. data/lib/Phamlp/haml/tree/HamlHelperNode.php +73 -0
  50. data/lib/Phamlp/haml/tree/HamlNode.php +253 -0
  51. data/lib/Phamlp/haml/tree/HamlNodeExceptions.php +19 -0
  52. data/lib/Phamlp/haml/tree/HamlRootNode.php +58 -0
  53. data/lib/Phamlp/sass/SassException.php +29 -0
  54. data/lib/Phamlp/sass/SassFile.php +164 -0
  55. data/lib/Phamlp/sass/SassParser.php +848 -0
  56. data/lib/Phamlp/sass/extensions/compass/config.php +65 -0
  57. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/_blueprint.scss +47 -0
  58. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_buttons.scss +101 -0
  59. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_colors.scss +32 -0
  60. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_debug.scss +11 -0
  61. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +86 -0
  62. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_form.scss +68 -0
  63. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_grid.scss +249 -0
  64. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_ie.scss +109 -0
  65. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_interaction.scss +57 -0
  66. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_link-icons.scss +37 -0
  67. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +147 -0
  68. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_print.scss +93 -0
  69. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_reset.scss +3 -0
  70. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_rtl.scss +133 -0
  71. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_scaffolding.scss +54 -0
  72. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_typography.scss +104 -0
  73. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_utilities.scss +37 -0
  74. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/reset/_utilities.scss +58 -0
  75. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/grid.png +0 -0
  76. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/ie.sass +4 -0
  77. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/manifest.rb +30 -0
  78. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/partials/_base.sass +10 -0
  79. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/print.sass +4 -0
  80. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/screen.sass +12 -0
  81. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
  82. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
  83. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
  84. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons.sass +49 -0
  85. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/manifest.rb +17 -0
  86. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
  87. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
  88. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
  89. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
  90. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
  91. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
  92. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
  93. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
  94. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons.sass +13 -0
  95. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/manifest.rb +23 -0
  96. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/grid.png +0 -0
  97. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/ie.sass +16 -0
  98. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/manifest.rb +30 -0
  99. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/partials/_base.sass +11 -0
  100. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/print.sass +8 -0
  101. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/screen.sass +45 -0
  102. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/grid.png +0 -0
  103. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/ie.sass +16 -0
  104. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/manifest.rb +33 -0
  105. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_base.sass +10 -0
  106. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_form.sass +6 -0
  107. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_page.sass +18 -0
  108. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_two_col.sass +38 -0
  109. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/print.sass +5 -0
  110. data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/screen.sass +14 -0
  111. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/_compass.scss +2 -0
  112. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_css3.scss +15 -0
  113. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_layout.scss +1 -0
  114. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_reset.scss +3 -0
  115. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_utilities.scss +6 -0
  116. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +43 -0
  117. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +42 -0
  118. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-size.scss +14 -0
  119. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +135 -0
  120. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +50 -0
  121. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +13 -0
  122. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box.scss +112 -0
  123. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_columns.scss +55 -0
  124. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_font-face.scss +33 -0
  125. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_gradient.scss +82 -0
  126. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +12 -0
  127. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_opacity.scss +27 -0
  128. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_shared.scss +47 -0
  129. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +25 -0
  130. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_transform.scss +85 -0
  131. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_transition.scss +85 -0
  132. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  133. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/reset/_utilities.scss +133 -0
  134. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_general.scss +6 -0
  135. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_links.scss +3 -0
  136. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_lists.scss +4 -0
  137. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_print.scss +17 -0
  138. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_sprites.scss +1 -0
  139. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_tables.scss +3 -0
  140. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_text.scss +3 -0
  141. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss +31 -0
  142. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +15 -0
  143. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +35 -0
  144. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +16 -0
  145. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_reset.scss +2 -0
  146. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  147. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  148. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_hover-link.scss +5 -0
  149. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_link-colors.scss +28 -0
  150. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +7 -0
  151. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.scss +34 -0
  152. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +52 -0
  153. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +47 -0
  154. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_inline-list.scss +29 -0
  155. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +56 -0
  156. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +20 -0
  157. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +27 -0
  158. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  159. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.scss +25 -0
  160. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.scss +2 -0
  161. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_replacement.scss +34 -0
  162. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/ellipsis.sass +9 -0
  163. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/manifest.rb +27 -0
  164. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +14 -0
  165. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/manifest.rb +20 -0
  166. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/stylesheets/main.sass +1 -0
  167. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/templates/project/manifest.rb +2 -0
  168. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/templates/project/screen.sass +2 -0
  169. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/USAGE.markdown +32 -0
  170. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/ie.sass +6 -0
  171. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/manifest.rb +4 -0
  172. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/print.sass +6 -0
  173. data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/screen.sass +7 -0
  174. data/lib/Phamlp/sass/extensions/compass/functions/colourStops.php +268 -0
  175. data/lib/Phamlp/sass/extensions/compass/functions/constants.php +44 -0
  176. data/lib/Phamlp/sass/extensions/compass/functions/fontFiles.php +30 -0
  177. data/lib/Phamlp/sass/extensions/compass/functions/imageSize.php +39 -0
  178. data/lib/Phamlp/sass/extensions/compass/functions/inlineData.php +84 -0
  179. data/lib/Phamlp/sass/extensions/compass/functions/lists.php +47 -0
  180. data/lib/Phamlp/sass/extensions/compass/functions/selectors.php +128 -0
  181. data/lib/Phamlp/sass/extensions/compass/functions/urls.php +143 -0
  182. data/lib/Phamlp/sass/extensions/compass/stylesheets/_compass.scss +2 -0
  183. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_css3.scss +15 -0
  184. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_layout.scss +1 -0
  185. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_reset.scss +3 -0
  186. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_utilities.scss +6 -0
  187. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-clip.scss +43 -0
  188. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-origin.scss +42 -0
  189. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-size.scss +14 -0
  190. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_border-radius.scss +135 -0
  191. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box-shadow.scss +50 -0
  192. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box-sizing.scss +13 -0
  193. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box.scss +112 -0
  194. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_columns.scss +55 -0
  195. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_font-face.scss +33 -0
  196. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_gradient.scss +96 -0
  197. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_inline-block.scss +12 -0
  198. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_opacity.scss +27 -0
  199. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_shared.scss +47 -0
  200. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_text-shadow.scss +25 -0
  201. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_transform.scss +85 -0
  202. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_transition.scss +85 -0
  203. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  204. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/reset/_utilities.scss +133 -0
  205. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_general.scss +6 -0
  206. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_links.scss +3 -0
  207. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_lists.scss +4 -0
  208. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_print.scss +17 -0
  209. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_sprites.scss +1 -0
  210. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_tables.scss +3 -0
  211. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_text.scss +3 -0
  212. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_clearfix.scss +31 -0
  213. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_float.scss +15 -0
  214. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_hacks.scss +35 -0
  215. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_min.scss +16 -0
  216. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_reset.scss +2 -0
  217. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  218. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  219. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_hover-link.scss +5 -0
  220. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_link-colors.scss +28 -0
  221. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +7 -0
  222. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_bullets.scss +34 -0
  223. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +52 -0
  224. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +47 -0
  225. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_inline-list.scss +29 -0
  226. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +56 -0
  227. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +20 -0
  228. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_borders.scss +27 -0
  229. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  230. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_ellipsis.scss +25 -0
  231. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_nowrap.scss +2 -0
  232. data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_replacement.scss +34 -0
  233. data/lib/Phamlp/sass/messages/_i18n.php +122 -0
  234. data/lib/Phamlp/sass/messages/de.php +70 -0
  235. data/lib/Phamlp/sass/messages/fr.php +70 -0
  236. data/lib/Phamlp/sass/renderers/SassCompactRenderer.php +130 -0
  237. data/lib/Phamlp/sass/renderers/SassCompressedRenderer.php +102 -0
  238. data/lib/Phamlp/sass/renderers/SassExpandedRenderer.php +62 -0
  239. data/lib/Phamlp/sass/renderers/SassNestedRenderer.php +61 -0
  240. data/lib/Phamlp/sass/renderers/SassRenderer.php +51 -0
  241. data/lib/Phamlp/sass/script/SassScriptFunction.php +169 -0
  242. data/lib/Phamlp/sass/script/SassScriptFunctions.php +751 -0
  243. data/lib/Phamlp/sass/script/SassScriptLexer.php +114 -0
  244. data/lib/Phamlp/sass/script/SassScriptOperation.php +151 -0
  245. data/lib/Phamlp/sass/script/SassScriptParser.php +192 -0
  246. data/lib/Phamlp/sass/script/SassScriptParserExceptions.php +40 -0
  247. data/lib/Phamlp/sass/script/SassScriptVariable.php +57 -0
  248. data/lib/Phamlp/sass/script/literals/SassBoolean.php +67 -0
  249. data/lib/Phamlp/sass/script/literals/SassColour.php +886 -0
  250. data/lib/Phamlp/sass/script/literals/SassLiteral.php +359 -0
  251. data/lib/Phamlp/sass/script/literals/SassLiteralExceptions.php +47 -0
  252. data/lib/Phamlp/sass/script/literals/SassNumber.php +503 -0
  253. data/lib/Phamlp/sass/script/literals/SassString.php +106 -0
  254. data/lib/Phamlp/sass/tree/SassCommentNode.php +64 -0
  255. data/lib/Phamlp/sass/tree/SassContext.php +120 -0
  256. data/lib/Phamlp/sass/tree/SassDebugNode.php +84 -0
  257. data/lib/Phamlp/sass/tree/SassDirectiveNode.php +76 -0
  258. data/lib/Phamlp/sass/tree/SassElseNode.php +28 -0
  259. data/lib/Phamlp/sass/tree/SassExtendNode.php +47 -0
  260. data/lib/Phamlp/sass/tree/SassForNode.php +99 -0
  261. data/lib/Phamlp/sass/tree/SassIfNode.php +95 -0
  262. data/lib/Phamlp/sass/tree/SassImportNode.php +69 -0
  263. data/lib/Phamlp/sass/tree/SassMixinDefinitionNode.php +88 -0
  264. data/lib/Phamlp/sass/tree/SassMixinNode.php +91 -0
  265. data/lib/Phamlp/sass/tree/SassNode.php +342 -0
  266. data/lib/Phamlp/sass/tree/SassNodeExceptions.php +117 -0
  267. data/lib/Phamlp/sass/tree/SassPropertyNode.php +239 -0
  268. data/lib/Phamlp/sass/tree/SassRootNode.php +100 -0
  269. data/lib/Phamlp/sass/tree/SassRuleNode.php +337 -0
  270. data/lib/Phamlp/sass/tree/SassVariableNode.php +90 -0
  271. data/lib/Phamlp/sass/tree/SassWhileNode.php +64 -0
  272. data/lib/frontsau/assets/rack.rb +12 -0
  273. data/lib/frontsau/assets/sprockets.rb +59 -0
  274. data/lib/frontsau/assets/static_assets_compiler.rb +50 -0
  275. data/lib/frontsau/assets/url_rewriter.rb +22 -0
  276. data/lib/frontsau/assets/watcher.rb +60 -0
  277. data/lib/frontsau/thor_app.rb +118 -0
  278. data/lib/frontsau/version.rb +3 -0
  279. data/lib/frontsau.rb +64 -0
  280. metadata +578 -0
@@ -0,0 +1,70 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassRuleNode.php 49 2010-04-04 10:51:24Z chris.l.yates $ */
3
+ /**
4
+ * Message translations.
5
+ *
6
+ * This file is contains the localizable messages for Sass. You may modify this
7
+ * file by translating the messages and saving with the filename language.php
8
+ * where "language" is the language ID of the translations.
9
+ *
10
+ * Each array element represents the translation (value) of a message (key).
11
+ * If the value is empty the message is considered as not translated.
12
+ *
13
+ * NOTE: this file must be saved in UTF-8 encoding.
14
+ *
15
+ * @author Chris Yates <chris.l.yates@gmail.com>
16
+ * @copyright Copyright (c) 2010 PBM Web Development
17
+ * @license http://phamlp.googlecode.com/files/license.txt
18
+ * @package PHamlP
19
+ * @subpackage Sass.messages
20
+ */
21
+ return array (
22
+ '@else(if) directive must come after @(else)if'=>'@else(if) directive doit venir après @(else)if',
23
+ 'Amount to shift left'=>'Montant à décalage à gauche',
24
+ 'Amount to shift right'=>'Montant à décalage à droite',
25
+ 'between {min} and {max} inclusive'=>'entre les {min} et {max} inclusivement',
26
+ 'Can not use parent selector (&) when no parent selectors'=>"Impossible d'utiliser le sélecteur parent (&) si aucun parent sélecteurs",
27
+ 'Child classes must override this method'=>'Classes enfants doivent redéfinir cette méthode',
28
+ '{class} does not support {operation}.'=>'{class} ne mettre en œuvre {operation}.',
29
+ 'Colours'=>'Couleur',
30
+ 'colours'=>'couleurs',
31
+ 'Illegal comment type'=>'Type de commentaire illégale',
32
+ 'Illegal indentation ({level}); indentation can only increase by one'=>"Niveau niveau d'indentation illégale ({level}); ne peut augmenter d'un",
33
+ 'import directives'=>"directives à l'importation",
34
+ 'Incompatible units: {from} and {to}'=>'Unités incompatibles: {from} et {to}',
35
+ 'Incorrect argument count for {method}; expected {expected}, received {received}'=>'Argument incorrect comptent pour {method}; attendu {expected}, reçu {received}',
36
+ 'Incorrect operand count for {operation}; expected {expected}, received {received}'=>'Opérande incorrect comptent pour {operation}; attendu {expected}, reçu {received}',
37
+ 'Invalid indentation'=>'Indentation blancs',
38
+ 'Invalid units: {value}'=>'Unités blancs',
39
+ 'Invalid variable definition; name and expression required'=>"Définition de la variable blancs, le nom et l'expression nécessaire",
40
+ 'Invalid {what}'=>'Invalide {what}',
41
+ 'Mixed indentation not allowed'=>'Indentation mixte pas autorisé',
42
+ 'Mixin {which} directive shortcut not allowed in SCSS'=>'Mixin {which} directive shortcutraccourci pas admis dans SCSS',
43
+ "Mixin::{mname}: Required variable ({vname}) not given.\nMixin defined: {dfile}::{dline}\nMixin used: {ufile}::{uline}"=>"Mixin::{mname}: Variable requise ({vname}) n'est pas donnée.\nMixin défini: {dfile}::{dline}\nMixin utilisés",
44
+ 'Mixin::{name}: Required variables must be defined before optional variables'=>'Mixin::{name}: Variables requises doivent être définies avant les variables facultatives',
45
+ 'Mixins can only be defined at root level'=>'Mixins ne peuvent être définis au niveau de la racine',
46
+ 'Nesting not allowed beneath {what}'=>'La mise en pages ne peuvent, sous',
47
+ 'No getter function for {what}'=>'Pas de fonction getter pour {what}',
48
+ 'No setter function for {what}'=>'Pas de fonction setter pour {what}',
49
+ 'number'=>'nombre',
50
+ 'Number'=>'Nombre',
51
+ 'Properties can not be assigned at root level'=>'Propriétés ne peut pas être attribué au niveau de la racine',
52
+ 'SassColour can not have HSL and RGB keys specified'=>'SassColour ne peut pas avoir HSL et RGB touches spécifiées',
53
+ 'SassColour must have all {colourSpace} keys specified'=>'SassColour doit disposer de tous {colourSpace} touches spécifiées',
54
+ 'SassColour array must have at least 3 elements'=>'SassColour array doit avoir au moins 3 éléments',
55
+ 'Selectors can not end in a comma'=>'Sélecteurs ne peut pas se terminer par une virgule',
56
+ 'Setting variables with "{sassDefault}=" is deprecated; use "${name}: {value}{scssDefault}"'=>'Définition des variables avec "{sassDefault}=" est obsolète, utiliser "${name}: {value}"',
57
+ 'Unable to create document tree for {uri}'=>"Impossible de créer le document d'arbres pour {uri}",
58
+ 'Unable to find {what}: {filename}'=>'Impossible de trouver {what}: {filename}',
59
+ 'Undefined operation "{operation}" for {what}'=>'Non fonctionnement "{operation}" for {what}',
60
+ 'Undefined {what}: {name}'=>'Indéfini {what}: {name}',
61
+ 'unitless number'=>'nombre sans unité',
62
+ 'Unknown property: {name}'=>'Propriété inconnue: {name}',
63
+ 'Unmatched parentheses'=>'Inégalée parenthèses',
64
+ 'Value'=>'Valeur',
65
+ 'variables'=>'variables',
66
+ 'Variables prefixed with "!" is deprecated; use "${name}"'=>'Variables préfixées par "!" est obsolète; utiliser "${name}',
67
+ 'Warning'=>'Alerte',
68
+ '{what} must be a {type}'=>'{what} doit être un {type}',
69
+ '{what} must be {inRange}'=>'{what} doit être {inRange}',
70
+ );
@@ -0,0 +1,130 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassCompactRenderer.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
3
+ /**
4
+ * SassCompactRenderer class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.renderers
10
+ */
11
+
12
+ require_once('SassCompressedRenderer.php');
13
+
14
+ /**
15
+ * SassCompactRenderer class.
16
+ * Each CSS rule takes up only one line, with every property defined on that
17
+ * line. Nested rules are placed next to each other with no newline, while
18
+ * groups of rules have newlines between them.
19
+ * @package PHamlP
20
+ * @subpackage Sass.renderers
21
+ */
22
+ class SassCompactRenderer extends SassCompressedRenderer {
23
+ const DEBUG_INFO_RULE = '@media -sass-debug-info';
24
+ const DEBUG_INFO_PROPERTY = 'font-family';
25
+
26
+ /**
27
+ * Renders the brace between the selectors and the properties
28
+ * @return string the brace between the selectors and the properties
29
+ */
30
+ protected function between() {
31
+ return ' { ';
32
+ }
33
+
34
+ /**
35
+ * Renders the brace at the end of the rule
36
+ * @return string the brace between the rule and its properties
37
+ */
38
+ protected function end() {
39
+ return " }\n";
40
+ }
41
+
42
+ /**
43
+ * Renders a comment.
44
+ * Comments preceeding a rule are on their own line.
45
+ * Comments within a rule are on the same line as the rule.
46
+ * @param SassNode the node being rendered
47
+ * @return string the rendered commnt
48
+ */
49
+ public function renderComment($node) {
50
+ $nl = ($node->parent instanceof SassRuleNode?'':"\n");
51
+ return "$nl/* " . join("\n * ", $node->children) . " */$nl" ;
52
+ }
53
+
54
+ /**
55
+ * Renders a directive.
56
+ * @param SassNode the node being rendered
57
+ * @param array properties of the directive
58
+ * @return string the rendered directive
59
+ */
60
+ public function renderDirective($node, $properties) {
61
+ return str_replace("\n", '', parent::renderDirective($node, $properties)) .
62
+ "\n\n";
63
+ }
64
+
65
+ /**
66
+ * Renders properties.
67
+ * @param SassNode the node being rendered
68
+ * @param array properties to render
69
+ * @return string the rendered properties
70
+ */
71
+ public function renderProperties($node, $properties) {
72
+ return join(' ', $properties);
73
+ }
74
+
75
+ /**
76
+ * Renders a property.
77
+ * @param SassNode the node being rendered
78
+ * @return string the rendered property
79
+ */
80
+ public function renderProperty($node) {
81
+ return "{$node->name}: {$node->value};";
82
+ }
83
+
84
+ /**
85
+ * Renders a rule.
86
+ * @param SassNode the node being rendered
87
+ * @param array rule properties
88
+ * @param string rendered rules
89
+ * @return string the rendered rule
90
+ */
91
+ public function renderRule($node, $properties, $rules) {
92
+ return $this->renderDebug($node) . parent::renderRule($node, $properties,
93
+ str_replace("\n\n", "\n", $rules)) . "\n";
94
+ }
95
+
96
+ /**
97
+ * Renders debug information.
98
+ * If the node has the debug_info options set true the line number and filename
99
+ * are rendered in a format compatible with
100
+ * {@link https://addons.mozilla.org/en-US/firefox/addon/103988/ FireSass}.
101
+ * Else if the node has the line_numbers option set true the line number and
102
+ * filename are rendered in a comment.
103
+ * @param SassNode the node being rendered
104
+ * @return string the debug information
105
+ */
106
+ protected function renderDebug($node) {
107
+ $indent = $this->getIndent($node);
108
+ $debug = '';
109
+
110
+ if ($node->debug_info) {
111
+ $debug = $indent . self::DEBUG_INFO_RULE . '{';
112
+ $debug .= 'filename{' . self::DEBUG_INFO_PROPERTY . ':' . preg_replace('/([^-\w])/', '\\\\\1', "file://{$node->filename}") . ';}';
113
+ $debug .= 'line{' . self::DEBUG_INFO_PROPERTY . ":'{$node->line}';}";
114
+ $debug .= "}\n";
115
+ }
116
+ elseif ($node->line_numbers) {
117
+ $debug .= "$indent/* line {$node->line} {$node->filename} */\n";
118
+ }
119
+ return $debug;
120
+ }
121
+
122
+ /**
123
+ * Renders rule selectors.
124
+ * @param SassNode the node being rendered
125
+ * @return string the rendered selectors
126
+ */
127
+ protected function renderSelectors($node) {
128
+ return join(', ', $node->selectors);
129
+ }
130
+ }
@@ -0,0 +1,102 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassCompressedRenderer.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
3
+ /**
4
+ * SassCompressedRenderer class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.renderers
10
+ */
11
+ /**
12
+ * SassCompressedRenderer class.
13
+ * Compressed style takes up the minimum amount of space possible, having no
14
+ * whitespace except that necessary to separate selectors and a newline at the
15
+ * end of the file. It's not meant to be human-readable
16
+ * @package PHamlP
17
+ * @subpackage Sass.renderers
18
+ */
19
+ class SassCompressedRenderer extends SassRenderer {
20
+ /**
21
+ * Renders the brace between the selectors and the properties
22
+ * @return string the brace between the selectors and the properties
23
+ */
24
+ protected function between() {
25
+ return '{';
26
+ }
27
+
28
+ /**
29
+ * Renders the brace at the end of the rule
30
+ * @return string the brace between the rule and its properties
31
+ */
32
+ protected function end() {
33
+ return '}';
34
+ }
35
+
36
+ /**
37
+ * Returns the indent string for the node
38
+ * @param SassNode the node to return the indent string for
39
+ * @return string the indent string for this SassNode
40
+ */
41
+ protected function getIndent($node) {
42
+ return '';
43
+ }
44
+
45
+ /**
46
+ * Renders a comment.
47
+ * @param SassNode the node being rendered
48
+ * @return string the rendered comment
49
+ */
50
+ public function renderComment($node) {
51
+ return '';
52
+ }
53
+
54
+ /**
55
+ * Renders a directive.
56
+ * @param SassNode the node being rendered
57
+ * @param array properties of the directive
58
+ * @return string the rendered directive
59
+ */
60
+ public function renderDirective($node, $properties) {
61
+ return $node->directive . $this->between() . $this->renderProperties($node, $properties) . $this->end();
62
+ }
63
+
64
+ /**
65
+ * Renders properties.
66
+ * @param SassNode the node being rendered
67
+ * @param array properties to render
68
+ * @return string the rendered properties
69
+ */
70
+ public function renderProperties($node, $properties) {
71
+ return join('', $properties);
72
+ }
73
+
74
+ /**
75
+ * Renders a property.
76
+ * @param SassNode the node being rendered
77
+ * @return string the rendered property
78
+ */
79
+ public function renderProperty($node) {
80
+ return "{$node->name}:{$node->value};";
81
+ }
82
+
83
+ /**
84
+ * Renders a rule.
85
+ * @param SassNode the node being rendered
86
+ * @param array rule properties
87
+ * @param string rendered rules
88
+ * @return string the rendered directive
89
+ */
90
+ public function renderRule($node, $properties, $rules) {
91
+ return (!empty($properties) ? $this->renderSelectors($node) . $this->between() . $this->renderProperties($node, $properties) . $this->end() : '') . $rules;
92
+ }
93
+
94
+ /**
95
+ * Renders the rule's selectors
96
+ * @param SassNode the node being rendered
97
+ * @return string the rendered selectors
98
+ */
99
+ protected function renderSelectors($node) {
100
+ return join(',', $node->selectors);
101
+ }
102
+ }
@@ -0,0 +1,62 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassExpandedRenderer.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
3
+ /**
4
+ * SassExpandedRenderer class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.renderers
10
+ */
11
+
12
+ require_once('SassCompactRenderer.php');
13
+
14
+ /**
15
+ * SassExpandedRenderer class.
16
+ * Expanded is the typical human-made CSS style, with each property and rule
17
+ * taking up one line. Properties are indented within the rules, but the rules
18
+ * are not indented in any special way.
19
+ * @package PHamlP
20
+ * @subpackage Sass.renderers
21
+ */
22
+ class SassExpandedRenderer extends SassCompactRenderer {
23
+ /**
24
+ * Renders the brace between the selectors and the properties
25
+ * @return string the brace between the selectors and the properties
26
+ */
27
+ protected function between() {
28
+ return " {\n" ;
29
+ }
30
+
31
+ /**
32
+ * Renders the brace at the end of the rule
33
+ * @return string the brace between the rule and its properties
34
+ */
35
+ protected function end() {
36
+ return "\n}\n\n";
37
+ }
38
+
39
+ /**
40
+ * Renders a comment.
41
+ * @param SassNode the node being rendered
42
+ * @return string the rendered commnt
43
+ */
44
+ public function renderComment($node) {
45
+ $indent = $this->getIndent($node);
46
+ $lines = explode("\n", $node->value);
47
+ foreach ($lines as &$line) {
48
+ $line = trim($line);
49
+ }
50
+ return "$indent/*\n$indent * ".join("\n$indent * ", $lines)."\n$indent */".(empty($indent)?"\n":'');
51
+ }
52
+
53
+ /**
54
+ * Renders properties.
55
+ * @param array properties to render
56
+ * @return string the rendered properties
57
+ */
58
+ public function renderProperties($node, $properties) {
59
+ $indent = $this->getIndent($node).self::INDENT;
60
+ return $indent.join("\n$indent", $properties);
61
+ }
62
+ }
@@ -0,0 +1,61 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassNestedRenderer.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
3
+ /**
4
+ * SassNestedRenderer class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.renderers
10
+ */
11
+
12
+ require_once('SassExpandedRenderer.php');
13
+
14
+ /**
15
+ * SassNestedRenderer class.
16
+ * Nested style is the default Sass style, because it reflects the structure of
17
+ * the document in much the same way Sass does. Each rule is indented based on
18
+ * how deeply it's nested. Each property has its own line and is indented
19
+ * within the rule.
20
+ * @package PHamlP
21
+ * @subpackage Sass.renderers
22
+ */
23
+ class SassNestedRenderer extends SassExpandedRenderer {
24
+ /**
25
+ * Renders the brace at the end of the rule
26
+ * @return string the brace between the rule and its properties
27
+ */
28
+ protected function end() {
29
+ return " }\n";
30
+ }
31
+
32
+ /**
33
+ * Returns the indent string for the node
34
+ * @param SassNode the node being rendered
35
+ * @return string the indent string for this SassNode
36
+ */
37
+ protected function getIndent($node) {
38
+ return str_repeat(self::INDENT, $node->level);
39
+ }
40
+
41
+ /**
42
+ * Renders a directive.
43
+ * @param SassNode the node being rendered
44
+ * @param array properties of the directive
45
+ * @return string the rendered directive
46
+ */
47
+ public function renderDirective($node, $properties) {
48
+ $directive = $this->getIndent($node) . $node->directive . $this->between() . $this->renderProperties($properties);
49
+ return preg_replace('/(.*})\n$/', '\1', $directive) . $this->end();
50
+ }
51
+
52
+ /**
53
+ * Renders rule selectors.
54
+ * @param SassNode the node being rendered
55
+ * @return string the rendered selectors
56
+ */
57
+ protected function renderSelectors($node) {
58
+ $indent = $this->getIndent($node);
59
+ return $indent.join(",\n$indent", $node->selectors);
60
+ }
61
+ }
@@ -0,0 +1,51 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassRenderer.php 68 2010-04-18 13:24:41Z chris.l.yates $ */
3
+ /**
4
+ * SassRenderer class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.renderers
10
+ */
11
+
12
+ require_once('SassCompactRenderer.php');
13
+ require_once('SassCompressedRenderer.php');
14
+ require_once('SassExpandedRenderer.php');
15
+ require_once('SassNestedRenderer.php');
16
+
17
+ /**
18
+ * SassRenderer class.
19
+ * @package PHamlP
20
+ * @subpackage Sass.renderers
21
+ */
22
+ class SassRenderer {
23
+ /**#@+
24
+ * Output Styles
25
+ */
26
+ const STYLE_COMPRESSED = 'compressed';
27
+ const STYLE_COMPACT = 'compact';
28
+ const STYLE_EXPANDED = 'expanded';
29
+ const STYLE_NESTED = 'nested';
30
+ /**#@-*/
31
+
32
+ const INDENT = ' ';
33
+
34
+ /**
35
+ * Returns the renderer for the required render style.
36
+ * @param string render style
37
+ * @return SassRenderer
38
+ */
39
+ public static function getRenderer($style) {
40
+ switch ($style) {
41
+ case self::STYLE_COMPACT:
42
+ return new SassCompactRenderer();
43
+ case self::STYLE_COMPRESSED:
44
+ return new SassCompressedRenderer();
45
+ case self::STYLE_EXPANDED:
46
+ return new SassExpandedRenderer();
47
+ case self::STYLE_NESTED:
48
+ return new SassNestedRenderer();
49
+ } // switch
50
+ }
51
+ }
@@ -0,0 +1,169 @@
1
+ <?php
2
+ /* SVN FILE: $Id: SassScriptFunction.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
3
+ /**
4
+ * SassScriptFunction class file.
5
+ * @author Chris Yates <chris.l.yates@gmail.com>
6
+ * @copyright Copyright (c) 2010 PBM Web Development
7
+ * @license http://phamlp.googlecode.com/files/license.txt
8
+ * @package PHamlP
9
+ * @subpackage Sass.script
10
+ */
11
+
12
+ /**
13
+ * SassScriptFunction class.
14
+ * Preforms a SassScript function.
15
+ * @package PHamlP
16
+ * @subpackage Sass.script
17
+ */
18
+ class SassScriptFunction {
19
+ /**@#+
20
+ * Regexes for matching and extracting functions and arguments
21
+ */
22
+ const MATCH = '/^(((-\w)|(\w))[-\w]*)\(/';
23
+ const MATCH_FUNC = '/^((?:(?:-\w)|(?:\w))[-\w]*)\((.*)\)/';
24
+ const SPLIT_ARGS = '/\s*((?:[\'"].*?["\'])|(?:.+?(?:\(.*\).*?)?))\s*(?:,|$)/';
25
+ const NAME = 1;
26
+ const ARGS = 2;
27
+
28
+ private $name;
29
+ private $args;
30
+
31
+ /**
32
+ * SassScriptFunction constructor
33
+ * @param string name of the function
34
+ * @param array arguments for the function
35
+ * @return SassScriptFunction
36
+ */
37
+ public function __construct($name, $args) {
38
+ $this->name = $name;
39
+ $this->args = $args;
40
+ }
41
+
42
+ /**
43
+ * Evaluates the function.
44
+ * Look for a user defined function first - this allows users to override
45
+ * pre-defined functions, then try the pre-defined functions.
46
+ * @return Function the value of this Function
47
+ * @throws SassScriptFunctionException if function is undefined
48
+ */
49
+ public function perform() {
50
+ $name = str_replace('-', '_', $this->name);
51
+ foreach (SassScriptParser::$context->node->parser->function_paths as $path) {
52
+ $_path = explode(DIRECTORY_SEPARATOR, $path);
53
+ $_class = ucfirst($_path[sizeof($_path) - 2]);
54
+ foreach (array_slice(scandir($path), 2) as $file) {
55
+ $filename = $path . DIRECTORY_SEPARATOR . $file;
56
+ if (is_file($filename)) {
57
+ require_once($filename);
58
+ $class = 'SassExtentions'.$_class.'Functions'. ucfirst(substr($file, 0, -4));
59
+ if (method_exists($class, $name)) {
60
+ return call_user_func_array(array($class, $name), $this->args);
61
+ }
62
+ }
63
+ } // foreach
64
+ } // foreach
65
+
66
+ require_once('SassScriptFunctions.php');
67
+ if (method_exists('SassScriptFunctions', $name)) {
68
+ return call_user_func_array(array('SassScriptFunctions', $name), $this->args);
69
+ }
70
+
71
+ // CSS function: create a SassString that will emit the function into the CSS
72
+ $args = array();
73
+ foreach ($this->args as $arg) {
74
+ $args[] = $arg->toString();
75
+ }
76
+ return new SassString($this->name . '(' . join(', ', $args) . ')');
77
+ }
78
+
79
+ /**
80
+ * Imports files in the specified directory.
81
+ * @param string path to directory to import
82
+ * @return array filenames imported
83
+ */
84
+ private function import($dir) {
85
+ $files = array();
86
+
87
+ foreach (array_slice(scandir($dir), 2) as $file) {
88
+ if (is_file($dir . DIRECTORY_SEPARATOR . $file)) {
89
+ $files[] = $file;
90
+ require_once($dir . DIRECTORY_SEPARATOR . $file);
91
+ }
92
+ } // foreach
93
+ return $files;
94
+ }
95
+
96
+ /**
97
+ * Returns a value indicating if a token of this type can be matched at
98
+ * the start of the subject string.
99
+ * @param string the subject string
100
+ * @return mixed match at the start of the string or false if no match
101
+ */
102
+ public static function isa($subject) {
103
+ if (!preg_match(self::MATCH, $subject, $matches))
104
+ return false;
105
+
106
+ $match = $matches[0];
107
+ $paren = 1;
108
+ $strpos = strlen($match);
109
+ $strlen = strlen($subject);
110
+
111
+ while($paren && $strpos < $strlen) {
112
+ $c = $subject[$strpos++];
113
+
114
+ $match .= $c;
115
+ if ($c === '(') {
116
+ $paren += 1;
117
+ }
118
+ elseif ($c === ')') {
119
+ $paren -= 1;
120
+ }
121
+ }
122
+ return $match;
123
+ }
124
+
125
+ public static function extractArgs($string) {
126
+ $args = array();
127
+ $arg = '';
128
+ $paren = 0;
129
+ $strpos = 0;
130
+ $strlen = strlen($string);
131
+
132
+ while ($strpos < $strlen) {
133
+ $c = $string[$strpos++];
134
+
135
+ switch ($c) {
136
+ case '(':
137
+ $paren += 1;
138
+ $arg .= $c;
139
+ break;
140
+ case ')':
141
+ $paren -= 1;
142
+ $arg .= $c;
143
+ break;
144
+ case '"':
145
+ case "'":
146
+ $arg .= $c;
147
+ do {
148
+ $_c = $string[$strpos++];
149
+ $arg .= $_c;
150
+ } while ($_c !== $c);
151
+ break;
152
+ case ',':
153
+ if ($paren) {
154
+ $arg .= $c;
155
+ break;
156
+ }
157
+ $args[] = trim($arg);
158
+ $arg = '';
159
+ break;
160
+ default:
161
+ $arg .= $c;
162
+ break;
163
+ }
164
+ }
165
+
166
+ if ($arg) $args[] = trim($arg);
167
+ return $args;
168
+ }
169
+ }