web_resource_bundler 0.0.21 → 0.0.22
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +14 -22
- data/Readme.md +26 -19
- data/lib/web_resource_bundler.rb +19 -20
- data/lib/web_resource_bundler/content_management/block_parser.rb +2 -2
- data/lib/web_resource_bundler/file_manager.rb +4 -0
- data/lib/web_resource_bundler/filters.rb +5 -3
- data/lib/web_resource_bundler/filters/base_filter.rb +3 -3
- data/lib/web_resource_bundler/filters/bundle_filter.rb +1 -1
- data/lib/web_resource_bundler/filters/bundle_filter/resource_packager.rb +4 -5
- data/lib/web_resource_bundler/filters/cdn_filter.rb +1 -1
- data/lib/web_resource_bundler/filters/compress_filter.rb +50 -0
- data/lib/web_resource_bundler/filters/image_encode_filter.rb +4 -6
- data/lib/web_resource_bundler/filters/image_encode_filter/css_generator.rb +2 -2
- data/lib/web_resource_bundler/filters/image_encode_filter/image_data.rb +1 -3
- data/lib/web_resource_bundler/railtie.rb +10 -0
- data/lib/web_resource_bundler/settings.rb +17 -15
- data/spec/spec_helper.rb +4 -0
- data/spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb +0 -4
- data/spec/web_resource_bundler/filters/compress_filter_spec.rb +80 -0
- data/spec/web_resource_bundler/settings_spec.rb +0 -1
- data/spec/web_resource_bundler/web_resource_bundler_spec.rb +6 -31
- metadata +86 -56
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -10
- data/VERSION +0 -1
- data/lib/web_resource_bundler/web_resource_bundler_init.rb +0 -3
- data/web_resource_bundler.gemspec +0 -106
data/Rakefile
CHANGED
@@ -1,29 +1,21 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'spec/rake/spectask'
|
3
|
-
require 'rubygems'
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
gem.authors = ["gregolsen"]
|
14
|
-
gem.add_development_dependency "rspec", "1.3.1"
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
4
|
+
require File.join(File.dirname(__FILE__), "version.rb")
|
5
|
+
|
6
|
+
task :build do
|
7
|
+
system "gem build web_resource_bundler.gemspec"
|
8
|
+
end
|
9
|
+
|
10
|
+
task :install => :build do
|
11
|
+
system "sudo gem install web_resource_bundler-#{WebResourceBundler::VERSION}.gem"
|
20
12
|
end
|
21
13
|
|
22
|
-
|
14
|
+
task :release => :build do
|
15
|
+
system "gem push web_resource_bundler-#{WebResourceBundler::VERSION}.gem"
|
16
|
+
end
|
23
17
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
t.rcov = true
|
28
|
-
end
|
18
|
+
desc "Run all specs"
|
19
|
+
Spec::Rake::SpecTask.new('spec' ) do |t|
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb' ]
|
29
21
|
end
|
data/Readme.md
CHANGED
@@ -16,6 +16,14 @@ and other browsers created. Conditional comments (like `<!--[if IE 6]>`) also
|
|
16
16
|
supported. You can use external image hosts to server images in css:
|
17
17
|
cdn filter can rewrite image urls for you. Resulted filename is a md5(filenames.sort)
|
18
18
|
|
19
|
+
Filters
|
20
|
+
-------
|
21
|
+
|
22
|
+
+ Base64 image encoding
|
23
|
+
+ CDN url rewriter
|
24
|
+
+ CSS/JS compress (in master)
|
25
|
+
+ uses yui-compressor, which requires jre
|
26
|
+
|
19
27
|
Installation
|
20
28
|
---------------------
|
21
29
|
|
@@ -30,24 +38,20 @@ Declare web_resource_bundler in your Gemfile like this:
|
|
30
38
|
|
31
39
|
Add this two lines in your application.rb file on rails config dir:
|
32
40
|
|
33
|
-
WebResourceBundler::Bundler.
|
41
|
+
WebResourceBundler::Bundler.setup(Rails.root, Rails.env)
|
34
42
|
ActionView::Base.send(:include, WebResourceBundler::RailsAppHelpers)
|
35
43
|
|
36
44
|
Now in your view files you can call **`web_resource_bundler_process`** helper like this:
|
37
45
|
|
38
46
|
<head>
|
39
|
-
|
47
|
+
|
48
|
+
<%= web_resource_bundler_process do %>
|
40
49
|
|
41
50
|
<%= stylesheet_link_tag :scaffold %>
|
42
51
|
<%= javascript_include_tag :defaults %>
|
43
|
-
<link type="text/css" rel="stylesheet" href="/stylesheets/somestyle.css"/>
|
44
|
-
<%=yield :head %>
|
45
|
-
<!--[if lte IE 7]>
|
46
|
-
<link type="text/css" rel="stylesheet" href="/stylesheets/ie7fix.css"/>
|
47
|
-
<link type="text/css" rel="stylesheet" href="/stylesheets/pngfix.css"/>
|
48
|
-
<![endif]-->
|
49
52
|
|
50
53
|
<% end %>
|
54
|
+
|
51
55
|
</head>
|
52
56
|
|
53
57
|
Notice:
|
@@ -59,18 +63,18 @@ And For Rails >= 3
|
|
59
63
|
use **`<%= web_resource_bundler_process do %>`**
|
60
64
|
|
61
65
|
|
62
|
-
And as result you'll
|
63
|
-
|
64
|
-
<link href="/cache/base64_style_d880a502addaa493b889c0970616430b.css?1290594873" media="screen" rel="stylesheet" type="text/css" />
|
65
|
-
<script src="/cache/script_275d311037da40e9c9b8c919a8c08b55.js?1290594873" type="text/javascript"></script>
|
66
|
+
And as result you'll got something like this:
|
66
67
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
68
|
+
<head>
|
69
|
+
<!--[if (!IE)|(gte IE 8)]>
|
70
|
+
<link href="/cache/cdn_base64_style_03fc490ab76c3c79d908c11cd03684ff.css?1298969608" media="screen" rel="stylesheet" type="text/css" />
|
71
|
+
<script src="/cache/script_4fd3a6705e370f98957d625976c96f64.js?1292848219" type="text/javascript"></script>
|
72
|
+
<![endif]-->
|
73
|
+
<!--[if lte IE 7]>
|
74
|
+
<link href="/cache/cdn_base64_ie_style_03fc490ab76c3c79d908c11cd03684ff.css?1298969608" media="screen" rel="stylesheet" type="text/css" />
|
75
|
+
<link href="/cache/mhtml_style_03fc490ab76c3c79d908c11cd03684ff.mhtml?1298969608" media="screen" rel="stylesheet" type="text/css" />
|
76
|
+
<![endif]-->
|
77
|
+
</head>
|
74
78
|
|
75
79
|
!!!
|
76
80
|
Don't forget to clean your cache directory after deploy to clean old bundles
|
@@ -92,6 +96,9 @@ To configure bundler by your self you can create your custom config file - web_r
|
|
92
96
|
:use: false
|
93
97
|
:http_hosts: ['http://localhost:3000']
|
94
98
|
:https_hosts: ['https://localhost:3000']
|
99
|
+
:compress_filter:
|
100
|
+
:use: true
|
101
|
+
:obfuscate_js: true
|
95
102
|
|
96
103
|
Recommendations
|
97
104
|
--------------------
|
data/lib/web_resource_bundler.rb
CHANGED
@@ -13,6 +13,9 @@ require 'rails_app_helpers'
|
|
13
13
|
require 'yaml'
|
14
14
|
require 'digest/md5'
|
15
15
|
require 'uri'
|
16
|
+
require 'yui/compressor'
|
17
|
+
|
18
|
+
require 'railtie' if defined?(Rails)
|
16
19
|
|
17
20
|
module WebResourceBundler
|
18
21
|
class Bundler
|
@@ -25,7 +28,6 @@ module WebResourceBundler
|
|
25
28
|
def setup(rails_root, rails_env)
|
26
29
|
settings = Settings.create_settings(rails_root, rails_env)
|
27
30
|
return false unless Settings.correct?
|
28
|
-
@logger = create_logger(settings[:log_path]) unless @logger
|
29
31
|
@file_manager = FileManager.new(settings)
|
30
32
|
@filters = set_filters({}, @file_manager)
|
31
33
|
end
|
@@ -40,7 +42,7 @@ module WebResourceBundler
|
|
40
42
|
@file_manager.set_settings(settings)
|
41
43
|
true
|
42
44
|
rescue Exception => e
|
43
|
-
|
45
|
+
logger_error("Error occured while trying to change settings")
|
44
46
|
false
|
45
47
|
end
|
46
48
|
end
|
@@ -62,17 +64,29 @@ module WebResourceBundler
|
|
62
64
|
read_resources!(block_data)
|
63
65
|
block_data.apply_filters(filters)
|
64
66
|
write_files_on_disk(block_data)
|
65
|
-
|
67
|
+
logger_info("files written on disk")
|
66
68
|
return block_data
|
67
69
|
end
|
68
70
|
block_data.apply_filters(filters)
|
69
71
|
block_data
|
70
72
|
rescue Exception => e
|
71
|
-
|
73
|
+
logger_error("Error occured: " + e.to_s)
|
72
74
|
nil
|
73
75
|
end
|
74
76
|
end
|
75
77
|
|
78
|
+
def logger
|
79
|
+
defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
|
80
|
+
end
|
81
|
+
|
82
|
+
def logger_info(message)
|
83
|
+
logger.info("[web_resource_bundler]: #{message}")
|
84
|
+
end
|
85
|
+
|
86
|
+
def logger_error(message)
|
87
|
+
logger.error("[web_resource_bundler]: #{message}")
|
88
|
+
end
|
89
|
+
|
76
90
|
private
|
77
91
|
|
78
92
|
def set_filters_request_specific_data!(filters, domain, protocol)
|
@@ -84,7 +98,7 @@ module WebResourceBundler
|
|
84
98
|
#giving filters array in right sequence (bundle filter should be first)
|
85
99
|
def filters_array(filters_hash)
|
86
100
|
filters = []
|
87
|
-
[:bundle_filter, :base64_filter, :cdn_filter].each do |name|
|
101
|
+
[:bundle_filter, :compress_filter, :base64_filter, :cdn_filter].each do |name|
|
88
102
|
filters << filters_hash[name] if Settings.filter_used?(name) && filters_hash[name]
|
89
103
|
end
|
90
104
|
filters
|
@@ -101,21 +115,6 @@ module WebResourceBundler
|
|
101
115
|
filters
|
102
116
|
end
|
103
117
|
|
104
|
-
#creates logger object with new log file in rails_app/log
|
105
|
-
#or appends to existing log file, log dir also created
|
106
|
-
#all exception catched
|
107
|
-
def create_logger(log_path)
|
108
|
-
begin
|
109
|
-
log_dir = File.dirname(log_path)
|
110
|
-
Dir.mkdir(log_dir) unless File.exist?(log_dir)
|
111
|
-
file = File.open(log_path, File::WRONLY | File::APPEND | File::CREAT)
|
112
|
-
logger = Logger.new(file)
|
113
|
-
rescue Exception => e
|
114
|
-
raise WebResourceBundler::Exceptions::LogCreationError.new(log_path, e.to_s)
|
115
|
-
end
|
116
|
-
logger
|
117
|
-
end
|
118
|
-
|
119
118
|
#creates a clone of block_data to calculate resulted file names
|
120
119
|
#all filters applied to block_data
|
121
120
|
#if resulted bundle files exists - we considering bundle up to date
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module WebResourceBundler
|
2
2
|
module BlockParser
|
3
3
|
|
4
|
-
CONDITIONAL_BLOCK_PATTERN = /<!--\s*\[\s*if[^>]*IE\s*\d*[^>]*\]\s*>(.*?)<!\s*\[\s*endif\s*\]\s*-->/
|
5
|
-
CONDITION_PATTERN = /<!--\s*(\[[^<]*\])\s*>/
|
4
|
+
CONDITIONAL_BLOCK_PATTERN = /<!--\s*\[\s*if[^>]*IE\s*\d*[^>]*\]\s*>(.*?)<!\s*\[\s*endif\s*\]\s*-->/xmi
|
5
|
+
CONDITION_PATTERN = /<!--\s*(\[[^<]*\])\s*>/xmi
|
6
6
|
LINK_PATTERN = /(<(link|script[^>]*?src\s*=).*?(><\/script>|>))/i
|
7
7
|
URL_PATTERN = /(href|src) *= *["']([^"'?]+)/i
|
8
8
|
|
@@ -15,6 +15,10 @@ module WebResourceBundler
|
|
15
15
|
File.join(@resource_dir, relative_path)
|
16
16
|
end
|
17
17
|
|
18
|
+
def cache_path_with_prefix(prefix, path)
|
19
|
+
File.join(@cache_dir, prefix + File.basename(path))
|
20
|
+
end
|
21
|
+
|
18
22
|
def exist?(relative_path)
|
19
23
|
File.exist? full_path(relative_path)
|
20
24
|
end
|
@@ -2,13 +2,15 @@ require 'filters/base_filter'
|
|
2
2
|
require 'filters/image_encode_filter'
|
3
3
|
require 'filters/bundle_filter'
|
4
4
|
require 'filters/cdn_filter'
|
5
|
+
require 'filters/compress_filter'
|
5
6
|
|
6
7
|
module WebResourceBundler
|
7
8
|
module Filters
|
8
9
|
FILTER_NAMES = {
|
9
|
-
:bundle_filter
|
10
|
-
:base64_filter
|
11
|
-
:cdn_filter
|
10
|
+
:bundle_filter => BundleFilter,
|
11
|
+
:base64_filter => ImageEncodeFilter,
|
12
|
+
:cdn_filter => CdnFilter,
|
13
|
+
:compress_filter => CompressFilter
|
12
14
|
}
|
13
15
|
end
|
14
16
|
end
|
@@ -5,7 +5,7 @@ module WebResourceBundler
|
|
5
5
|
attr_reader :settings
|
6
6
|
|
7
7
|
def initialize(settings, file_manager)
|
8
|
-
@settings
|
8
|
+
@settings = settings
|
9
9
|
@file_manager = file_manager
|
10
10
|
end
|
11
11
|
|
@@ -13,8 +13,8 @@ module WebResourceBundler
|
|
13
13
|
@settings = settings
|
14
14
|
end
|
15
15
|
|
16
|
-
def apply(block_data = nil)
|
17
|
-
|
16
|
+
def apply!(block_data = nil)
|
17
|
+
raise NotImplementedError.new
|
18
18
|
end
|
19
19
|
|
20
20
|
end
|
@@ -48,7 +48,7 @@ module WebResourceBundler::Filters::BundleFilter
|
|
48
48
|
items = [type[:name] + '_' + get_md5(files)]
|
49
49
|
items += @settings[:filename_additional_data] if @settings[:filename_additional_data]
|
50
50
|
items << type[:ext]
|
51
|
-
|
51
|
+
@file_manager.cache_path_with_prefix('', items.join('.'))
|
52
52
|
end
|
53
53
|
|
54
54
|
#just aliases to simplify code
|
@@ -40,7 +40,7 @@ module WebResourceBundler::Filters::BundleFilter
|
|
40
40
|
paths = []
|
41
41
|
content.gsub!(IMPORT_PTR) do |result|
|
42
42
|
path = $1
|
43
|
-
paths << File.join(File.dirname(base_file_path), path) if path
|
43
|
+
paths << File.join(File.dirname(base_file_path), path) if path && File.extname(path) == '.css'
|
44
44
|
""
|
45
45
|
end
|
46
46
|
paths
|
@@ -56,11 +56,10 @@ module WebResourceBundler::Filters::BundleFilter
|
|
56
56
|
|
57
57
|
#created resource files using imported files paths
|
58
58
|
def build_imported_files(imported_file_paths)
|
59
|
-
files
|
60
|
-
|
61
|
-
files
|
59
|
+
imported_file_paths.inject([]) do |files, path|
|
60
|
+
files << WebResourceBundler::ResourceFile.new_css_file(path, @file_manager.get_content(path))
|
61
|
+
files
|
62
62
|
end
|
63
|
-
files
|
64
63
|
end
|
65
64
|
|
66
65
|
end
|
@@ -19,7 +19,7 @@ module WebResourceBundler::Filters::CdnFilter
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def new_filepath(path)
|
22
|
-
|
22
|
+
@file_manager.cache_path_with_prefix(FILE_PREFIX, path)
|
23
23
|
end
|
24
24
|
|
25
25
|
#insures that image linked to one particular host
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module WebResourceBundler::Filters::CompressFilter
|
2
|
+
class Filter < WebResourceBundler::Filters::BaseFilter
|
3
|
+
|
4
|
+
FILE_PREFIX = 'min_'
|
5
|
+
|
6
|
+
def initialize(settings, file_manager)
|
7
|
+
super(settings, file_manager)
|
8
|
+
@js_compressor = YUI::JavaScriptCompressor.new(:munge => settings[:obfuscate_js])
|
9
|
+
@css_compressor = YUI::CssCompressor.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def set_settings(settings)
|
13
|
+
if @settings[:obfuscate_js] != settings[:obfuscate_js]
|
14
|
+
@js_compressor = YUI::JavaScriptCompressor.new(:munge => settings[:obfuscate_js])
|
15
|
+
end
|
16
|
+
@settings = settings
|
17
|
+
end
|
18
|
+
|
19
|
+
def apply!(block_data)
|
20
|
+
compress_styles!(block_data.styles)
|
21
|
+
compress_scripts!(block_data.scripts)
|
22
|
+
block_data
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def compress_scripts!(scripts)
|
28
|
+
scripts.each do |file|
|
29
|
+
file.content = @js_compressor.compress(file.content) unless file.content.empty?
|
30
|
+
file.path = new_js_path(file.path)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def compress_styles!(styles)
|
35
|
+
styles.each do |file|
|
36
|
+
file.content = @css_compressor.compress(file.content) unless file.content.empty?
|
37
|
+
file.path = new_css_path(file.path)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def new_css_path(path)
|
42
|
+
@file_manager.cache_path_with_prefix(FILE_PREFIX, path)
|
43
|
+
end
|
44
|
+
|
45
|
+
def new_js_path(path)
|
46
|
+
@file_manager.cache_path_with_prefix(FILE_PREFIX, path)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -25,7 +25,6 @@ module WebResourceBundler::Filters::ImageEncodeFilter
|
|
25
25
|
#also its type changed to CSS because from this point it is valid only for
|
26
26
|
#normal browsers and IE > 7
|
27
27
|
def apply!(block_data)
|
28
|
-
new_files = []
|
29
28
|
block_data.styles.each do |file|
|
30
29
|
base_name = file.path
|
31
30
|
mhtml_css_file = create_mhtml_css_file(file)
|
@@ -36,8 +35,7 @@ module WebResourceBundler::Filters::ImageEncodeFilter
|
|
36
35
|
images = change_images_to_mhtml_links!(mhtml_css_file, mhtml_filepath(base_name))
|
37
36
|
mhtml_file.content = @generator.construct_mhtml_content(images.values)
|
38
37
|
end
|
39
|
-
block_data.files << mhtml_css_file
|
40
|
-
block_data.files << mhtml_file
|
38
|
+
block_data.files << mhtml_css_file << mhtml_file
|
41
39
|
end
|
42
40
|
block_data
|
43
41
|
end
|
@@ -71,13 +69,13 @@ module WebResourceBundler::Filters::ImageEncodeFilter
|
|
71
69
|
end
|
72
70
|
|
73
71
|
#path to new file for IE with images encoded in it
|
74
|
-
def mhtml_css_filepath(
|
75
|
-
|
72
|
+
def mhtml_css_filepath(path)
|
73
|
+
@file_manager.cache_path_with_prefix(IE_FILE_PREFIX, path)
|
76
74
|
end
|
77
75
|
|
78
76
|
#path to file with mhtml content for IE
|
79
77
|
def mhtml_filepath(base_file_path)
|
80
|
-
|
78
|
+
@file_manager.cache_path_with_prefix(MHTML_FILE_PREFIX, File.basename(base_file_path, '.css') + '.mhtml')
|
81
79
|
end
|
82
80
|
|
83
81
|
end
|
@@ -74,8 +74,8 @@ module WebResourceBundler
|
|
74
74
|
def encode_images_basic!(content)
|
75
75
|
images = {}
|
76
76
|
content.gsub!(PATTERN) do |s|
|
77
|
-
tag
|
78
|
-
url
|
77
|
+
tag, url = $1, $3
|
78
|
+
next if URI.parse(url).absolute?
|
79
79
|
data = ImageData.new(url, @settings[:resource_dir])
|
80
80
|
if !url.empty? && data.exist && data.size <= image_size_limit && block_given?
|
81
81
|
images[url] = data unless images[url]
|
@@ -44,9 +44,7 @@ module WebResourceBundler
|
|
44
44
|
private
|
45
45
|
|
46
46
|
def report_problem_if_file_not_found
|
47
|
-
|
48
|
-
WebResourceBundler::Bundler.logger.info("Image not found #{@path}")
|
49
|
-
end
|
47
|
+
WebResourceBundler::Bundler.logger_error("Image not found #{@path}") unless @exist
|
50
48
|
end
|
51
49
|
|
52
50
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module WebResourceBundler
|
4
|
+
class Railtie < Rails::Railtie
|
5
|
+
initializer "web_resource_bundler_initializer.configure_rails_initialization" do
|
6
|
+
WebResourceBundler::Bundler.setup(Rails.root, Rails.env)
|
7
|
+
ActionView::Base.send(:include, WebResourceBundler::RailsAppHelpers)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,11 +1,10 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
class WebResourceBundler::Settings
|
3
3
|
|
4
|
-
DEFAULT_LOG_PATH = 'log/web_resource_bundler.log'
|
5
4
|
DEFAULT_RESOURCE_DIR = 'public'
|
6
5
|
DEFAULT_SETTINGS_PATH = 'config/web_resource_bundler.yml'
|
7
6
|
DEFAULT_CACHE_DIR = 'cache'
|
8
|
-
OBLIGATORY_SETTINGS = [:resource_dir, :
|
7
|
+
OBLIGATORY_SETTINGS = [:resource_dir, :cache_dir]
|
9
8
|
|
10
9
|
class << self
|
11
10
|
|
@@ -71,19 +70,22 @@ class WebResourceBundler::Settings
|
|
71
70
|
#creates defaults settings
|
72
71
|
def defaults(rails_root)
|
73
72
|
{
|
74
|
-
:resource_dir
|
75
|
-
:
|
76
|
-
:
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
73
|
+
:resource_dir => File.join(rails_root, DEFAULT_RESOURCE_DIR),
|
74
|
+
:cache_dir => DEFAULT_CACHE_DIR,
|
75
|
+
:bundle_filter => {
|
76
|
+
:use => true
|
77
|
+
},
|
78
|
+
:cdn_filter => {
|
79
|
+
:use => false
|
80
|
+
},
|
81
|
+
:base64_filter => {
|
82
|
+
:use => true,
|
83
|
+
:max_image_size => 20
|
84
|
+
},
|
85
|
+
:compress_filter => {
|
86
|
+
:use => false,
|
87
|
+
:obfuscate_js => true
|
88
|
+
}
|
87
89
|
}
|
88
90
|
end
|
89
91
|
|
data/spec/spec_helper.rb
CHANGED
@@ -26,10 +26,6 @@ describe WebResourceBundler::Filters::BundleFilter::ResourcePackager do
|
|
26
26
|
styles.include?(file.path).should be_true
|
27
27
|
end
|
28
28
|
end
|
29
|
-
it "should return empty array if paths are not css" do
|
30
|
-
files = @file_packager.send(:build_imported_files, scripts)
|
31
|
-
files.should be_empty
|
32
|
-
end
|
33
29
|
end
|
34
30
|
|
35
31
|
describe "#bundle_files" do
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../spec_helper"))
|
2
|
+
describe WebResourceBundler::Filters::CompressFilter do
|
3
|
+
before(:each) do
|
4
|
+
@styles = [WebResourceBundler::ResourceFile.new_css_file('1.css',
|
5
|
+
<<-CONTENT
|
6
|
+
a:link {
|
7
|
+
text-decoration: none;
|
8
|
+
background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAAATCAIAAADD') no-repeat 0 0;
|
9
|
+
color: red;
|
10
|
+
font-size: 12pt;
|
11
|
+
}
|
12
|
+
CONTENT
|
13
|
+
)]
|
14
|
+
@scripts = [WebResourceBundler::ResourceFile.new_css_file('1.css', '(function () { var foo={};foo["bar"]="baz"; })()')]
|
15
|
+
end
|
16
|
+
|
17
|
+
subject do
|
18
|
+
file_manager = FileManager.new(settings)
|
19
|
+
WebResourceBundler::Filters::CompressFilter::Filter.new({:obfuscate_js => false}, file_manager)
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#new_css_path" do
|
23
|
+
it "should return new css file path with prefix min" do
|
24
|
+
subject.send(:new_css_path, '/images/1.css').should == File.join(settings[:cache_dir], "min_1.css")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#new_css_path" do
|
29
|
+
it "should return new js file path with prefix min" do
|
30
|
+
subject.send(:new_js_path, '/images/1.js').should == File.join(settings[:cache_dir], 'min_1.js')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#compress_styles" do
|
35
|
+
it "should compress css" do
|
36
|
+
file = subject.send(:compress_styles!, @styles).first
|
37
|
+
file.content.should == "a:link{text-decoration:none;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAAATCAIAAADD') no-repeat 0 0;color:red;font-size:12pt}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#compress_scripts" do
|
42
|
+
it "should compress js" do
|
43
|
+
file = subject.send(:compress_scripts!, @scripts).first
|
44
|
+
file.content.should == "(function(){var foo={};foo.bar=\"baz\"})();"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#set_settings" do
|
49
|
+
|
50
|
+
it "should change settings" do
|
51
|
+
subject.set_settings({:a => 23})
|
52
|
+
subject.settings.should == {:a => 23}
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should change js filter if obfuscation changed" do
|
56
|
+
old_id = subject.instance_variable_get("@js_compressor").object_id
|
57
|
+
obfuscate = !subject.settings[:obfuscate_js]
|
58
|
+
subject.set_settings({:obfuscate_js => obfuscate})
|
59
|
+
subject.instance_variable_get("@js_compressor").object_id.should_not equal(old_id)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
context "obfuscating setted to false" do
|
65
|
+
|
66
|
+
subject do
|
67
|
+
file_manager = FileManager.new(settings)
|
68
|
+
WebResourceBundler::Filters::CompressFilter::Filter.new({:obfuscate_js => true}, file_manager)
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#compress_scripts" do
|
72
|
+
it "should compress js" do
|
73
|
+
file = subject.send(:compress_scripts!, @scripts).first
|
74
|
+
file.content.should == "(function(){var a={};a.bar=\"baz\"})();"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
@@ -11,7 +11,6 @@ describe WebResourceBundler::Settings do
|
|
11
11
|
root = '/root'
|
12
12
|
settings = Settings.send(:defaults, root)
|
13
13
|
settings[:resource_dir].should == File.join(root, Settings::DEFAULT_RESOURCE_DIR)
|
14
|
-
settings[:log_path].should == File.join(root, Settings::DEFAULT_LOG_PATH)
|
15
14
|
settings[:cache_dir].should == Settings::DEFAULT_CACHE_DIR
|
16
15
|
settings[:bundle_filter][:use].should == true
|
17
16
|
settings[:cdn_filter][:use].should == false
|
@@ -7,12 +7,6 @@ module WebResourceBundler
|
|
7
7
|
@bundler = WebResourceBundler::Bundler
|
8
8
|
end
|
9
9
|
|
10
|
-
describe "#initialize" do
|
11
|
-
it "sets instance state correctly" do
|
12
|
-
@bundler.logger.should == nil
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
10
|
context "#bundler setup called" do
|
17
11
|
before(:each) do
|
18
12
|
@bundler.setup(root_dir, 'development')
|
@@ -22,15 +16,15 @@ module WebResourceBundler
|
|
22
16
|
it "returns array of filters that has :use => true in settings" do
|
23
17
|
@bundler.set_settings(@s)
|
24
18
|
filters = @bundler.send("filters_array", @bundler.filters)
|
25
|
-
filters.size.should ==
|
26
|
-
@bundler.filters.size.should ==
|
27
|
-
i =
|
28
|
-
%w{cdn_filter bundle_filter base64_filter}.each do |s|
|
19
|
+
filters.size.should == 4
|
20
|
+
@bundler.filters.size.should == 4
|
21
|
+
i = 3
|
22
|
+
%w{cdn_filter bundle_filter base64_filter compress_filter}.each do |s|
|
29
23
|
@s[s.to_sym][:use] = false
|
30
24
|
@bundler.set_settings(@s)
|
31
25
|
filters = @bundler.send("filters_array", @bundler.filters)
|
32
26
|
filters.size.should == i
|
33
|
-
@bundler.filters.size.should ==
|
27
|
+
@bundler.filters.size.should == 4
|
34
28
|
i -= 1
|
35
29
|
end
|
36
30
|
end
|
@@ -44,6 +38,7 @@ module WebResourceBundler
|
|
44
38
|
it "inits filters if no filters were initialized before" do
|
45
39
|
@bundler.filters.should == {}
|
46
40
|
@bundler.send("set_filters", @bundler.filters, @bundler.instance_variable_get("@file_manager"))
|
41
|
+
#only 3 filters used by defaults
|
47
42
|
@bundler.filters.size.should == 3
|
48
43
|
end
|
49
44
|
it "sets filters settings if filters already inited" do
|
@@ -58,26 +53,6 @@ module WebResourceBundler
|
|
58
53
|
end
|
59
54
|
end
|
60
55
|
|
61
|
-
|
62
|
-
describe "#create_logger" do
|
63
|
-
|
64
|
-
it "creates log directory if it's unexistent" do
|
65
|
-
log_dir_path = File.dirname(Settings.settings[:log_path])
|
66
|
-
FileUtils.rm_rf(log_dir_path)
|
67
|
-
@bundler.send("create_logger", Settings.settings[:log_path])
|
68
|
-
File.exist?(log_dir_path).should be_true
|
69
|
-
FileUtils.rm_rf(log_dir_path)
|
70
|
-
end
|
71
|
-
|
72
|
-
it "sets log_path in settings if it isn't specified" do
|
73
|
-
path = Settings.settings[:log_path]
|
74
|
-
@bundler.send("create_logger", path)
|
75
|
-
File.exist?(path).should be_true
|
76
|
-
File.delete(path)
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
56
|
describe "#process" do
|
82
57
|
it "returns the same filenames when bundling or just computing resulted files" do
|
83
58
|
@bundler.set_settings(settings)
|
metadata
CHANGED
@@ -5,16 +5,17 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 22
|
9
|
+
version: 0.0.22
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- gregolsen
|
13
|
+
- amishyn
|
13
14
|
autorequire:
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-06-29 00:00:00 +03:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +33,21 @@ dependencies:
|
|
32
33
|
version: 1.3.1
|
33
34
|
type: :development
|
34
35
|
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yui-compressor
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
- 9
|
47
|
+
- 6
|
48
|
+
version: 0.9.6
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
35
51
|
description: this lib could bundle you css/js files in single file, encode images in base64, rewrite images urls to your cdn hosts
|
36
52
|
email: anotheroneman@yahoo.com
|
37
53
|
executables: []
|
@@ -41,62 +57,60 @@ extensions: []
|
|
41
57
|
extra_rdoc_files: []
|
42
58
|
|
43
59
|
files:
|
44
|
-
- Gemfile
|
45
|
-
- Gemfile.lock
|
46
60
|
- Rakefile
|
47
61
|
- Readme.md
|
48
|
-
- VERSION
|
49
62
|
- lib/web_resource_bundler.rb
|
50
|
-
- lib/web_resource_bundler/content_management/block_data.rb
|
51
|
-
- lib/web_resource_bundler/content_management/block_parser.rb
|
52
|
-
- lib/web_resource_bundler/content_management/css_url_rewriter.rb
|
53
|
-
- lib/web_resource_bundler/content_management/resource_file.rb
|
54
63
|
- lib/web_resource_bundler/exceptions.rb
|
64
|
+
- lib/web_resource_bundler/railtie.rb
|
65
|
+
- lib/web_resource_bundler/rails_app_helpers.rb
|
55
66
|
- lib/web_resource_bundler/file_manager.rb
|
56
67
|
- lib/web_resource_bundler/filters.rb
|
57
|
-
- lib/web_resource_bundler/
|
58
|
-
- lib/web_resource_bundler/filters/bundle_filter.rb
|
59
|
-
- lib/web_resource_bundler/filters/bundle_filter/resource_packager.rb
|
68
|
+
- lib/web_resource_bundler/settings.rb
|
60
69
|
- lib/web_resource_bundler/filters/cdn_filter.rb
|
70
|
+
- lib/web_resource_bundler/filters/base_filter.rb
|
61
71
|
- lib/web_resource_bundler/filters/image_encode_filter.rb
|
62
72
|
- lib/web_resource_bundler/filters/image_encode_filter/css_generator.rb
|
63
73
|
- lib/web_resource_bundler/filters/image_encode_filter/image_data.rb
|
64
|
-
- lib/web_resource_bundler/
|
65
|
-
- lib/web_resource_bundler/
|
66
|
-
- lib/web_resource_bundler/
|
67
|
-
-
|
74
|
+
- lib/web_resource_bundler/filters/compress_filter.rb
|
75
|
+
- lib/web_resource_bundler/filters/bundle_filter.rb
|
76
|
+
- lib/web_resource_bundler/filters/bundle_filter/resource_packager.rb
|
77
|
+
- lib/web_resource_bundler/content_management/css_url_rewriter.rb
|
78
|
+
- lib/web_resource_bundler/content_management/block_data.rb
|
79
|
+
- lib/web_resource_bundler/content_management/resource_file.rb
|
80
|
+
- lib/web_resource_bundler/content_management/block_parser.rb
|
68
81
|
- spec/spec_helper.rb
|
69
|
-
- spec/
|
70
|
-
- spec/
|
71
|
-
- spec/
|
72
|
-
- spec/
|
82
|
+
- spec/web_resource_bundler/web_resource_bundler_spec.rb
|
83
|
+
- spec/web_resource_bundler/settings_spec.rb
|
84
|
+
- spec/web_resource_bundler/file_manager_spec.rb
|
85
|
+
- spec/web_resource_bundler/filters/image_encode_filter/image_data_spec.rb
|
86
|
+
- spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb
|
87
|
+
- spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb
|
88
|
+
- spec/web_resource_bundler/filters/compress_filter_spec.rb
|
89
|
+
- spec/web_resource_bundler/filters/cdn_filter_spec.rb
|
90
|
+
- spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb
|
91
|
+
- spec/web_resource_bundler/filters/bundle_filter/filter_spec.rb
|
92
|
+
- spec/web_resource_bundler/content_management/resource_file_spec.rb
|
93
|
+
- spec/web_resource_bundler/content_management/block_data_spec.rb
|
94
|
+
- spec/web_resource_bundler/content_management/css_url_rewriter_spec.rb
|
95
|
+
- spec/web_resource_bundler/content_management/block_parser_spec.rb
|
96
|
+
- spec/test_data/public/sample.css
|
73
97
|
- spec/test_data/public/images/sdfo.jpg
|
98
|
+
- spec/test_data/public/images/logo.jpg
|
99
|
+
- spec/test_data/public/images/good.jpg
|
74
100
|
- spec/test_data/public/images/too_big_image.jpg
|
75
|
-
- spec/test_data/public/
|
76
|
-
- spec/test_data/public/salog20.js
|
77
|
-
- spec/test_data/public/sample.css
|
101
|
+
- spec/test_data/public/test.css
|
78
102
|
- spec/test_data/public/seal.js
|
79
|
-
- spec/test_data/public/set_cookies.js
|
80
|
-
- spec/test_data/public/styles/boo.css
|
81
|
-
- spec/test_data/public/styles/for_import.css
|
82
103
|
- spec/test_data/public/temp.css
|
83
|
-
- spec/test_data/public/
|
84
|
-
- spec/
|
85
|
-
- spec/
|
86
|
-
- spec/
|
87
|
-
- spec/
|
88
|
-
- spec/
|
89
|
-
- spec/
|
90
|
-
- spec/
|
91
|
-
- spec/web_resource_bundler/filters/cdn_filter_spec.rb
|
92
|
-
- spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb
|
93
|
-
- spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb
|
94
|
-
- spec/web_resource_bundler/filters/image_encode_filter/image_data_spec.rb
|
95
|
-
- spec/web_resource_bundler/settings_spec.rb
|
96
|
-
- spec/web_resource_bundler/web_resource_bundler_spec.rb
|
97
|
-
- web_resource_bundler.gemspec
|
104
|
+
- spec/test_data/public/salog20.js
|
105
|
+
- spec/test_data/public/foo.css
|
106
|
+
- spec/test_data/public/styles/for_import.css
|
107
|
+
- spec/test_data/public/styles/boo.css
|
108
|
+
- spec/test_data/public/set_cookies.js
|
109
|
+
- spec/test_data/public/marketing.js
|
110
|
+
- spec/test_data/config/web_resource_bundler.yml
|
111
|
+
- spec/sample_block_helper.rb
|
98
112
|
has_rdoc: true
|
99
|
-
homepage:
|
113
|
+
homepage: http://wrb.railsware.com/
|
100
114
|
licenses: []
|
101
115
|
|
102
116
|
post_install_message:
|
@@ -126,20 +140,36 @@ rubyforge_project:
|
|
126
140
|
rubygems_version: 1.3.7
|
127
141
|
signing_key:
|
128
142
|
specification_version: 3
|
129
|
-
summary: lib for css and js content bundling and
|
143
|
+
summary: lib for css and js content bundling and management
|
130
144
|
test_files:
|
131
|
-
- spec/sample_block_helper.rb
|
132
145
|
- spec/spec_helper.rb
|
133
|
-
- spec/web_resource_bundler/
|
134
|
-
- spec/web_resource_bundler/
|
135
|
-
- spec/web_resource_bundler/content_management/css_url_rewriter_spec.rb
|
136
|
-
- spec/web_resource_bundler/content_management/resource_file_spec.rb
|
146
|
+
- spec/web_resource_bundler/web_resource_bundler_spec.rb
|
147
|
+
- spec/web_resource_bundler/settings_spec.rb
|
137
148
|
- spec/web_resource_bundler/file_manager_spec.rb
|
138
|
-
- spec/web_resource_bundler/filters/bundle_filter/filter_spec.rb
|
139
|
-
- spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb
|
140
|
-
- spec/web_resource_bundler/filters/cdn_filter_spec.rb
|
141
|
-
- spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb
|
142
|
-
- spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb
|
143
149
|
- spec/web_resource_bundler/filters/image_encode_filter/image_data_spec.rb
|
144
|
-
- spec/web_resource_bundler/
|
145
|
-
- spec/web_resource_bundler/
|
150
|
+
- spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb
|
151
|
+
- spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb
|
152
|
+
- spec/web_resource_bundler/filters/compress_filter_spec.rb
|
153
|
+
- spec/web_resource_bundler/filters/cdn_filter_spec.rb
|
154
|
+
- spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb
|
155
|
+
- spec/web_resource_bundler/filters/bundle_filter/filter_spec.rb
|
156
|
+
- spec/web_resource_bundler/content_management/resource_file_spec.rb
|
157
|
+
- spec/web_resource_bundler/content_management/block_data_spec.rb
|
158
|
+
- spec/web_resource_bundler/content_management/css_url_rewriter_spec.rb
|
159
|
+
- spec/web_resource_bundler/content_management/block_parser_spec.rb
|
160
|
+
- spec/test_data/public/sample.css
|
161
|
+
- spec/test_data/public/images/sdfo.jpg
|
162
|
+
- spec/test_data/public/images/logo.jpg
|
163
|
+
- spec/test_data/public/images/good.jpg
|
164
|
+
- spec/test_data/public/images/too_big_image.jpg
|
165
|
+
- spec/test_data/public/test.css
|
166
|
+
- spec/test_data/public/seal.js
|
167
|
+
- spec/test_data/public/temp.css
|
168
|
+
- spec/test_data/public/salog20.js
|
169
|
+
- spec/test_data/public/foo.css
|
170
|
+
- spec/test_data/public/styles/for_import.css
|
171
|
+
- spec/test_data/public/styles/boo.css
|
172
|
+
- spec/test_data/public/set_cookies.js
|
173
|
+
- spec/test_data/public/marketing.js
|
174
|
+
- spec/test_data/config/web_resource_bundler.yml
|
175
|
+
- spec/sample_block_helper.rb
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.0.21
|
@@ -1,106 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{web_resource_bundler}
|
8
|
-
s.version = "0.0.21"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["gregolsen"]
|
12
|
-
s.date = %q{2011-02-09}
|
13
|
-
s.description = %q{this lib could bundle you css/js files in single file, encode images in base64, rewrite images urls to your cdn hosts}
|
14
|
-
s.email = %q{anotheroneman@yahoo.com}
|
15
|
-
s.files = [
|
16
|
-
"Gemfile",
|
17
|
-
"Gemfile.lock",
|
18
|
-
"Rakefile",
|
19
|
-
"Readme.md",
|
20
|
-
"VERSION",
|
21
|
-
"lib/web_resource_bundler.rb",
|
22
|
-
"lib/web_resource_bundler/content_management/block_data.rb",
|
23
|
-
"lib/web_resource_bundler/content_management/block_parser.rb",
|
24
|
-
"lib/web_resource_bundler/content_management/css_url_rewriter.rb",
|
25
|
-
"lib/web_resource_bundler/content_management/resource_file.rb",
|
26
|
-
"lib/web_resource_bundler/exceptions.rb",
|
27
|
-
"lib/web_resource_bundler/file_manager.rb",
|
28
|
-
"lib/web_resource_bundler/filters.rb",
|
29
|
-
"lib/web_resource_bundler/filters/base_filter.rb",
|
30
|
-
"lib/web_resource_bundler/filters/bundle_filter.rb",
|
31
|
-
"lib/web_resource_bundler/filters/bundle_filter/resource_packager.rb",
|
32
|
-
"lib/web_resource_bundler/filters/cdn_filter.rb",
|
33
|
-
"lib/web_resource_bundler/filters/image_encode_filter.rb",
|
34
|
-
"lib/web_resource_bundler/filters/image_encode_filter/css_generator.rb",
|
35
|
-
"lib/web_resource_bundler/filters/image_encode_filter/image_data.rb",
|
36
|
-
"lib/web_resource_bundler/rails_app_helpers.rb",
|
37
|
-
"lib/web_resource_bundler/settings.rb",
|
38
|
-
"lib/web_resource_bundler/web_resource_bundler_init.rb",
|
39
|
-
"spec/sample_block_helper.rb",
|
40
|
-
"spec/spec_helper.rb",
|
41
|
-
"spec/test_data/config/web_resource_bundler.yml",
|
42
|
-
"spec/test_data/public/foo.css",
|
43
|
-
"spec/test_data/public/images/good.jpg",
|
44
|
-
"spec/test_data/public/images/logo.jpg",
|
45
|
-
"spec/test_data/public/images/sdfo.jpg",
|
46
|
-
"spec/test_data/public/images/too_big_image.jpg",
|
47
|
-
"spec/test_data/public/marketing.js",
|
48
|
-
"spec/test_data/public/salog20.js",
|
49
|
-
"spec/test_data/public/sample.css",
|
50
|
-
"spec/test_data/public/seal.js",
|
51
|
-
"spec/test_data/public/set_cookies.js",
|
52
|
-
"spec/test_data/public/styles/boo.css",
|
53
|
-
"spec/test_data/public/styles/for_import.css",
|
54
|
-
"spec/test_data/public/temp.css",
|
55
|
-
"spec/test_data/public/test.css",
|
56
|
-
"spec/web_resource_bundler/content_management/block_data_spec.rb",
|
57
|
-
"spec/web_resource_bundler/content_management/block_parser_spec.rb",
|
58
|
-
"spec/web_resource_bundler/content_management/css_url_rewriter_spec.rb",
|
59
|
-
"spec/web_resource_bundler/content_management/resource_file_spec.rb",
|
60
|
-
"spec/web_resource_bundler/file_manager_spec.rb",
|
61
|
-
"spec/web_resource_bundler/filters/bundle_filter/filter_spec.rb",
|
62
|
-
"spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb",
|
63
|
-
"spec/web_resource_bundler/filters/cdn_filter_spec.rb",
|
64
|
-
"spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb",
|
65
|
-
"spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb",
|
66
|
-
"spec/web_resource_bundler/filters/image_encode_filter/image_data_spec.rb",
|
67
|
-
"spec/web_resource_bundler/settings_spec.rb",
|
68
|
-
"spec/web_resource_bundler/web_resource_bundler_spec.rb",
|
69
|
-
"web_resource_bundler.gemspec"
|
70
|
-
]
|
71
|
-
s.homepage = %q{https://github.com/railsware/web-bundler}
|
72
|
-
s.require_paths = ["lib"]
|
73
|
-
s.rubygems_version = %q{1.3.7}
|
74
|
-
s.summary = %q{lib for css and js content bundling and managment}
|
75
|
-
s.test_files = [
|
76
|
-
"spec/sample_block_helper.rb",
|
77
|
-
"spec/spec_helper.rb",
|
78
|
-
"spec/web_resource_bundler/content_management/block_data_spec.rb",
|
79
|
-
"spec/web_resource_bundler/content_management/block_parser_spec.rb",
|
80
|
-
"spec/web_resource_bundler/content_management/css_url_rewriter_spec.rb",
|
81
|
-
"spec/web_resource_bundler/content_management/resource_file_spec.rb",
|
82
|
-
"spec/web_resource_bundler/file_manager_spec.rb",
|
83
|
-
"spec/web_resource_bundler/filters/bundle_filter/filter_spec.rb",
|
84
|
-
"spec/web_resource_bundler/filters/bundle_filter/resource_packager_spec.rb",
|
85
|
-
"spec/web_resource_bundler/filters/cdn_filter_spec.rb",
|
86
|
-
"spec/web_resource_bundler/filters/image_encode_filter/css_generator_spec.rb",
|
87
|
-
"spec/web_resource_bundler/filters/image_encode_filter/filter_spec.rb",
|
88
|
-
"spec/web_resource_bundler/filters/image_encode_filter/image_data_spec.rb",
|
89
|
-
"spec/web_resource_bundler/settings_spec.rb",
|
90
|
-
"spec/web_resource_bundler/web_resource_bundler_spec.rb"
|
91
|
-
]
|
92
|
-
|
93
|
-
if s.respond_to? :specification_version then
|
94
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
95
|
-
s.specification_version = 3
|
96
|
-
|
97
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
98
|
-
s.add_development_dependency(%q<rspec>, ["= 1.3.1"])
|
99
|
-
else
|
100
|
-
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
101
|
-
end
|
102
|
-
else
|
103
|
-
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|