web_resource_bundler 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|