bixbite 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.markdown +49 -0
- data/VERSION +1 -0
- data/bin/bixbite +73 -0
- data/lib/bixbite.rb +13 -0
- data/lib/bixbite/command.rb +14 -0
- data/lib/bixbite/create.rb +76 -0
- data/template/Rakefile +25 -0
- data/template/assets/bixbite/Rakefile.rb +297 -0
- data/template/assets/naturaldocs/NaturalDocs/Config/Languages.txt +286 -0
- data/template/assets/naturaldocs/NaturalDocs/Config/Topics.txt +382 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/customizinglanguages.html +52 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/customizingtopics.html +74 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting.html +58 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting/reference.html +146 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/documenting/walkthrough.html +180 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/example/Default.css +528 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/example/NaturalDocs.js +204 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/examples.css +90 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/background.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/leftside.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/logo.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbody.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbodybg.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overleftmargin.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenu.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenubg.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/header/rightside.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/logo.gif +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/about.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/background.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomleft.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomright.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/community.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/customizing.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/using.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/index.html +9 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/javascript/BrowserStyles.js +77 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/javascript/PNGHandling.js +72 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/keywords.html +38 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/languages.html +32 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/menu.html +79 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/output.html +84 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/running.html +40 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/styles.css +290 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/styles.html +52 -0
- data/template/assets/naturaldocs/NaturalDocs/Help/troubleshooting.html +18 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/CSSGuide.txt +947 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/File Parsing.txt +83 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/HTMLTestCases.pm +269 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/Languages.txt +107 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/NDMarkup.txt +91 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/Symbol Management.txt +59 -0
- data/template/assets/naturaldocs/NaturalDocs/Info/images/Logo.png +0 -0
- data/template/assets/naturaldocs/NaturalDocs/JavaScript/NaturalDocs.js +836 -0
- data/template/assets/naturaldocs/NaturalDocs/License-GPL.txt +341 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/BinaryFile.pm +294 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder.pm +280 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/Base.pm +348 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/FramedHTML.pm +345 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTML.pm +398 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTMLBase.pm +3693 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy.pm +860 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/Class.pm +412 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/File.pm +157 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ConfigFile.pm +497 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Constants.pm +165 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/DefineMembers.pm +100 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Error.pm +305 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/File.pm +540 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable.pm +383 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/Reference.pm +44 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/String.pm +110 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages.pm +1475 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/ActionScript.pm +1473 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Ada.pm +38 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced.pm +828 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/Scope.pm +95 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm +70 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Base.pm +832 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/CSharp.pm +1484 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/PLSQL.pm +319 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Pascal.pm +143 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Perl.pm +1370 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype.pm +92 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype/Parameter.pm +87 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Simple.pm +503 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Tcl.pm +219 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu.pm +3406 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu/Entry.pm +201 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/NDMarkup.pm +76 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser.pm +1331 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/JavaDoc.pm +464 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/Native.pm +1060 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/ParsedTopic.pm +253 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project.pm +1402 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/ImageFile.pm +160 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/SourceFile.pm +113 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ReferenceString.pm +334 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings.pm +1418 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings/BuildTarget.pm +66 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB.pm +678 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Extension.pm +84 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/File.pm +129 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Item.pm +201 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/ItemDefinition.pm +45 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm +159 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/StatusMessage.pm +102 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolString.pm +212 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable.pm +1984 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/File.pm +186 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/IndexElement.pm +522 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Reference.pm +273 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm +97 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Symbol.pm +428 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm +96 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics.pm +1319 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics/Type.pm +151 -0
- data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Version.pm +384 -0
- data/template/assets/naturaldocs/NaturalDocs/NaturalDocs +400 -0
- data/template/assets/naturaldocs/NaturalDocs/NaturalDocs.bat +17 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Default.css +767 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Roman.css +765 -0
- data/template/assets/naturaldocs/NaturalDocs/Styles/Small.css +763 -0
- data/template/assets/utilities/pngout +0 -0
- data/template/deploy/public_html/.htaccess +0 -0
- data/template/documentation/js/.htaccess +0 -0
- data/template/src/html/.htaccess +76 -0
- data/template/src/html/css/cmn/global.css +96 -0
- data/template/src/html/css/cmn/ie.css +15 -0
- data/template/src/html/css/cmn/ie6.css +15 -0
- data/template/src/html/images/cmn/.htaccess +0 -0
- data/template/src/html/images/tmp/.htaccess +0 -0
- data/template/src/html/includes/debug.inc +5 -0
- data/template/src/html/includes/footer.inc +52 -0
- data/template/src/html/includes/header.inc +61 -0
- data/template/src/html/includes/html.inc +3 -0
- data/template/src/html/includes/namespace.inc +19 -0
- data/template/src/html/includes/page.inc +151 -0
- data/template/src/html/index.html +35 -0
- data/template/src/html/js/cmn/bootstrap.js +74 -0
- data/template/src/html/js/cmn/global.js +142 -0
- data/template/src/html/js/cmn/lib/LAB.js +348 -0
- data/template/src/html/min/.htaccess +4 -0
- data/template/src/html/min/MinifyCLI.php +19 -0
- data/template/src/html/min/README.txt +132 -0
- data/template/src/html/min/builder/_index.js +242 -0
- data/template/src/html/min/builder/bm.js +36 -0
- data/template/src/html/min/builder/index.php +182 -0
- data/template/src/html/min/builder/ocCheck.php +36 -0
- data/template/src/html/min/builder/rewriteTest.js +1 -0
- data/template/src/html/min/config.php +187 -0
- data/template/src/html/min/groupsConfig.php +34 -0
- data/template/src/html/min/index.php +66 -0
- data/template/src/html/min/lib/FirePHP.php +1370 -0
- data/template/src/html/min/lib/HTTP/ConditionalGet.php +348 -0
- data/template/src/html/min/lib/HTTP/Encoder.php +326 -0
- data/template/src/html/min/lib/JSMin.php +314 -0
- data/template/src/html/min/lib/JSMinPlus.php +1872 -0
- data/template/src/html/min/lib/Minify.php +532 -0
- data/template/src/html/min/lib/Minify/Build.php +103 -0
- data/template/src/html/min/lib/Minify/CSS.php +83 -0
- data/template/src/html/min/lib/Minify/CSS/Compressor.php +250 -0
- data/template/src/html/min/lib/Minify/CSS/UriRewriter.php +270 -0
- data/template/src/html/min/lib/Minify/Cache/APC.php +130 -0
- data/template/src/html/min/lib/Minify/Cache/File.php +125 -0
- data/template/src/html/min/lib/Minify/Cache/Memcache.php +137 -0
- data/template/src/html/min/lib/Minify/ClosureCompiler.php +85 -0
- data/template/src/html/min/lib/Minify/CommentPreserver.php +90 -0
- data/template/src/html/min/lib/Minify/Controller/Base.php +202 -0
- data/template/src/html/min/lib/Minify/Controller/Files.php +78 -0
- data/template/src/html/min/lib/Minify/Controller/Groups.php +94 -0
- data/template/src/html/min/lib/Minify/Controller/MinApp.php +132 -0
- data/template/src/html/min/lib/Minify/Controller/Page.php +82 -0
- data/template/src/html/min/lib/Minify/Controller/Version1.php +118 -0
- data/template/src/html/min/lib/Minify/HTML.php +245 -0
- data/template/src/html/min/lib/Minify/ImportProcessor.php +157 -0
- data/template/src/html/min/lib/Minify/Lines.php +131 -0
- data/template/src/html/min/lib/Minify/Logger.php +45 -0
- data/template/src/html/min/lib/Minify/Packer.php +37 -0
- data/template/src/html/min/lib/Minify/Source.php +187 -0
- data/template/src/html/min/lib/Minify/YUICompressor.php +139 -0
- data/template/src/html/min/lib/Solar/Dir.php +199 -0
- data/template/src/html/min/lib/closure-compiler.jar +0 -0
- data/template/src/html/min/lib/yuicompressor-2.4.2.jar +0 -0
- data/template/src/html/min/utils.php +90 -0
- data/template/src/templates/css/template.css +7 -0
- data/template/src/templates/js/template.js +72 -0
- data/template/src/templates/template.html +18 -0
- data/template/src/yaml/config.yml +46 -0
- data/template/src/yaml/deploy.yml +35 -0
- data/test/bixbite_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +278 -0
@@ -0,0 +1,139 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* Class Minify_YUICompressor
|
4
|
+
* @package Minify
|
5
|
+
*/
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Compress Javascript/CSS using the YUI Compressor
|
9
|
+
*
|
10
|
+
* You must set $jarFile and $tempDir before calling the minify functions.
|
11
|
+
* Also, depending on your shell's environment, you may need to specify
|
12
|
+
* the full path to java in $javaExecutable or use putenv() to setup the
|
13
|
+
* Java environment.
|
14
|
+
*
|
15
|
+
* <code>
|
16
|
+
* Minify_YUICompressor::$jarFile = '/path/to/yuicompressor-2.3.5.jar';
|
17
|
+
* Minify_YUICompressor::$tempDir = '/tmp';
|
18
|
+
* $code = Minify_YUICompressor::minifyJs(
|
19
|
+
* $code
|
20
|
+
* ,array('nomunge' => true, 'line-break' => 1000)
|
21
|
+
* );
|
22
|
+
* </code>
|
23
|
+
*
|
24
|
+
* @todo unit tests, $options docs
|
25
|
+
*
|
26
|
+
* @package Minify
|
27
|
+
* @author Stephen Clay <steve@mrclay.org>
|
28
|
+
*/
|
29
|
+
class Minify_YUICompressor {
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Filepath of the YUI Compressor jar file. This must be set before
|
33
|
+
* calling minifyJs() or minifyCss().
|
34
|
+
*
|
35
|
+
* @var string
|
36
|
+
*/
|
37
|
+
public static $jarFile = null;
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Writable temp directory. This must be set before calling minifyJs()
|
41
|
+
* or minifyCss().
|
42
|
+
*
|
43
|
+
* @var string
|
44
|
+
*/
|
45
|
+
public static $tempDir = null;
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Filepath of "java" executable (may be needed if not in shell's PATH)
|
49
|
+
*
|
50
|
+
* @var string
|
51
|
+
*/
|
52
|
+
public static $javaExecutable = 'java';
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Minify a Javascript string
|
56
|
+
*
|
57
|
+
* @param string $js
|
58
|
+
*
|
59
|
+
* @param array $options (verbose is ignored)
|
60
|
+
*
|
61
|
+
* @see http://www.julienlecomte.net/yuicompressor/README
|
62
|
+
*
|
63
|
+
* @return string
|
64
|
+
*/
|
65
|
+
public static function minifyJs($js, $options = array())
|
66
|
+
{
|
67
|
+
return self::_minify('js', $js, $options);
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Minify a CSS string
|
72
|
+
*
|
73
|
+
* @param string $css
|
74
|
+
*
|
75
|
+
* @param array $options (verbose is ignored)
|
76
|
+
*
|
77
|
+
* @see http://www.julienlecomte.net/yuicompressor/README
|
78
|
+
*
|
79
|
+
* @return string
|
80
|
+
*/
|
81
|
+
public static function minifyCss($css, $options = array())
|
82
|
+
{
|
83
|
+
return self::_minify('css', $css, $options);
|
84
|
+
}
|
85
|
+
|
86
|
+
private static function _minify($type, $content, $options)
|
87
|
+
{
|
88
|
+
self::_prepare();
|
89
|
+
if (! ($tmpFile = tempnam(self::$tempDir, 'yuic_'))) {
|
90
|
+
throw new Exception('Minify_YUICompressor : could not create temp file.');
|
91
|
+
}
|
92
|
+
file_put_contents($tmpFile, $content);
|
93
|
+
exec(self::_getCmd($options, $type, $tmpFile), $output);
|
94
|
+
unlink($tmpFile);
|
95
|
+
return implode("\n", $output);
|
96
|
+
}
|
97
|
+
|
98
|
+
private static function _getCmd($userOptions, $type, $tmpFile)
|
99
|
+
{
|
100
|
+
$o = array_merge(
|
101
|
+
array(
|
102
|
+
'charset' => ''
|
103
|
+
,'line-break' => 5000
|
104
|
+
,'type' => $type
|
105
|
+
,'nomunge' => false
|
106
|
+
,'preserve-semi' => false
|
107
|
+
,'disable-optimizations' => false
|
108
|
+
)
|
109
|
+
,$userOptions
|
110
|
+
);
|
111
|
+
$cmd = self::$javaExecutable . ' -jar ' . escapeshellarg(self::$jarFile)
|
112
|
+
. " --type {$type}"
|
113
|
+
. (preg_match('/^[a-zA-Z\\-]+$/', $o['charset'])
|
114
|
+
? " --charset {$o['charset']}"
|
115
|
+
: '')
|
116
|
+
. (is_numeric($o['line-break']) && $o['line-break'] >= 0
|
117
|
+
? ' --line-break ' . (int)$o['line-break']
|
118
|
+
: '');
|
119
|
+
if ($type === 'js') {
|
120
|
+
foreach (array('nomunge', 'preserve-semi', 'disable-optimizations') as $opt) {
|
121
|
+
$cmd .= $o[$opt]
|
122
|
+
? " --{$opt}"
|
123
|
+
: '';
|
124
|
+
}
|
125
|
+
}
|
126
|
+
return $cmd . ' ' . escapeshellarg($tmpFile);
|
127
|
+
}
|
128
|
+
|
129
|
+
private static function _prepare()
|
130
|
+
{
|
131
|
+
if (! is_file(self::$jarFile)
|
132
|
+
|| ! is_dir(self::$tempDir)
|
133
|
+
|| ! is_writable(self::$tempDir)
|
134
|
+
) {
|
135
|
+
throw new Exception('Minify_YUICompressor : $jarFile and $tempDir must be set.');
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
@@ -0,0 +1,199 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
* Utility class for static directory methods.
|
5
|
+
*
|
6
|
+
* @category Solar
|
7
|
+
*
|
8
|
+
* @package Solar
|
9
|
+
*
|
10
|
+
* @author Paul M. Jones <pmjones@solarphp.com>
|
11
|
+
*
|
12
|
+
* @license http://opensource.org/licenses/bsd-license.php BSD
|
13
|
+
*
|
14
|
+
* @version $Id: Dir.php 2926 2007-11-09 16:25:44Z pmjones $
|
15
|
+
*
|
16
|
+
*/
|
17
|
+
class Solar_Dir {
|
18
|
+
|
19
|
+
/**
|
20
|
+
*
|
21
|
+
* The OS-specific temporary directory location.
|
22
|
+
*
|
23
|
+
* @var string
|
24
|
+
*
|
25
|
+
*/
|
26
|
+
protected static $_tmp;
|
27
|
+
|
28
|
+
/**
|
29
|
+
*
|
30
|
+
* Hack for [[php::is_dir() | ]] that checks the include_path.
|
31
|
+
*
|
32
|
+
* Use this to see if a directory exists anywhere in the include_path.
|
33
|
+
*
|
34
|
+
* {{code: php
|
35
|
+
* $dir = Solar_Dir::exists('path/to/dir')
|
36
|
+
* if ($dir) {
|
37
|
+
* $files = scandir($dir);
|
38
|
+
* } else {
|
39
|
+
* echo "Not found in the include-path.";
|
40
|
+
* }
|
41
|
+
* }}
|
42
|
+
*
|
43
|
+
* @param string $dir Check for this directory in the include_path.
|
44
|
+
*
|
45
|
+
* @return mixed If the directory exists in the include_path, returns the
|
46
|
+
* absolute path; if not, returns boolean false.
|
47
|
+
*
|
48
|
+
*/
|
49
|
+
public static function exists($dir)
|
50
|
+
{
|
51
|
+
// no file requested?
|
52
|
+
$dir = trim($dir);
|
53
|
+
if (! $dir) {
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
|
57
|
+
// using an absolute path for the file?
|
58
|
+
// dual check for Unix '/' and Windows '\',
|
59
|
+
// or Windows drive letter and a ':'.
|
60
|
+
$abs = ($dir[0] == '/' || $dir[0] == '\\' || $dir[1] == ':');
|
61
|
+
if ($abs && is_dir($dir)) {
|
62
|
+
return $dir;
|
63
|
+
}
|
64
|
+
|
65
|
+
// using a relative path on the file
|
66
|
+
$path = explode(PATH_SEPARATOR, ini_get('include_path'));
|
67
|
+
foreach ($path as $base) {
|
68
|
+
// strip Unix '/' and Windows '\'
|
69
|
+
$target = rtrim($base, '\\/') . DIRECTORY_SEPARATOR . $dir;
|
70
|
+
if (is_dir($target)) {
|
71
|
+
return $target;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
// never found it
|
76
|
+
return false;
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
*
|
81
|
+
* "Fixes" a directory string for the operating system.
|
82
|
+
*
|
83
|
+
* Use slashes anywhere you need a directory separator. Then run the
|
84
|
+
* string through fixdir() and the slashes will be converted to the
|
85
|
+
* proper separator (for example '\' on Windows).
|
86
|
+
*
|
87
|
+
* Always adds a final trailing separator.
|
88
|
+
*
|
89
|
+
* @param string $dir The directory string to 'fix'.
|
90
|
+
*
|
91
|
+
* @return string The "fixed" directory string.
|
92
|
+
*
|
93
|
+
*/
|
94
|
+
public static function fix($dir)
|
95
|
+
{
|
96
|
+
$dir = str_replace('/', DIRECTORY_SEPARATOR, $dir);
|
97
|
+
return rtrim($dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
*
|
102
|
+
* Convenience method for dirname() and higher-level directories.
|
103
|
+
*
|
104
|
+
* @param string $file Get the dirname() of this file.
|
105
|
+
*
|
106
|
+
* @param int $up Move up in the directory structure this many
|
107
|
+
* times, default 0.
|
108
|
+
*
|
109
|
+
* @return string The dirname() of the file.
|
110
|
+
*
|
111
|
+
*/
|
112
|
+
public static function name($file, $up = 0)
|
113
|
+
{
|
114
|
+
$dir = dirname($file);
|
115
|
+
while ($up --) {
|
116
|
+
$dir = dirname($dir);
|
117
|
+
}
|
118
|
+
return $dir;
|
119
|
+
}
|
120
|
+
|
121
|
+
/**
|
122
|
+
*
|
123
|
+
* Returns the OS-specific directory for temporary files.
|
124
|
+
*
|
125
|
+
* @param string $sub Add this subdirectory to the returned temporary
|
126
|
+
* directory name.
|
127
|
+
*
|
128
|
+
* @return string The temporary directory path.
|
129
|
+
*
|
130
|
+
*/
|
131
|
+
public static function tmp($sub = '')
|
132
|
+
{
|
133
|
+
// find the tmp dir if needed
|
134
|
+
if (! Solar_Dir::$_tmp) {
|
135
|
+
|
136
|
+
// use the system if we can
|
137
|
+
if (function_exists('sys_get_temp_dir')) {
|
138
|
+
$tmp = sys_get_temp_dir();
|
139
|
+
} else {
|
140
|
+
$tmp = Solar_Dir::_tmp();
|
141
|
+
}
|
142
|
+
|
143
|
+
// remove trailing separator and save
|
144
|
+
Solar_Dir::$_tmp = rtrim($tmp, DIRECTORY_SEPARATOR);
|
145
|
+
}
|
146
|
+
|
147
|
+
// do we have a subdirectory request?
|
148
|
+
$sub = trim($sub);
|
149
|
+
if ($sub) {
|
150
|
+
// remove leading and trailing separators, and force exactly
|
151
|
+
// one trailing separator
|
152
|
+
$sub = trim($sub, DIRECTORY_SEPARATOR)
|
153
|
+
. DIRECTORY_SEPARATOR;
|
154
|
+
}
|
155
|
+
|
156
|
+
return Solar_Dir::$_tmp . DIRECTORY_SEPARATOR . $sub;
|
157
|
+
}
|
158
|
+
|
159
|
+
/**
|
160
|
+
*
|
161
|
+
* Returns the OS-specific temporary directory location.
|
162
|
+
*
|
163
|
+
* @return string The temp directory path.
|
164
|
+
*
|
165
|
+
*/
|
166
|
+
protected static function _tmp()
|
167
|
+
{
|
168
|
+
// non-Windows system?
|
169
|
+
if (strtolower(substr(PHP_OS, 0, 3)) != 'win') {
|
170
|
+
$tmp = empty($_ENV['TMPDIR']) ? getenv('TMPDIR') : $_ENV['TMPDIR'];
|
171
|
+
if ($tmp) {
|
172
|
+
return $tmp;
|
173
|
+
} else {
|
174
|
+
return '/tmp';
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
// Windows 'TEMP'
|
179
|
+
$tmp = empty($_ENV['TEMP']) ? getenv('TEMP') : $_ENV['TEMP'];
|
180
|
+
if ($tmp) {
|
181
|
+
return $tmp;
|
182
|
+
}
|
183
|
+
|
184
|
+
// Windows 'TMP'
|
185
|
+
$tmp = empty($_ENV['TMP']) ? getenv('TMP') : $_ENV['TMP'];
|
186
|
+
if ($tmp) {
|
187
|
+
return $tmp;
|
188
|
+
}
|
189
|
+
|
190
|
+
// Windows 'windir'
|
191
|
+
$tmp = empty($_ENV['windir']) ? getenv('windir') : $_ENV['windir'];
|
192
|
+
if ($tmp) {
|
193
|
+
return $tmp;
|
194
|
+
}
|
195
|
+
|
196
|
+
// final fallback for Windows
|
197
|
+
return getenv('SystemRoot') . '\\temp';
|
198
|
+
}
|
199
|
+
}
|
Binary file
|
Binary file
|
@@ -0,0 +1,90 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* Utility functions for generating group URIs in HTML files
|
4
|
+
*
|
5
|
+
* Before including this file, /min/lib must be in your include_path.
|
6
|
+
*
|
7
|
+
* @package Minify
|
8
|
+
*/
|
9
|
+
|
10
|
+
require_once 'Minify/Build.php';
|
11
|
+
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Get a timestamped URI to a minified resource using the default Minify install
|
15
|
+
*
|
16
|
+
* <code>
|
17
|
+
* <link rel="stylesheet" type="text/css" href="<?php echo Minify_groupUri('css'); ?>" />
|
18
|
+
* <script type="text/javascript" src="<?php echo Minify_groupUri('js'); ?>"></script>
|
19
|
+
* </code>
|
20
|
+
*
|
21
|
+
* If you do not want ampersands as HTML entities, set Minify_Build::$ampersand = "&"
|
22
|
+
* before using this function.
|
23
|
+
*
|
24
|
+
* @param string $group a key from groupsConfig.php
|
25
|
+
* @param boolean $forceAmpersand (default false) Set to true if the RewriteRule
|
26
|
+
* directives in .htaccess are functional. This will remove the "?" from URIs, making them
|
27
|
+
* more cacheable by proxies.
|
28
|
+
* @return string
|
29
|
+
*/
|
30
|
+
function Minify_groupUri($group, $forceAmpersand = false)
|
31
|
+
{
|
32
|
+
$path = $forceAmpersand
|
33
|
+
? "/g={$group}"
|
34
|
+
: "/?g={$group}";
|
35
|
+
return _Minify_getBuild($group)->uri(
|
36
|
+
'/' . basename(dirname(__FILE__)) . $path
|
37
|
+
,$forceAmpersand
|
38
|
+
);
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Get the last modification time of the source js/css files used by Minify to
|
44
|
+
* build the page.
|
45
|
+
*
|
46
|
+
* If you're caching the output of Minify_groupUri(), you'll want to rebuild
|
47
|
+
* the cache if it's older than this timestamp.
|
48
|
+
*
|
49
|
+
* <code>
|
50
|
+
* // simplistic HTML cache system
|
51
|
+
* $file = '/path/to/cache/file';
|
52
|
+
* if (! file_exists($file) || filemtime($file) < Minify_groupsMtime(array('js', 'css'))) {
|
53
|
+
* // (re)build cache
|
54
|
+
* $page = buildPage(); // this calls Minify_groupUri() for js and css
|
55
|
+
* file_put_contents($file, $page);
|
56
|
+
* echo $page;
|
57
|
+
* exit();
|
58
|
+
* }
|
59
|
+
* readfile($file);
|
60
|
+
* </code>
|
61
|
+
*
|
62
|
+
* @param array $groups an array of keys from groupsConfig.php
|
63
|
+
* @return int Unix timestamp of the latest modification
|
64
|
+
*/
|
65
|
+
function Minify_groupsMtime($groups)
|
66
|
+
{
|
67
|
+
$max = 0;
|
68
|
+
foreach ((array)$groups as $group) {
|
69
|
+
$max = max($max, _Minify_getBuild($group)->lastModified);
|
70
|
+
}
|
71
|
+
return $max;
|
72
|
+
}
|
73
|
+
|
74
|
+
/**
|
75
|
+
* @param string $group a key from groupsConfig.php
|
76
|
+
* @return Minify_Build
|
77
|
+
* @private
|
78
|
+
*/
|
79
|
+
function _Minify_getBuild($group)
|
80
|
+
{
|
81
|
+
static $builds = array();
|
82
|
+
static $gc = false;
|
83
|
+
if (false === $gc) {
|
84
|
+
$gc = (require dirname(__FILE__) . '/groupsConfig.php');
|
85
|
+
}
|
86
|
+
if (! isset($builds[$group])) {
|
87
|
+
$builds[$group] = new Minify_Build($gc[$group]);
|
88
|
+
}
|
89
|
+
return $builds[$group];
|
90
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/*
|
2
|
+
File: __PAGE_TEMPLATE_LOWERCASE__.js
|
3
|
+
|
4
|
+
About: Version
|
5
|
+
1.0
|
6
|
+
|
7
|
+
Project: __PROJECT_NAME__
|
8
|
+
|
9
|
+
Description:
|
10
|
+
Includes all __PAGE_TEMPLATE_CAPITALIZE__ functionality
|
11
|
+
|
12
|
+
Requires:
|
13
|
+
- jQuery 1.3.2 - <http://jquery.com>
|
14
|
+
- jQuery Flash - <jquery.flash.js>
|
15
|
+
- jQuery Easing - <jquery.easing.js>
|
16
|
+
|
17
|
+
Requires:
|
18
|
+
- <bootstrap.js>
|
19
|
+
- <global.js>
|
20
|
+
|
21
|
+
*/
|
22
|
+
|
23
|
+
/*
|
24
|
+
Class: __PROJECT_NAMESPACE__
|
25
|
+
Scoped to the __PROJECT_NAMESPACE__ Global Namespace
|
26
|
+
*/
|
27
|
+
var __PROJECT_NAMESPACE__ = window.__PROJECT_NAMESPACE__ || {};
|
28
|
+
|
29
|
+
/*
|
30
|
+
Namespace: __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__
|
31
|
+
Under the __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__ Local Namespace
|
32
|
+
*/
|
33
|
+
__PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__ = __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__ || {};
|
34
|
+
|
35
|
+
(function () {
|
36
|
+
|
37
|
+
// Storing a variable to reference
|
38
|
+
var $space = __PROJECT_NAMESPACE__;
|
39
|
+
var $self = $space.__PAGE_TEMPLATE_CAPITALIZE__;
|
40
|
+
|
41
|
+
/*
|
42
|
+
Namespace: __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__.vars
|
43
|
+
Shared local variables
|
44
|
+
*/
|
45
|
+
$self.vars = $.extend($space.vars, {});
|
46
|
+
|
47
|
+
/*
|
48
|
+
Namespace: __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__.utils
|
49
|
+
Shared local utilities
|
50
|
+
*/
|
51
|
+
$self.utils = $.extend($space.utils, {});
|
52
|
+
|
53
|
+
/*
|
54
|
+
Namespace: __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__
|
55
|
+
Under the __PROJECT_NAMESPACE__.__PAGE_TEMPLATE_CAPITALIZE__ Local Namespace
|
56
|
+
*/
|
57
|
+
|
58
|
+
/*
|
59
|
+
Function: sample
|
60
|
+
A sample function
|
61
|
+
*/
|
62
|
+
$self.sample = function() {
|
63
|
+
|
64
|
+
};
|
65
|
+
|
66
|
+
/*
|
67
|
+
Callback: queue
|
68
|
+
Sends local functions to a global queuer for initialization See: <__PROJECT_NAMESPACE__.utils.queue>
|
69
|
+
*/
|
70
|
+
$space.utils.queue($self);
|
71
|
+
|
72
|
+
})();
|