wbdv_packer 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +18 -0
- data/README.md +0 -0
- data/bin/wbdv_packer +156 -0
- metadata +66 -0
data/LICENSE
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Copyright (c) 2012 Seraf Dos Santos
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
5
|
+
the Software without restriction, including without limitation the rights to
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
7
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
8
|
+
subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
11
|
+
copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
File without changes
|
data/bin/wbdv_packer
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
#
|
4
|
+
# wbdv_packer – Compresses Javascript & CSS Files.
|
5
|
+
# @author Seraf Dos Santos <webmaster@cyb3r.ca>
|
6
|
+
# @license MIT License
|
7
|
+
# @copyright (c) 2012 Seraf Dos Santos
|
8
|
+
|
9
|
+
require "yui/compressor"
|
10
|
+
require "optparse"
|
11
|
+
|
12
|
+
module WbdVpacker
|
13
|
+
extend self
|
14
|
+
|
15
|
+
VERSION = Version = 0.1
|
16
|
+
|
17
|
+
def execute(*args)
|
18
|
+
charset = 'utf-8';
|
19
|
+
chars_num = 1337
|
20
|
+
optimize = false
|
21
|
+
preserve = false
|
22
|
+
short = false
|
23
|
+
#merge = false
|
24
|
+
#out_filename = nil
|
25
|
+
|
26
|
+
opts = OptionParser.new do |opts|
|
27
|
+
|
28
|
+
opts.banner = "Usage: wbdv_packer [options] [filename or stdin]"
|
29
|
+
#+" [filename] ..."
|
30
|
+
|
31
|
+
opts.on('-c', '--charset [CHARSET]', 'Sets the output charset (CSS & JS). Default: '+charset) do |c|
|
32
|
+
charset = c
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.on('-l', '--line-break [NUMBER]', 'Sets the max output line width (CSS & JS). Default: '+chars_num.to_s()) do |l|
|
36
|
+
chars_num = l
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on('-o', '--optimize', 'Sets code optimization on compress (JS Only). Default: '+optimize.to_s()) do |o|
|
40
|
+
optimize = o
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on('-p', '--preserve', 'Sets preserved semi-colons (JS Only). Default: '+preserve.to_s()) do |p|
|
44
|
+
preserve = p
|
45
|
+
end
|
46
|
+
|
47
|
+
opts.on('-s', '--short', 'Sets shortened local variables (JS Only). Default: '+short.to_s()) do |s|
|
48
|
+
short = s
|
49
|
+
end
|
50
|
+
|
51
|
+
#opts.on('-e', '--merge', 'Flag for files merge.') do |e|
|
52
|
+
# merge = e
|
53
|
+
#end
|
54
|
+
|
55
|
+
#opts.on('-f', '--out-filename [FILENAME]', 'Identifies the output filename.') do |f|
|
56
|
+
# out_filename = f
|
57
|
+
#end
|
58
|
+
|
59
|
+
opts.on('-v', '--version', 'Print version') do
|
60
|
+
puts WbdVpacker::Version
|
61
|
+
exit
|
62
|
+
end
|
63
|
+
|
64
|
+
opts.on('-h', '--help', 'Display this screen') do
|
65
|
+
puts opts
|
66
|
+
exit
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
opts.parse!(args)
|
71
|
+
|
72
|
+
begin
|
73
|
+
|
74
|
+
if args.empty?
|
75
|
+
puts opts
|
76
|
+
exit
|
77
|
+
end
|
78
|
+
|
79
|
+
files = args.inject([]) do |files, file|
|
80
|
+
abort "Can't find #{file}" unless File.exists?(file)
|
81
|
+
files.push({
|
82
|
+
:input => File.read(file),
|
83
|
+
:filename => file,
|
84
|
+
:extension => (File.extname(file) if file.include?('.'))
|
85
|
+
})
|
86
|
+
end
|
87
|
+
|
88
|
+
for file in files
|
89
|
+
if file[:extension].downcase() == ".css"
|
90
|
+
compress_css_file(file[:filename],file[:input],charset,chars_num)
|
91
|
+
elsif file[:extension].downcase() == ".js"
|
92
|
+
compress_js_file(file[:filename],file[:input],charset,chars_num,short,optimize,preserve)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
#if merge == true
|
97
|
+
# is_css = 0
|
98
|
+
# is_js = 0
|
99
|
+
# file_content = ""
|
100
|
+
# for file in files
|
101
|
+
# if file[:extension].downcase() == ".css"
|
102
|
+
# is_css+=1
|
103
|
+
# elsif file[:extension].downcase() == ".js"
|
104
|
+
# is_js+=1
|
105
|
+
# end
|
106
|
+
# file_content += "\n" + file[:input]
|
107
|
+
# end
|
108
|
+
# if is_css == files.length && is_js == 0
|
109
|
+
# compress_css(out_filename,file_content,charset,chars_num)
|
110
|
+
# elsif is_js == files.length && is_css == 0
|
111
|
+
# compress_js(out_filename,file_content,charset,chars_num,short,optimize,preserve)
|
112
|
+
# end
|
113
|
+
#else
|
114
|
+
# for file in files
|
115
|
+
# if file[:extension].downcase() == ".css"
|
116
|
+
# compress_css(file[:filename],file[:input],charset,chars_num)
|
117
|
+
# elsif file[:extension].downcase() == ".js"
|
118
|
+
# compress_js(file[:filename],file[:input],charset,chars_num,short,optimize,preserve)
|
119
|
+
# end
|
120
|
+
# end
|
121
|
+
#end
|
122
|
+
|
123
|
+
rescue => e
|
124
|
+
warn e
|
125
|
+
puts opts
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def compress_css_file(filename,content,charset,line_break)
|
130
|
+
newname = filename.sub(/\.css$/,'.min.css')
|
131
|
+
f = File.new(newname, "w")
|
132
|
+
compressor = YUI::CssCompressor.new(:charset=>charset,:line_break=>line_break)
|
133
|
+
f.puts compressor.compress(content)
|
134
|
+
f.close
|
135
|
+
end
|
136
|
+
|
137
|
+
def compress_js_file(filename,content,charset,line_break,munge,optimize,preserve)
|
138
|
+
newname = filename.sub(/\.js$/,'.min.js')
|
139
|
+
f = File.new(newname, "w")
|
140
|
+
compressor = YUI::JavaScriptCompressor.new(:charset=>charset,:line_break=>line_break,:munge=>munge,:optimize=>optimize,:preserve_semicolons=>preserve)
|
141
|
+
f.puts compressor.compress(content)
|
142
|
+
f.close
|
143
|
+
end
|
144
|
+
|
145
|
+
def compress_css_code(content,charset,line_break)
|
146
|
+
compressor = YUI::CssCompressor.new(:charset=>charset,:line_break=>line_break)
|
147
|
+
puts compressor.compress(content)
|
148
|
+
end
|
149
|
+
|
150
|
+
def compress_js_code(content,charset,line_break,munge,optimize,preserve)
|
151
|
+
compressor = YUI::JavaScriptCompressor.new(:charset=>charset,:line_break=>line_break,:munge=>munge,:optimize=>optimize,:preserve_semicolons=>preserve)
|
152
|
+
puts compressor.compress(content)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
WbdVpacker.execute(*ARGV)
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wbdv_packer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: "0.1"
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Seraf Dos Santos
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2012-01-23 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: yui-compressor
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - "="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.9.4
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
description: " Compresses Javascript & CSS files on the terminal.\n \n Usage: wbdv_packer [options] [filename or stdin]\n -c, --charset [CHARSET] Sets the output charset (CSS & JS). Default: utf-8\n -l, --line-break [NUMBER] Sets the max output line width (CSS & JS). Default: 1337\n -o, --optimize Sets code optimization on compress (JS Only). Default: true\n -p, --preserve Sets preserved semi-colons (JS Only). Default: true\n -s, --short Sets shortened local variables (JS Only). Default: true\n -v, --version Print version\n -h, --help Display this screen\n"
|
27
|
+
email: webmaster@cyb3r.ca
|
28
|
+
executables:
|
29
|
+
- wbdv_packer
|
30
|
+
extensions: []
|
31
|
+
|
32
|
+
extra_rdoc_files: []
|
33
|
+
|
34
|
+
files:
|
35
|
+
- README.md
|
36
|
+
- LICENSE
|
37
|
+
- bin/wbdv_packer
|
38
|
+
homepage: http://syr3f.github.com/wbdv_packer
|
39
|
+
licenses: []
|
40
|
+
|
41
|
+
post_install_message:
|
42
|
+
rdoc_options: []
|
43
|
+
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: "0"
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
requirements:
|
59
|
+
- yui-compressor 0.9.4 or greater
|
60
|
+
rubyforge_project:
|
61
|
+
rubygems_version: 1.8.15
|
62
|
+
signing_key:
|
63
|
+
specification_version: 3
|
64
|
+
summary: Compresses Javascript & CSS Files On The Terminal
|
65
|
+
test_files: []
|
66
|
+
|