Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/img.js')
-rw-r--r--lib/img.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/img.js b/lib/img.js
new file mode 100644
index 0000000..fe1a606
--- /dev/null
+++ b/lib/img.js
@@ -0,0 +1,80 @@
+// ========================================================================
+// bootstrap-server v1.0.0
+// http://twitter.github.com/bootstrap
+// ========================================================================
+// Copyright 2012 Twitter, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ========================================================================
+
+"use strict"
+
+var path = require('path')
+ , https = require('https')
+ , CACHE = {}
+ , FILES = [ 'glyphicons-halflings.png'
+ , 'glyphicons-halflings-white.png' ]
+
+function cache(callback) {
+ var _cache = {}
+ , complete = 0
+
+ FILES.forEach(function (filename) {
+ var req
+ , res
+ , i = 0
+ , content = []
+ , options = {
+ host: 'raw.github.com'
+ , port: 443
+ , path: path.join('/twitter/bootstrap/master/img/', filename)
+ , method: 'GET'
+ }
+
+ req = https.request(options, function(res) {
+
+ var buffer = new Buffer(parseInt(res.header('Content-Length')))
+
+ res.setEncoding('binary')
+
+ res.on('data', function (chunk) {
+ buffer.write(chunk, i, 'binary')
+ i += chunk.length
+ })
+
+ res.on('end', function () {
+ _cache[filename] = buffer
+ if (++complete == FILES.length) {
+ CACHE = _cache
+ callback && callback(null, CACHE)
+ }
+ })
+
+ })
+
+ req.end()
+ })
+
+}
+
+function img(params, callback) {
+ var contents = {}
+ params.img.forEach(function (filename) {
+ contents['img/' + filename] = CACHE[filename]
+ })
+ callback(null, contents)
+}
+
+module.exports = img
+module.exports.cache = cache
+module.exports.FILES = FILES