frontsau 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +30 -0
- data/Rakefile +2 -0
- data/bin/frontsau +15 -0
- data/bin/frontsau-phaml-compiler +35 -0
- data/example/.frontsau +12 -0
- data/example/assets/head.jpg +0 -0
- data/example/assets/script.js +4 -0
- data/example/assets/style.css +6 -0
- data/example/css/includes.sass +2 -0
- data/example/css/style.sass +6 -0
- data/example/image/head.jpg +0 -0
- data/example/index.html +0 -0
- data/example/js/script.coffee +1 -0
- data/frontsau.gemspec +41 -0
- data/lib/Phamlp/Phamlp.php +72 -0
- data/lib/Phamlp/PhamlpException.php +31 -0
- data/lib/Phamlp/haml/HamlException.php +29 -0
- data/lib/Phamlp/haml/HamlHelpers.php +199 -0
- data/lib/Phamlp/haml/HamlParser.php +1250 -0
- data/lib/Phamlp/haml/filters/HamlBaseFilter.php +30 -0
- data/lib/Phamlp/haml/filters/HamlCdataFilter.php +29 -0
- data/lib/Phamlp/haml/filters/HamlCssFilter.php +30 -0
- data/lib/Phamlp/haml/filters/HamlEscapedFilter.php +32 -0
- data/lib/Phamlp/haml/filters/HamlJavascriptFilter.php +31 -0
- data/lib/Phamlp/haml/filters/HamlPhpFilter.php +27 -0
- data/lib/Phamlp/haml/filters/HamlPlainFilter.php +28 -0
- data/lib/Phamlp/haml/filters/HamlPreserveFilter.php +29 -0
- data/lib/Phamlp/haml/filters/HamlSassFilter.php +37 -0
- data/lib/Phamlp/haml/filters/HamlScssFilter.php +37 -0
- data/lib/Phamlp/haml/filters/_HamlMarkdownFilter.php +50 -0
- data/lib/Phamlp/haml/filters/_HamlTextileFilter.php +50 -0
- data/lib/Phamlp/haml/messages/_i18n.php +32 -0
- data/lib/Phamlp/haml/messages/de.php +32 -0
- data/lib/Phamlp/haml/messages/fr.php +32 -0
- data/lib/Phamlp/haml/renderers/HamlCompactRenderer.php +32 -0
- data/lib/Phamlp/haml/renderers/HamlCompressedRenderer.php +48 -0
- data/lib/Phamlp/haml/renderers/HamlExpandedRenderer.php +58 -0
- data/lib/Phamlp/haml/renderers/HamlNestedRenderer.php +77 -0
- data/lib/Phamlp/haml/renderers/HamlRenderer.php +137 -0
- data/lib/Phamlp/haml/tree/HamlCodeBlockNode.php +58 -0
- data/lib/Phamlp/haml/tree/HamlCommentNode.php +41 -0
- data/lib/Phamlp/haml/tree/HamlDoctypeNode.php +27 -0
- data/lib/Phamlp/haml/tree/HamlElementNode.php +52 -0
- data/lib/Phamlp/haml/tree/HamlFilterNode.php +50 -0
- data/lib/Phamlp/haml/tree/HamlHelperNode.php +73 -0
- data/lib/Phamlp/haml/tree/HamlNode.php +253 -0
- data/lib/Phamlp/haml/tree/HamlNodeExceptions.php +19 -0
- data/lib/Phamlp/haml/tree/HamlRootNode.php +58 -0
- data/lib/Phamlp/sass/SassException.php +29 -0
- data/lib/Phamlp/sass/SassFile.php +164 -0
- data/lib/Phamlp/sass/SassParser.php +848 -0
- data/lib/Phamlp/sass/extensions/compass/config.php +65 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/_blueprint.scss +47 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_buttons.scss +101 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_colors.scss +32 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_debug.scss +11 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +86 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_form.scss +68 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_grid.scss +249 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_ie.scss +109 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_interaction.scss +57 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_link-icons.scss +37 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +147 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_print.scss +93 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_reset.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_rtl.scss +133 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_scaffolding.scss +54 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_typography.scss +104 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/_utilities.scss +37 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/stylesheets/blueprint/reset/_utilities.scss +58 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/grid.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/ie.sass +4 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/manifest.rb +30 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/partials/_base.sass +10 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/print.sass +4 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/basic/screen.sass +12 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/buttons.sass +49 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/buttons/manifest.rb +17 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/link_icons.sass +13 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/link_icons/manifest.rb +23 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/grid.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/ie.sass +16 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/manifest.rb +30 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/partials/_base.sass +11 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/print.sass +8 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/project/screen.sass +45 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/grid.png +0 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/ie.sass +16 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/manifest.rb +33 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_base.sass +10 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_form.sass +6 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_page.sass +18 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/partials/_two_col.sass +38 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/print.sass +5 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/blueprint/templates/semantic/screen.sass +14 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/_compass.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_css3.scss +15 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_layout.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_reset.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/_utilities.scss +6 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +43 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +42 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_background-size.scss +14 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +135 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +50 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +13 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_box.scss +112 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_columns.scss +55 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_font-face.scss +33 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_gradient.scss +82 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +12 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_opacity.scss +27 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_shared.scss +47 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +25 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_transform.scss +85 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/css3/_transition.scss +85 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/layout/_sticky-footer.scss +23 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/reset/_utilities.scss +133 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_general.scss +6 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_links.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_lists.scss +4 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_print.scss +17 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_sprites.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_tables.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/_text.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss +31 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +15 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +35 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +16 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_reset.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_tabs.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_hover-link.scss +5 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_link-colors.scss +28 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +7 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.scss +34 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +52 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +47 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/lists/_inline-list.scss +29 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +56 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +20 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +27 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.scss +25 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/stylesheets/compass/utilities/text/_replacement.scss +34 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/ellipsis.sass +9 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/manifest.rb +27 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +14 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/manifest.rb +20 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/stylesheets/main.sass +1 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/templates/project/manifest.rb +2 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/extension/templates/project/screen.sass +2 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/USAGE.markdown +32 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/ie.sass +6 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/manifest.rb +4 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/print.sass +6 -0
- data/lib/Phamlp/sass/extensions/compass/frameworks/compass/templates/project/screen.sass +7 -0
- data/lib/Phamlp/sass/extensions/compass/functions/colourStops.php +268 -0
- data/lib/Phamlp/sass/extensions/compass/functions/constants.php +44 -0
- data/lib/Phamlp/sass/extensions/compass/functions/fontFiles.php +30 -0
- data/lib/Phamlp/sass/extensions/compass/functions/imageSize.php +39 -0
- data/lib/Phamlp/sass/extensions/compass/functions/inlineData.php +84 -0
- data/lib/Phamlp/sass/extensions/compass/functions/lists.php +47 -0
- data/lib/Phamlp/sass/extensions/compass/functions/selectors.php +128 -0
- data/lib/Phamlp/sass/extensions/compass/functions/urls.php +143 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/_compass.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_css3.scss +15 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_layout.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_reset.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/_utilities.scss +6 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-clip.scss +43 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-origin.scss +42 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_background-size.scss +14 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_border-radius.scss +135 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box-shadow.scss +50 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box-sizing.scss +13 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_box.scss +112 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_columns.scss +55 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_font-face.scss +33 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_gradient.scss +96 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_inline-block.scss +12 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_opacity.scss +27 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_shared.scss +47 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_text-shadow.scss +25 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_transform.scss +85 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/css3/_transition.scss +85 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/layout/_sticky-footer.scss +23 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/reset/_utilities.scss +133 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_general.scss +6 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_links.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_lists.scss +4 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_print.scss +17 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_sprites.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_tables.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/_text.scss +3 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_clearfix.scss +31 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_float.scss +15 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_hacks.scss +35 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_min.scss +16 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_reset.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_tabs.scss +1 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_hover-link.scss +5 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_link-colors.scss +28 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/links/_unstyled-link.scss +7 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_bullets.scss +34 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_horizontal-list.scss +52 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_inline-block-list.scss +47 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/lists/_inline-list.scss +29 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +56 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +20 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_borders.scss +27 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_ellipsis.scss +25 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_nowrap.scss +2 -0
- data/lib/Phamlp/sass/extensions/compass/stylesheets/compass/utilities/text/_replacement.scss +34 -0
- data/lib/Phamlp/sass/messages/_i18n.php +122 -0
- data/lib/Phamlp/sass/messages/de.php +70 -0
- data/lib/Phamlp/sass/messages/fr.php +70 -0
- data/lib/Phamlp/sass/renderers/SassCompactRenderer.php +130 -0
- data/lib/Phamlp/sass/renderers/SassCompressedRenderer.php +102 -0
- data/lib/Phamlp/sass/renderers/SassExpandedRenderer.php +62 -0
- data/lib/Phamlp/sass/renderers/SassNestedRenderer.php +61 -0
- data/lib/Phamlp/sass/renderers/SassRenderer.php +51 -0
- data/lib/Phamlp/sass/script/SassScriptFunction.php +169 -0
- data/lib/Phamlp/sass/script/SassScriptFunctions.php +751 -0
- data/lib/Phamlp/sass/script/SassScriptLexer.php +114 -0
- data/lib/Phamlp/sass/script/SassScriptOperation.php +151 -0
- data/lib/Phamlp/sass/script/SassScriptParser.php +192 -0
- data/lib/Phamlp/sass/script/SassScriptParserExceptions.php +40 -0
- data/lib/Phamlp/sass/script/SassScriptVariable.php +57 -0
- data/lib/Phamlp/sass/script/literals/SassBoolean.php +67 -0
- data/lib/Phamlp/sass/script/literals/SassColour.php +886 -0
- data/lib/Phamlp/sass/script/literals/SassLiteral.php +359 -0
- data/lib/Phamlp/sass/script/literals/SassLiteralExceptions.php +47 -0
- data/lib/Phamlp/sass/script/literals/SassNumber.php +503 -0
- data/lib/Phamlp/sass/script/literals/SassString.php +106 -0
- data/lib/Phamlp/sass/tree/SassCommentNode.php +64 -0
- data/lib/Phamlp/sass/tree/SassContext.php +120 -0
- data/lib/Phamlp/sass/tree/SassDebugNode.php +84 -0
- data/lib/Phamlp/sass/tree/SassDirectiveNode.php +76 -0
- data/lib/Phamlp/sass/tree/SassElseNode.php +28 -0
- data/lib/Phamlp/sass/tree/SassExtendNode.php +47 -0
- data/lib/Phamlp/sass/tree/SassForNode.php +99 -0
- data/lib/Phamlp/sass/tree/SassIfNode.php +95 -0
- data/lib/Phamlp/sass/tree/SassImportNode.php +69 -0
- data/lib/Phamlp/sass/tree/SassMixinDefinitionNode.php +88 -0
- data/lib/Phamlp/sass/tree/SassMixinNode.php +91 -0
- data/lib/Phamlp/sass/tree/SassNode.php +342 -0
- data/lib/Phamlp/sass/tree/SassNodeExceptions.php +117 -0
- data/lib/Phamlp/sass/tree/SassPropertyNode.php +239 -0
- data/lib/Phamlp/sass/tree/SassRootNode.php +100 -0
- data/lib/Phamlp/sass/tree/SassRuleNode.php +337 -0
- data/lib/Phamlp/sass/tree/SassVariableNode.php +90 -0
- data/lib/Phamlp/sass/tree/SassWhileNode.php +64 -0
- data/lib/frontsau/assets/rack.rb +12 -0
- data/lib/frontsau/assets/sprockets.rb +59 -0
- data/lib/frontsau/assets/static_assets_compiler.rb +50 -0
- data/lib/frontsau/assets/url_rewriter.rb +22 -0
- data/lib/frontsau/assets/watcher.rb +60 -0
- data/lib/frontsau/thor_app.rb +118 -0
- data/lib/frontsau/version.rb +3 -0
- data/lib/frontsau.rb +64 -0
- metadata +578 -0
@@ -0,0 +1,88 @@
|
|
1
|
+
<?php
|
2
|
+
/* SVN FILE: $Id: SassMixinDefinitionNode.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
|
3
|
+
/**
|
4
|
+
* SassMixinDefinitionNode 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.tree
|
10
|
+
*/
|
11
|
+
|
12
|
+
/**
|
13
|
+
* SassMixinDefinitionNode class.
|
14
|
+
* Represents a Mixin definition.
|
15
|
+
* @package PHamlP
|
16
|
+
* @subpackage Sass.tree
|
17
|
+
*/
|
18
|
+
class SassMixinDefinitionNode extends SassNode {
|
19
|
+
const NODE_IDENTIFIER = '=';
|
20
|
+
const MATCH = '/^(=|@mixin\s+)([-\w]+)\s*(?:\((.+?)\))?\s*$/i';
|
21
|
+
const IDENTIFIER = 1;
|
22
|
+
const NAME = 2;
|
23
|
+
const ARGUMENTS = 3;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @var string name of the mixin
|
27
|
+
*/
|
28
|
+
private $name;
|
29
|
+
/**
|
30
|
+
* @var array arguments for the mixin as name=>value pairs were value is the
|
31
|
+
* default value or null for required arguments
|
32
|
+
*/
|
33
|
+
private $args = array();
|
34
|
+
|
35
|
+
/**
|
36
|
+
* SassMixinDefinitionNode constructor.
|
37
|
+
* @param object source token
|
38
|
+
* @return SassMixinDefinitionNode
|
39
|
+
*/
|
40
|
+
public function __construct($token) {
|
41
|
+
if ($token->level !== 0) {
|
42
|
+
throw new SassMixinDefinitionNodeException('Mixins can only be defined at root level', array(), $this);
|
43
|
+
}
|
44
|
+
parent::__construct($token);
|
45
|
+
preg_match(self::MATCH, $token->source, $matches);
|
46
|
+
if (empty($matches)) {
|
47
|
+
throw new SassMixinDefinitionNodeException('Invalid {what}', array('{what}'=>'Mixin'), $this);
|
48
|
+
}
|
49
|
+
$this->name = $matches[self::NAME];
|
50
|
+
if (isset($matches[self::ARGUMENTS])) {
|
51
|
+
foreach (explode(',', $matches[self::ARGUMENTS]) as $arg) {
|
52
|
+
$arg = explode(
|
53
|
+
($matches[self::IDENTIFIER] === self::NODE_IDENTIFIER ? '=' : ':'),
|
54
|
+
trim($arg)
|
55
|
+
);
|
56
|
+
$this->args[substr(trim($arg[0]), 1)] = (count($arg) == 2 ? trim($arg[1]) : null);
|
57
|
+
} // foreach
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Parse this node.
|
63
|
+
* Add this mixin to the current context.
|
64
|
+
* @param SassContext the context in which this node is parsed
|
65
|
+
* @return array the parsed node - an empty array
|
66
|
+
*/
|
67
|
+
public function parse($context) {
|
68
|
+
$context->addMixin($this->name, $this);
|
69
|
+
return array();
|
70
|
+
}
|
71
|
+
|
72
|
+
/**
|
73
|
+
* Returns the arguments with default values for this mixin
|
74
|
+
* @return array the arguments with default values for this mixin
|
75
|
+
*/
|
76
|
+
public function getArgs() {
|
77
|
+
return $this->args;
|
78
|
+
}
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Returns a value indicating if the token represents this type of node.
|
82
|
+
* @param object token
|
83
|
+
* @return boolean true if the token represents this type of node, false if not
|
84
|
+
*/
|
85
|
+
public static function isa($token) {
|
86
|
+
return $token->source[0] === self::NODE_IDENTIFIER;
|
87
|
+
}
|
88
|
+
}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
<?php
|
2
|
+
/* SVN FILE: $Id: SassMixinNode.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
|
3
|
+
/**
|
4
|
+
* SassMixinNode 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.tree
|
10
|
+
*/
|
11
|
+
|
12
|
+
/**
|
13
|
+
* SassMixinNode class.
|
14
|
+
* Represents a Mixin.
|
15
|
+
* @package PHamlP
|
16
|
+
* @subpackage Sass.tree
|
17
|
+
*/
|
18
|
+
class SassMixinNode extends SassNode {
|
19
|
+
const NODE_IDENTIFIER = '+';
|
20
|
+
const MATCH = '/^(\+|@include\s+)([-\w]+)\s*(?:\((.*?)\))?$/i';
|
21
|
+
const IDENTIFIER = 1;
|
22
|
+
const NAME = 2;
|
23
|
+
const ARGS = 3;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @var string name of the mixin
|
27
|
+
*/
|
28
|
+
private $name;
|
29
|
+
/**
|
30
|
+
* @var array arguments for the mixin
|
31
|
+
*/
|
32
|
+
private $args = array();
|
33
|
+
|
34
|
+
/**
|
35
|
+
* SassMixinDefinitionNode constructor.
|
36
|
+
* @param object source token
|
37
|
+
* @return SassMixinNode
|
38
|
+
*/
|
39
|
+
public function __construct($token) {
|
40
|
+
parent::__construct($token);
|
41
|
+
preg_match(self::MATCH, $token->source, $matches);
|
42
|
+
$this->name = $matches[self::NAME];
|
43
|
+
if (isset($matches[self::ARGS])) {
|
44
|
+
$this->args = SassScriptFunction::extractArgs($matches[self::ARGS]);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Parse this node.
|
50
|
+
* Set passed arguments and any optional arguments not passed to their
|
51
|
+
* defaults, then render the children of the mixin definition.
|
52
|
+
* @param SassContext the context in which this node is parsed
|
53
|
+
* @return array the parsed node
|
54
|
+
*/
|
55
|
+
public function parse($context) {
|
56
|
+
$mixin = $context->getMixin($this->name);
|
57
|
+
|
58
|
+
$context = new SassContext($context);
|
59
|
+
$argc = count($this->args);
|
60
|
+
$count = 0;
|
61
|
+
foreach ($mixin->args as $name=>$value) {
|
62
|
+
if ($count < $argc) {
|
63
|
+
$context->setVariable($name, $this->evaluate($this->args[$count++], $context));
|
64
|
+
}
|
65
|
+
elseif (!is_null($value)) {
|
66
|
+
$context->setVariable($name, $this->evaluate($value, $context));
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
throw new SassMixinNodeException("Mixin::{mname}: Required variable ({vname}) not given.\nMixin defined: {dfile}::{dline}\nMixin used", array('{vname}'=>$name, '{mname}'=>$this->name, '{dfile}'=>$mixin->token->filename, '{dline}'=>$mixin->token->line), $this);
|
70
|
+
}
|
71
|
+
} // foreach
|
72
|
+
|
73
|
+
$children = array();
|
74
|
+
foreach ($mixin->children as $child) {
|
75
|
+
$child->parent = $this;
|
76
|
+
$children = array_merge($children, $child->parse($context));
|
77
|
+
} // foreach
|
78
|
+
|
79
|
+
$context->merge();
|
80
|
+
return $children;
|
81
|
+
}
|
82
|
+
|
83
|
+
/**
|
84
|
+
* Returns a value indicating if the token represents this type of node.
|
85
|
+
* @param object token
|
86
|
+
* @return boolean true if the token represents this type of node, false if not
|
87
|
+
*/
|
88
|
+
public static function isa($token) {
|
89
|
+
return $token->source[0] === self::NODE_IDENTIFIER;
|
90
|
+
}
|
91
|
+
}
|
@@ -0,0 +1,342 @@
|
|
1
|
+
<?php
|
2
|
+
/* SVN FILE: $Id: SassNode.php 118 2010-09-21 09:45:11Z chris.l.yates@gmail.com $ */
|
3
|
+
/**
|
4
|
+
* SassNode 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.tree
|
10
|
+
*/
|
11
|
+
|
12
|
+
require_once('SassContext.php');
|
13
|
+
require_once('SassCommentNode.php');
|
14
|
+
require_once('SassDebugNode.php');
|
15
|
+
require_once('SassDirectiveNode.php');
|
16
|
+
require_once('SassImportNode.php');
|
17
|
+
require_once('SassMixinNode.php');
|
18
|
+
require_once('SassMixinDefinitionNode.php');
|
19
|
+
require_once('SassPropertyNode.php');
|
20
|
+
require_once('SassRootNode.php');
|
21
|
+
require_once('SassRuleNode.php');
|
22
|
+
require_once('SassVariableNode.php');
|
23
|
+
require_once('SassExtendNode.php');
|
24
|
+
require_once('SassForNode.php');
|
25
|
+
require_once('SassIfNode.php');
|
26
|
+
require_once('SassElseNode.php');
|
27
|
+
require_once('SassWhileNode.php');
|
28
|
+
require_once('SassNodeExceptions.php');
|
29
|
+
|
30
|
+
/**
|
31
|
+
* SassNode class.
|
32
|
+
* Base class for all Sass nodes.
|
33
|
+
* @package PHamlP
|
34
|
+
* @subpackage Sass.tree
|
35
|
+
*/
|
36
|
+
class SassNode {
|
37
|
+
/**
|
38
|
+
* @var SassNode parent of this node
|
39
|
+
*/
|
40
|
+
protected $parent;
|
41
|
+
/**
|
42
|
+
* @var SassNode root node
|
43
|
+
*/
|
44
|
+
protected $root;
|
45
|
+
/**
|
46
|
+
* @var array children of this node
|
47
|
+
*/
|
48
|
+
protected $children = array();
|
49
|
+
/**
|
50
|
+
* @var object source token
|
51
|
+
*/
|
52
|
+
protected $token;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Constructor.
|
56
|
+
* @param object source token
|
57
|
+
* @return SassNode
|
58
|
+
*/
|
59
|
+
public function __construct($token) {
|
60
|
+
$this->token = $token;
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Getter.
|
65
|
+
* @param string name of property to get
|
66
|
+
* @return mixed return value of getter function
|
67
|
+
*/
|
68
|
+
public function __get($name) {
|
69
|
+
$getter = 'get' . ucfirst($name);
|
70
|
+
if (method_exists($this, $getter)) {
|
71
|
+
return $this->$getter();
|
72
|
+
}
|
73
|
+
throw new SassNodeException('No getter function for {what}', array('{what}'=>$name), $this);
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Setter.
|
78
|
+
* @param string name of property to set
|
79
|
+
* @return mixed value of property
|
80
|
+
* @return SassNode this node
|
81
|
+
*/
|
82
|
+
public function __set($name, $value) {
|
83
|
+
$setter = 'set' . ucfirst($name);
|
84
|
+
if (method_exists($this, $setter)) {
|
85
|
+
$this->$setter($value);
|
86
|
+
return $this;
|
87
|
+
}
|
88
|
+
throw new SassNodeException('No setter function for {what}', array('{what}'=>$name), $this);
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Resets children when cloned
|
93
|
+
* @see parse
|
94
|
+
*/
|
95
|
+
public function __clone() {
|
96
|
+
$this->children = array();
|
97
|
+
}
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Return a value indicating if this node has a parent
|
101
|
+
* @return array the node's parent
|
102
|
+
*/
|
103
|
+
public function hasParent() {
|
104
|
+
return !empty($this->parent);
|
105
|
+
}
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Returns the node's parent
|
109
|
+
* @return array the node's parent
|
110
|
+
*/
|
111
|
+
public function getParent() {
|
112
|
+
return $this->parent;
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Adds a child to this node.
|
117
|
+
* @return SassNode the child to add
|
118
|
+
*/
|
119
|
+
public function addChild($child) {
|
120
|
+
if ($child instanceof SassElseNode) {
|
121
|
+
if (!$this->lastChild instanceof SassIfNode) {
|
122
|
+
throw new SassException('@else(if) directive must come after @(else)if', array(), $child);
|
123
|
+
}
|
124
|
+
$this->lastChild->addElse($child);
|
125
|
+
}
|
126
|
+
else {
|
127
|
+
$this->children[] = $child;
|
128
|
+
$child->parent = $this;
|
129
|
+
$child->root = $this->root;
|
130
|
+
}
|
131
|
+
// The child will have children if a debug node has been added
|
132
|
+
foreach ($child->children as $grandchild) {
|
133
|
+
$grandchild->root = $this->root;
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Returns a value indicating if this node has children
|
139
|
+
* @return boolean true if the node has children, false if not
|
140
|
+
*/
|
141
|
+
public function hasChildren() {
|
142
|
+
return !empty($this->children);
|
143
|
+
}
|
144
|
+
|
145
|
+
/**
|
146
|
+
* Returns the node's children
|
147
|
+
* @return array the node's children
|
148
|
+
*/
|
149
|
+
public function getChildren() {
|
150
|
+
return $this->children;
|
151
|
+
}
|
152
|
+
|
153
|
+
/**
|
154
|
+
* Returns a value indicating if this node is a child of the passed node.
|
155
|
+
* This just checks the levels of the nodes. If this node is at a greater
|
156
|
+
* level than the passed node if is a child of it.
|
157
|
+
* @return boolean true if the node is a child of the passed node, false if not
|
158
|
+
*/
|
159
|
+
public function isChildOf($node) {
|
160
|
+
return $this->level > $node->level;
|
161
|
+
}
|
162
|
+
|
163
|
+
/**
|
164
|
+
* Returns the last child node of this node.
|
165
|
+
* @return SassNode the last child node of this node
|
166
|
+
*/
|
167
|
+
public function getLastChild() {
|
168
|
+
return $this->children[count($this->children) - 1];
|
169
|
+
}
|
170
|
+
|
171
|
+
/**
|
172
|
+
* Returns the level of this node.
|
173
|
+
* @return integer the level of this node
|
174
|
+
*/
|
175
|
+
private function getLevel() {
|
176
|
+
return $this->token->level;
|
177
|
+
}
|
178
|
+
|
179
|
+
/**
|
180
|
+
* Returns the source for this node
|
181
|
+
* @return string the source for this node
|
182
|
+
*/
|
183
|
+
private function getSource() {
|
184
|
+
return $this->token->source;
|
185
|
+
}
|
186
|
+
|
187
|
+
/**
|
188
|
+
* Returns the debug_info option setting for this node
|
189
|
+
* @return boolean the debug_info option setting for this node
|
190
|
+
*/
|
191
|
+
private function getDebug_info() {
|
192
|
+
return $this->parser->debug_info;
|
193
|
+
}
|
194
|
+
|
195
|
+
/**
|
196
|
+
* Returns the line number for this node
|
197
|
+
* @return string the line number for this node
|
198
|
+
*/
|
199
|
+
private function getLine() {
|
200
|
+
return $this->token->line;
|
201
|
+
}
|
202
|
+
|
203
|
+
/**
|
204
|
+
* Returns the line_numbers option setting for this node
|
205
|
+
* @return boolean the line_numbers option setting for this node
|
206
|
+
*/
|
207
|
+
private function getLine_numbers() {
|
208
|
+
return $this->parser->line_numbers;
|
209
|
+
}
|
210
|
+
|
211
|
+
/**
|
212
|
+
* Returns vendor specific properties
|
213
|
+
* @return array vendor specific properties
|
214
|
+
*/
|
215
|
+
private function getVendor_properties() {
|
216
|
+
return $this->parser->vendor_properties;
|
217
|
+
}
|
218
|
+
|
219
|
+
/**
|
220
|
+
* Returns the filename for this node
|
221
|
+
* @return string the filename for this node
|
222
|
+
*/
|
223
|
+
private function getFilename() {
|
224
|
+
return $this->token->filename;
|
225
|
+
}
|
226
|
+
|
227
|
+
/**
|
228
|
+
* Returns the Sass parser.
|
229
|
+
* @return SassParser the Sass parser
|
230
|
+
*/
|
231
|
+
public function getParser() {
|
232
|
+
return $this->root->parser;
|
233
|
+
}
|
234
|
+
|
235
|
+
/**
|
236
|
+
* Returns the property syntax being used.
|
237
|
+
* @return string the property syntax being used
|
238
|
+
*/
|
239
|
+
public function getPropertySyntax() {
|
240
|
+
return $this->root->parser->propertySyntax;
|
241
|
+
}
|
242
|
+
|
243
|
+
/**
|
244
|
+
* Returns the SassScript parser.
|
245
|
+
* @return SassScriptParser the SassScript parser
|
246
|
+
*/
|
247
|
+
public function getScript() {
|
248
|
+
return $this->root->script;
|
249
|
+
}
|
250
|
+
|
251
|
+
/**
|
252
|
+
* Returns the renderer.
|
253
|
+
* @return SassRenderer the renderer
|
254
|
+
*/
|
255
|
+
public function getRenderer() {
|
256
|
+
return $this->root->renderer;
|
257
|
+
}
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Returns the render style of the document tree.
|
261
|
+
* @return string the render style of the document tree
|
262
|
+
*/
|
263
|
+
public function getStyle() {
|
264
|
+
return $this->root->parser->style;
|
265
|
+
}
|
266
|
+
|
267
|
+
/**
|
268
|
+
* Returns a value indicating whether this node is in a directive
|
269
|
+
* @param boolean true if the node is in a directive, false if not
|
270
|
+
*/
|
271
|
+
public function inDirective() {
|
272
|
+
return $this->parent instanceof SassDirectiveNode ||
|
273
|
+
$this->parent instanceof SassDirectiveNode;
|
274
|
+
}
|
275
|
+
|
276
|
+
/**
|
277
|
+
* Returns a value indicating whether this node is in a SassScript directive
|
278
|
+
* @param boolean true if this node is in a SassScript directive, false if not
|
279
|
+
*/
|
280
|
+
public function inSassScriptDirective() {
|
281
|
+
return $this->parent instanceof SassForNode ||
|
282
|
+
$this->parent->parent instanceof SassForNode ||
|
283
|
+
$this->parent instanceof SassIfNode ||
|
284
|
+
$this->parent->parent instanceof SassIfNode ||
|
285
|
+
$this->parent instanceof SassWhileNode ||
|
286
|
+
$this->parent->parent instanceof SassWhileNode;
|
287
|
+
}
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Evaluates a SassScript expression.
|
291
|
+
* @param string expression to evaluate
|
292
|
+
* @param SassContext the context in which the expression is evaluated
|
293
|
+
* @return SassLiteral value of parsed expression
|
294
|
+
*/
|
295
|
+
protected function evaluate($expression, $context, $x=null) {
|
296
|
+
$context->node = $this;
|
297
|
+
return $this->script->evaluate($expression, $context, $x);
|
298
|
+
}
|
299
|
+
|
300
|
+
/**
|
301
|
+
* Replace interpolated SassScript contained in '#{}' with the parsed value.
|
302
|
+
* @param string the text to interpolate
|
303
|
+
* @param SassContext the context in which the string is interpolated
|
304
|
+
* @return string the interpolated text
|
305
|
+
*/
|
306
|
+
protected function interpolate($expression, $context) {
|
307
|
+
$context->node = $this;
|
308
|
+
return $this->script->interpolate($expression, $context);
|
309
|
+
}
|
310
|
+
|
311
|
+
/**
|
312
|
+
* Adds a warning to the node.
|
313
|
+
* @param string warning message
|
314
|
+
* @param array line
|
315
|
+
*/
|
316
|
+
public function addWarning($message, $params=array()) {
|
317
|
+
$warning = new SassDebugNode($this->token, $message, $params);
|
318
|
+
$this->addChild($warning);
|
319
|
+
}
|
320
|
+
|
321
|
+
/**
|
322
|
+
* Parse the children of the node.
|
323
|
+
* @param SassContext the context in which the children are parsed
|
324
|
+
* @return array the parsed child nodes
|
325
|
+
*/
|
326
|
+
protected function parseChildren($context) {
|
327
|
+
$children = array();
|
328
|
+
foreach ($this->children as $child) {
|
329
|
+
$children = array_merge($children, $child->parse($context));
|
330
|
+
} // foreach
|
331
|
+
return $children;
|
332
|
+
}
|
333
|
+
|
334
|
+
/**
|
335
|
+
* Returns a value indicating if the token represents this type of node.
|
336
|
+
* @param object token
|
337
|
+
* @return boolean true if the token represents this type of node, false if not
|
338
|
+
*/
|
339
|
+
public static function isa($token) {
|
340
|
+
throw new SassNodeException('Child classes must override this method');
|
341
|
+
}
|
342
|
+
}
|
@@ -0,0 +1,117 @@
|
|
1
|
+
<?php
|
2
|
+
/* SVN FILE: $Id: SassNodeExceptions.php 61 2010-04-16 10:19:59Z chris.l.yates $ */
|
3
|
+
/**
|
4
|
+
* SassNode exception classes.
|
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.tree
|
10
|
+
*/
|
11
|
+
|
12
|
+
require_once(dirname(__FILE__).'/../SassException.php');
|
13
|
+
|
14
|
+
/**
|
15
|
+
* SassNodeException class.
|
16
|
+
* @package PHamlP
|
17
|
+
* @subpackage Sass.tree
|
18
|
+
*/
|
19
|
+
class SassNodeException extends SassException {}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* SassContextException class.
|
23
|
+
* @package PHamlP
|
24
|
+
* @subpackage Sass.tree
|
25
|
+
*/
|
26
|
+
class SassContextException extends SassNodeException {}
|
27
|
+
|
28
|
+
/**
|
29
|
+
* SassCommentNodeException class.
|
30
|
+
* @package PHamlP
|
31
|
+
* @subpackage Sass.tree
|
32
|
+
*/
|
33
|
+
class SassCommentNodeException extends SassNodeException {}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* SassDebugNodeException class.
|
37
|
+
* @package PHamlP
|
38
|
+
* @subpackage Sass.tree
|
39
|
+
*/
|
40
|
+
class SassDebugNodeException extends SassNodeException {}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* SassDirectiveNodeException class.
|
44
|
+
* @package PHamlP
|
45
|
+
* @subpackage Sass.tree
|
46
|
+
*/
|
47
|
+
class SassDirectiveNodeException extends SassNodeException {}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* SassExtendNodeException class.
|
51
|
+
* @package PHamlP
|
52
|
+
* @subpackage Sass.tree
|
53
|
+
*/
|
54
|
+
class SassExtendNodeException extends SassNodeException {}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* SassForNodeException class.
|
58
|
+
* @package PHamlP
|
59
|
+
* @subpackage Sass.tree
|
60
|
+
*/
|
61
|
+
class SassForNodeException extends SassNodeException {}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* SassIfNodeException class.
|
65
|
+
* @package PHamlP
|
66
|
+
* @subpackage Sass.tree
|
67
|
+
*/
|
68
|
+
class SassIfNodeException extends SassNodeException {}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* SassImportNodeException class.
|
72
|
+
* @package PHamlP
|
73
|
+
* @subpackage Sass.tree
|
74
|
+
*/
|
75
|
+
class SassImportNodeException extends SassNodeException {}
|
76
|
+
|
77
|
+
/**
|
78
|
+
* SassMixinDefinitionNodeException class.
|
79
|
+
* @package PHamlP
|
80
|
+
* @subpackage Sass.tree
|
81
|
+
*/
|
82
|
+
class SassMixinDefinitionNodeException extends SassNodeException {}
|
83
|
+
|
84
|
+
/**
|
85
|
+
* SassMixinNodeException class.
|
86
|
+
* @package PHamlP
|
87
|
+
* @subpackage Sass.tree
|
88
|
+
*/
|
89
|
+
class SassMixinNodeException extends SassNodeException {}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* SassPropertyNodeException class.
|
93
|
+
* @package PHamlP
|
94
|
+
* @subpackage Sass.tree
|
95
|
+
*/
|
96
|
+
class SassPropertyNodeException extends SassNodeException {}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* SassRuleNodeException class.
|
100
|
+
* @package PHamlP
|
101
|
+
* @subpackage Sass.tree
|
102
|
+
*/
|
103
|
+
class SassRuleNodeException extends SassNodeException {}
|
104
|
+
|
105
|
+
/**
|
106
|
+
* SassVariableNodeException class.
|
107
|
+
* @package PHamlP
|
108
|
+
* @subpackage Sass.tree
|
109
|
+
*/
|
110
|
+
class SassVariableNodeException extends SassNodeException {}
|
111
|
+
|
112
|
+
/**
|
113
|
+
* SassWhileNodeException class.
|
114
|
+
* @package PHamlP
|
115
|
+
* @subpackage Sass.tree
|
116
|
+
*/
|
117
|
+
class SassWhileNodeException extends SassNodeException {}
|