asset_hat 0.1.5 → 0.2.0

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.
Files changed (48) hide show
  1. data/HISTORY +13 -14
  2. data/README.rdoc +171 -0
  3. data/Rakefile +24 -2
  4. data/VERSION.yml +3 -3
  5. data/app/helpers/asset_hat_helper.rb +67 -61
  6. data/asset_hat.gemspec +42 -8
  7. data/doc/classes/AssetHat/CSS/Engines.html +118 -0
  8. data/doc/classes/AssetHat/CSS.html +194 -0
  9. data/doc/classes/AssetHat/JS/Engines.html +122 -0
  10. data/doc/classes/AssetHat/JS/Vendors.html +110 -0
  11. data/doc/classes/AssetHat/JS.html +151 -0
  12. data/doc/classes/AssetHat.html +446 -0
  13. data/doc/classes/AssetHatHelper.html +161 -0
  14. data/doc/created.rid +1 -0
  15. data/doc/files/HISTORY.html +116 -0
  16. data/doc/files/LICENSE.html +76 -0
  17. data/doc/files/README_rdoc.html +234 -0
  18. data/doc/files/app/helpers/asset_hat_helper_rb.html +55 -0
  19. data/doc/files/lib/asset_hat/capistrano_rb.html +49 -0
  20. data/doc/files/lib/asset_hat/css_rb.html +57 -0
  21. data/doc/files/lib/asset_hat/js/vendors_rb.html +49 -0
  22. data/doc/files/lib/asset_hat/js_rb.html +57 -0
  23. data/doc/files/lib/asset_hat/tasks/css_rb.html +49 -0
  24. data/doc/files/lib/asset_hat/tasks/js_rb.html +49 -0
  25. data/doc/files/lib/asset_hat/tasks_rb.html +58 -0
  26. data/doc/files/lib/asset_hat/vcs_rb.html +49 -0
  27. data/doc/files/lib/asset_hat/version_rb.html +49 -0
  28. data/doc/files/lib/asset_hat_rb.html +49 -0
  29. data/doc/fr_class_index.html +23 -0
  30. data/doc/fr_file_index.html +33 -0
  31. data/doc/fr_method_index.html +4455 -0
  32. data/doc/index.html +15 -0
  33. data/doc/rdoc-style.css +328 -0
  34. data/lib/asset_hat/capistrano.rb +14 -0
  35. data/lib/asset_hat/css.rb +40 -10
  36. data/lib/asset_hat/js/vendors.rb +85 -0
  37. data/lib/asset_hat/js.rb +28 -29
  38. data/lib/asset_hat/tasks/css.rb +151 -0
  39. data/lib/asset_hat/tasks/js.rb +100 -0
  40. data/lib/asset_hat/tasks.rb +4 -272
  41. data/lib/asset_hat/vcs.rb +23 -20
  42. data/lib/asset_hat/version.rb +2 -0
  43. data/lib/asset_hat.rb +94 -19
  44. data/tasks/asset_hat.rake +1 -1
  45. data/test/asset_hat_helper_test.rb +63 -9
  46. data/test/test_helper.rb +5 -1
  47. metadata +94 -26
  48. data/README.markdown +0 -154
data/HISTORY CHANGED
@@ -1,36 +1,35 @@
1
- HISTORY
2
- =======
1
+ = HISTORY
3
2
 
4
- Version 0.1.5 (2010-03-11)
5
- --------------------------
3
+ == Version 0.2.0 (2010-06-10)
4
+ * Added support for loading many more JS vendors from Google's CDN, including
5
+ Prototype, MooTools, and SWFObject.
6
+ * Cleaned up existing docs, and added complete RDoc documentation.
7
+ * Added example integration script for Capistrano deployments.
8
+
9
+ == Version 0.1.5 (2010-03-11)
6
10
  * Fixed fetching asset commit IDs in some environments. The bug was possibly
7
11
  caused by older versions of Git, which fail to read logs properly when given
8
12
  absolute paths, rather than relative paths.
9
13
  * Stopped app tests from running twice in some environments.
10
14
 
11
- Version 0.1.4 (2010-03-03)
12
- --------------------------
15
+ == Version 0.1.4 (2010-03-03)
13
16
  * Fixed config filepaths in `asset_hat:config` task.
14
17
 
15
- Version 0.1.3 (2010-03-03)
16
- --------------------------
18
+ == Version 0.1.3 (2010-03-03)
17
19
  * Allowed adding commit IDs and asset hosts to `url(/htc/...)` URLs (e.g.,
18
20
  `/htc/iepngfix.htc`) in CSS, not just images.
19
21
  * Changed `AssetHat.config` to memoize only if `cache?` is true. In
20
22
  development environments, this means the config file will be reread with
21
23
  every request.
22
24
 
23
- Version 0.1.2 (2010-01-27)
24
- --------------------------
25
+ == Version 0.1.2 (2010-01-27)
25
26
  * Memoized HTML output from `include_css` and `include_js` when
26
27
  `AssetHat.cache?` is true.
27
28
 
28
- Version 0.1.1 (2010-01-20)
29
- --------------------------
29
+ == Version 0.1.1 (2010-01-20)
30
30
  * Rewrote `AssetHat::VERSION` to be based on `VERSION.yml`.
31
31
  * Prefixed `AssetHat::CONFIG_FILEPATH` with `RAILS_ROOT`, which fixes ability
32
32
  to run an app's individual test files.
33
33
 
34
- Version 0.1.0 (2010-01-19)
35
- --------------------------
34
+ == Version 0.1.0 (2010-01-19)
36
35
  * Initial release.
data/README.rdoc ADDED
@@ -0,0 +1,171 @@
1
+ = AssetHat
2
+
3
+ Your assets are covered.
4
+
5
+ With Rails' default asset caching, CSS and JS are concatenated (not even
6
+ minified) the first time that bundle is requested. Not good enough. AssetHat
7
+ can automatically:
8
+
9
+ * Easily *minify* and *bundle* CSS and JS on deploy to reduce file sizes and
10
+ HTTP requests.
11
+ * Load popular <strong>third-party JS</strong> (like jQuery and Prototype)
12
+ from {<strong>Google's CDN</strong>}[http://code.google.com/apis/ajaxlibs/]
13
+ when in production, or from localhost in development.
14
+ * Force image URLs in your CSS to use <strong>CDN subdomains</strong>, not
15
+ just the current host.
16
+ * Add an image's last Git[http://git-scm.com/] commit ID to its CSS URLs to
17
+ <strong>bust browser caches</strong> (e.g.,
18
+ <code>/images/foo.png?ab12cd34e</code>).
19
+
20
+ After setup, you can use these in your layouts and views:
21
+
22
+ <%= include_css :bundle => 'application' %>
23
+ # => <link href="/stylesheets/bundles/application.min.css"
24
+ # media="screen,projection" rel="stylesheet" type="text/css" />
25
+
26
+ <%= include_js :bundles => ['plugins', 'common'] %>
27
+ # => <script src="/javascripts/bundles/plugins.min.js"
28
+ # type="text/javascript"></script>
29
+ # <script src="/javascripts/bundles/common.min.js"
30
+ # type="text/javascript"></script>
31
+
32
+ And this in your deploy script:
33
+
34
+ rake asset_hat:minify
35
+
36
+ Tested with Rails 2.3.x.
37
+
38
+
39
+
40
+ == Installation
41
+
42
+ 1. Install the gem:
43
+
44
+ gem install asset_hat
45
+
46
+ 2. Configure the gem:
47
+
48
+ * If you're using {Bundler 0.9+}[http://github.com/carlhuda/bundler]:
49
+
50
+ 1. Add to your app's Gemfile: <code>gem 'asset_hat', '0.x.x'</code>
51
+ 2. Command-line: <code>bundle install</code>
52
+
53
+ * If you're using Rails' <code>config.gem</code>, add to your app's
54
+ <code>config/environment.rb</code>:
55
+
56
+ config.gem 'asset_hat', :version => '0.x.x'
57
+
58
+ 3. Add to your app's Rakefile:
59
+
60
+ require 'asset_hat/tasks'
61
+
62
+
63
+
64
+ == Configuration
65
+
66
+ 1. Create the default config file:
67
+
68
+ rake asset_hat:config
69
+
70
+ 2. In your app, open the new file at <code>config/assets.yml</code>, and set
71
+ up your CSS/JS bundles according to that file's example.
72
+
73
+ 3. Minify your bundles:
74
+
75
+ rake asset_hat:minify
76
+
77
+ This minifies all of the CSS/JS files listed in
78
+ <code>config/assets.yml</code>, concatenates the minified code into bundle
79
+ files, and adds CDN asset hosts and cache-busting commit IDs to image URLs
80
+ in your CSS.
81
+
82
+ Bundles are created as new files in
83
+ <code>public/stylesheets/bundles/</code> and
84
+ <code>public/javascripts/bundles/</code>. Your original CSS/JS files
85
+ remain intact.
86
+
87
+ 4. Set your deployment script to run <code>rake asset_hat:minify</code> after
88
+ deploying your latest CSS/JS. This overwrites previously minified bundles,
89
+ and leaves your original CSS/JS files intact.
90
+
91
+ === Advanced configuration
92
+
93
+ If you manage deployments with Capistrano[http://www.capify.org/], see the
94
+ gem's packaged example at <code>lib/asset_hat/capistrano.rb</code>.
95
+
96
+ Additional settings are supported in <code>config/assets.yml</code>:
97
+
98
+ * <code>engine</code>: Indicates how CSS and JS are minified; omit this
99
+ setting to use the defaults. By default, CSS is minified with
100
+ rgrove/cssmin[http://github.com/rgrove/cssmin] (a Ruby port of Lecomte's
101
+ YUI Compressor and Schlueter's PHP cssmin), and JS is minified with
102
+ rgrove/jsmin[http://github.com/rgrove/jsmin] (a Ruby port of Crockford's
103
+ JSMin).
104
+
105
+ If the default engines cause problems by minifying too
106
+ strongly, try switching each to <code>weak</code>. The <code>weak</code>
107
+ engines are much safer, but don't save as many bytes.
108
+
109
+ * <code>vendors</code>: Currently only allows for setting the jQuery version
110
+ number:
111
+
112
+ js:
113
+ vendors:
114
+ jquery:
115
+ version: 1.4
116
+
117
+ In the future, this will be used for configuring the retrieval of other
118
+ third-party code.
119
+
120
+
121
+
122
+ == Usage
123
+
124
+ In your layouts and views, instead of these:
125
+
126
+ <%= stylesheet_link_tag 'reset', 'application', 'clearfix',
127
+ :media => 'screen,projection',
128
+ :cache => 'bundles/application' %>
129
+ <%= javascript_include_tag 'plugin-1', 'plugin-2', 'plugin-3',
130
+ :cache => 'bundles/application' %>
131
+
132
+ <strong>Use these:</strong>
133
+
134
+ <%= include_css :bundle => 'application' %>
135
+ <%= include_js :bundle => 'application' %>
136
+
137
+ These turn into:
138
+
139
+ <link href="/stylesheets/bundles/application.min.css"
140
+ media="screen,projection" rel="stylesheet" type="text/css" />
141
+ <script src="/javascripts/bundles/application.min.js"
142
+ type="text/javascript"></script>
143
+
144
+ Have an enormous app? You can integrate gradually, using AssetHat alongside
145
+ Rails' default asset caching.
146
+
147
+ If your environment has <code>config.action_controller.perform_caching</code>
148
+ set to <code>true</code> (e.g., in production), the layout/view will include
149
+ minified bundle files. Otherwise, the separate, unminified files will be
150
+ included, based on the bundle contents you define in
151
+ <code>config/assets.yml</code>.
152
+
153
+ === Advanced usage
154
+
155
+ You can also include single files as expected:
156
+
157
+ <%= include_css 'reset', 'application' %>
158
+ <%= include_js 'plugin.min', 'application' %>
159
+
160
+ Or include multiple bundles at once:
161
+
162
+ <%= include_js :bundles => %w[plugins common] %>
163
+
164
+ When including multiple bundles at once, this yields one
165
+ <code><link></code> or <code><script></code> element per bundle.
166
+
167
+ You may want to use multiple bundles to separate plugins (rarely changed) from
168
+ application code (frequently changed). If all code is in one huge bundle, then
169
+ whenever there's a change, browsers have to re-download the whole bundle. By
170
+ using multiple bundles based on change frequency, browsers cache the rarely
171
+ changed code, and only re-download the frequently changed code.
data/Rakefile CHANGED
@@ -1,4 +1,6 @@
1
- require File.join(File.dirname(__FILE__), %w[lib asset_hat tasks])
1
+ require 'rake/testtask'
2
+ # require 'rake/rdoctask'
3
+ require 'hanna/rdoctask'
2
4
 
3
5
  begin
4
6
  require 'jeweler'
@@ -11,8 +13,9 @@ begin
11
13
  gemspec.authors = ['Ron DeVera', 'Mint Digital']
12
14
  gemspec.email = %q{ronald.devera@gmail.com}
13
15
 
14
- gemspec.add_development_dependency 'shoulda', '>= 2.10.2'
15
16
  gemspec.add_development_dependency 'flexmock', '>= 0.8.6'
17
+ gemspec.add_development_dependency 'hanna', '>= 0.1.12'
18
+ gemspec.add_development_dependency 'shoulda', '>= 2.10.2'
16
19
  gemspec.add_runtime_dependency 'cssmin', '>= 1.0.2'
17
20
  gemspec.add_runtime_dependency 'jsmin', '>= 1.0.1'
18
21
  end
@@ -20,3 +23,22 @@ begin
20
23
  rescue LoadError
21
24
  puts 'Jeweler is not available. Install it with: `gem install jeweler`'
22
25
  end
26
+
27
+ Rake::TestTask.new(:test) do |t|
28
+ t.libs << 'lib' << 'test'
29
+ t.pattern = 'test/*_test.rb'
30
+ t.verbose = true
31
+ end
32
+
33
+ task :default => :test
34
+
35
+ desc 'Generate documentation'
36
+ Rake::RDocTask.new(:rdoc) do |rdoc|
37
+ rdoc.rdoc_dir = 'doc'
38
+ rdoc.title = 'AssetHat'
39
+ rdoc.main = 'README.rdoc'
40
+ rdoc.options += %w[--line-numbers --inline-source]
41
+ %w[README.rdoc HISTORY LICENSE app/* lib/*].each do |path|
42
+ rdoc.rdoc_files.include(path)
43
+ end
44
+ end
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 1
4
- :patch: 5
5
- :build:
3
+ :minor: 2
4
+ :patch: 0
5
+ :build:
@@ -1,11 +1,13 @@
1
+ # Helpers for use in layouts for global includes, and in views for
2
+ # view-specific includes.
1
3
  module AssetHatHelper
2
4
  unless defined?(RAILS_ROOT)
3
5
  RAILS_ROOT = File.join(File.dirname(__FILE__), '..', '..')
4
6
  end
5
7
 
6
- def include_assets(type, *args)
7
- # `include_css` and `include_js` are recommended instead.
8
-
8
+ # Includes CSS or JS files. <code>include_css</code> and
9
+ # <code>include_js</code> are recommended instead.
10
+ def include_assets(type, *args) #:nodoc:
9
11
  type = type.to_sym
10
12
  allowed_types = AssetHat::TYPES
11
13
  unless allowed_types.include?(type)
@@ -65,7 +67,9 @@ module AssetHatHelper
65
67
  # development environments), skip this, and instead default to Rails'
66
68
  # mtime-based cache busting.
67
69
  sources.map! do |src|
68
- if src =~ /^bundles\//
70
+ if src =~ %r{^http(s?)://} || src =~ %r{^//}
71
+ # Absolute URL; do nothing
72
+ elsif src =~ /^bundles\//
69
73
  # Get commit ID of bundle file with most recently committed update
70
74
  bundle = src.match(/^bundles\/(.*)\.min\.#{type}$/)[1]
71
75
  commit_id = AssetHat.last_bundle_commit_id(bundle, type)
@@ -91,30 +95,31 @@ module AssetHatHelper
91
95
  else nil
92
96
  end
93
97
  end.join("\n")
94
- end
95
-
98
+ end # def include_assets
99
+
100
+ # <code>include_css</code> is a smart wrapper for Rails'
101
+ # <code>stylesheet_link_tag</code>. The two can be used together while
102
+ # migrating to AssetHat.
103
+ #
104
+ # Include a single stylesheet:
105
+ # include_css 'diagnostics'
106
+ # => <link href="/stylesheets/diagnostics.min.css" media="screen,projection" rel="stylesheet" type="text/css" />
107
+ #
108
+ # Include a single unminified stylesheet:
109
+ # include_css 'diagnostics.css'
110
+ # => <link href="/stylesheets/diagnostics.css" media="screen,projection" rel="stylesheet" type="text/css" />
111
+ #
112
+ # Include a bundle of stylesheets (i.e., a concatenated set of
113
+ # stylesheets; configure in config/assets.yml):
114
+ # include_css :bundle => 'application'
115
+ # => <link href="/stylesheets/bundles/application.min.css" ... />
116
+ #
117
+ # Include multiple stylesheets separately (not as cool):
118
+ # include_css 'reset', 'application', 'clearfix'
119
+ # => <link href="/stylesheets/reset.min.css" ... />
120
+ # <link href="/stylesheets/application.min.css" ... />
121
+ # <link href="/stylesheets/clearfix.min.css" ... />
96
122
  def include_css(*args)
97
- # Usage:
98
- #
99
- # Include a single stylesheet:
100
- # include_css 'diagnostics'
101
- # => <link href="/stylesheets/diagnostics.min.css" media="screen,projection" rel="stylesheet" type="text/css" />
102
- #
103
- # Include a single unminified stylesheet:
104
- # include_css 'diagnostics.css'
105
- # => <link href="/stylesheets/diagnostics.css" media="screen,projection" rel="stylesheet" type="text/css" />
106
- #
107
- # Include a bundle of stylesheets (i.e., a concatenated set of
108
- # stylesheets; configure in config/assets.yml):
109
- # include_css :bundle => 'application'
110
- # => <link href="/stylesheets/bundles/application.min.css" ... />
111
- #
112
- # Include multiple stylesheets separately (not as cool):
113
- # include_css 'reset', 'application', 'clearfix'
114
- # => <link href="/stylesheets/reset.min.css" ... />
115
- # <link href="/stylesheets/application.min.css" ... />
116
- # <link href="/stylesheets/clearfix.min.css" ... />
117
-
118
123
  return if args.blank?
119
124
 
120
125
  AssetHat.html_cache ||= {}
@@ -130,41 +135,42 @@ module AssetHatHelper
130
135
  html
131
136
  end
132
137
 
138
+ # <code>include_js</code> is a smart wrapper for Rails'
139
+ # <code>javascript_include_tag</code>. The two can be used together while
140
+ # migrating to AssetHat.
141
+ #
142
+ # Include a single JS file:
143
+ # include_js 'application'
144
+ # => <script src="/javascripts/application.min.js" type="text/javascript"></script>
145
+ #
146
+ # Include a single JS unminified file:
147
+ # include_js 'application.js'
148
+ # => <script src="/javascripts/application.js" type="text/javascript"></script>
149
+ #
150
+ # Include jQuery:
151
+ # include_js :jquery # Development/test environment
152
+ # => <script src="/javascripts/jquery-VERSION.min.js" ...></script>
153
+ # include_js :jquery # Staging/production environment
154
+ # => <script src="http://ajax.googleapis.com/.../jquery.min.js" ...></script>
155
+ # # Set jQuery versions either in `config/assets.yml`, or by using
156
+ # # `include_js :jquery, :version => '1.4'`.
157
+ #
158
+ # Include a bundle of JS files (i.e., a concatenated set of files;
159
+ # configure in config/assets.yml):
160
+ # include_js :bundle => 'application'
161
+ # => <script src="/javascripts/bundles/application.min.js" ...></script>
162
+ #
163
+ # Include multiple bundles of JS files:
164
+ # include_js :bundles => %w[plugins common]
165
+ # => <script src="/javascripts/bundles/plugins.min.js" ...></script>
166
+ # <script src="/javascripts/bundles/common.min.js" ...></script>
167
+ #
168
+ # Include multiple JS files separately (not as cool):
169
+ # include_js 'bloombox', 'jquery.cookie', 'jquery.json.min'
170
+ # => <script src="/javascripts/bloombox.min.js" ...></script>
171
+ # <script src="/javascripts/jquery.cookie.min.js" ...></script>
172
+ # <script src="/javascripts/jquery.json.min.js" ...></script>
133
173
  def include_js(*args)
134
- # Usage:
135
- #
136
- # Include a single JS file:
137
- # include_js 'application'
138
- # => <script src="/javascripts/application.min.js" type="text/javascript"></script>
139
- #
140
- # Include a single JS unminified file:
141
- # include_js 'application.js'
142
- # => <script src="/javascripts/application.js" type="text/javascript"></script>
143
- #
144
- # Include jQuery:
145
- # include_js :jquery # Development/test environment
146
- # => <script src="/javascripts/jquery-VERSION.min.js" ...></script>
147
- # include_js :jquery # Staging/production environment
148
- # => <script src="http://ajax.googleapis.com/.../jquery.min.js" ...></script>
149
- # # Set jQuery versions either in `config/assets.yml`, or by using
150
- # # `include_js :jquery, :version => '1.4'`.
151
- #
152
- # Include a bundle of JS files (i.e., a concatenated set of files;
153
- # configure in config/assets.yml):
154
- # include_js :bundle => 'application'
155
- # => <script src="/javascripts/bundles/application.min.js" ...></script>
156
- #
157
- # Include multiple bundles of JS files:
158
- # include_js :bundles => %w[plugins common]
159
- # => <script src="/javascripts/bundles/plugins.min.js" ...></script>
160
- # <script src="/javascripts/bundles/common.min.js" ...></script>
161
- #
162
- # Include multiple JS files separately (not as cool):
163
- # include_js 'bloombox', 'jquery.cookie', 'jquery.json.min'
164
- # => <script src="/javascripts/bloombox.min.js" ...></script>
165
- # <script src="/javascripts/jquery.cookie.min.js" ...></script>
166
- # <script src="/javascripts/jquery.json.min.js" ...></script>
167
-
168
174
  return if args.blank?
169
175
 
170
176
  AssetHat.html_cache ||= {}
data/asset_hat.gemspec CHANGED
@@ -5,31 +5,62 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{asset_hat}
8
- s.version = "0.1.5"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ron DeVera", "Mint Digital"]
12
- s.date = %q{2010-03-11}
12
+ s.date = %q{2010-06-10}
13
13
  s.description = %q{Minify, bundle, and optimize CSS/JS assets.}
14
14
  s.email = %q{ronald.devera@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.markdown"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".gitignore",
21
21
  "HISTORY",
22
22
  "LICENSE",
23
- "README.markdown",
23
+ "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION.yml",
26
26
  "app/helpers/asset_hat_helper.rb",
27
27
  "asset_hat.gemspec",
28
28
  "config/assets.yml",
29
+ "doc/classes/AssetHat.html",
30
+ "doc/classes/AssetHat/CSS.html",
31
+ "doc/classes/AssetHat/CSS/Engines.html",
32
+ "doc/classes/AssetHat/JS.html",
33
+ "doc/classes/AssetHat/JS/Engines.html",
34
+ "doc/classes/AssetHat/JS/Vendors.html",
35
+ "doc/classes/AssetHatHelper.html",
36
+ "doc/created.rid",
37
+ "doc/files/HISTORY.html",
38
+ "doc/files/LICENSE.html",
39
+ "doc/files/README_rdoc.html",
40
+ "doc/files/app/helpers/asset_hat_helper_rb.html",
41
+ "doc/files/lib/asset_hat/capistrano_rb.html",
42
+ "doc/files/lib/asset_hat/css_rb.html",
43
+ "doc/files/lib/asset_hat/js/vendors_rb.html",
44
+ "doc/files/lib/asset_hat/js_rb.html",
45
+ "doc/files/lib/asset_hat/tasks/css_rb.html",
46
+ "doc/files/lib/asset_hat/tasks/js_rb.html",
47
+ "doc/files/lib/asset_hat/tasks_rb.html",
48
+ "doc/files/lib/asset_hat/vcs_rb.html",
49
+ "doc/files/lib/asset_hat/version_rb.html",
50
+ "doc/files/lib/asset_hat_rb.html",
51
+ "doc/fr_class_index.html",
52
+ "doc/fr_file_index.html",
53
+ "doc/fr_method_index.html",
54
+ "doc/index.html",
55
+ "doc/rdoc-style.css",
29
56
  "lib/asset_hat.rb",
57
+ "lib/asset_hat/capistrano.rb",
30
58
  "lib/asset_hat/css.rb",
31
59
  "lib/asset_hat/js.rb",
60
+ "lib/asset_hat/js/vendors.rb",
32
61
  "lib/asset_hat/tasks.rb",
62
+ "lib/asset_hat/tasks/css.rb",
63
+ "lib/asset_hat/tasks/js.rb",
33
64
  "lib/asset_hat/vcs.rb",
34
65
  "lib/asset_hat/version.rb",
35
66
  "public/javascripts/bundles/js-bundle-1.min.js",
@@ -65,7 +96,7 @@ Gem::Specification.new do |s|
65
96
  s.homepage = %q{http://github.com/mintdigital/asset_hat}
66
97
  s.rdoc_options = ["--charset=UTF-8"]
67
98
  s.require_paths = ["lib"]
68
- s.rubygems_version = %q{1.3.5}
99
+ s.rubygems_version = %q{1.3.6}
69
100
  s.summary = %q{Your assets are covered.}
70
101
  s.test_files = [
71
102
  "test/asset_hat_helper_test.rb",
@@ -78,19 +109,22 @@ Gem::Specification.new do |s|
78
109
  s.specification_version = 3
79
110
 
80
111
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
81
- s.add_development_dependency(%q<shoulda>, [">= 2.10.2"])
82
112
  s.add_development_dependency(%q<flexmock>, [">= 0.8.6"])
113
+ s.add_development_dependency(%q<hanna>, [">= 0.1.12"])
114
+ s.add_development_dependency(%q<shoulda>, [">= 2.10.2"])
83
115
  s.add_runtime_dependency(%q<cssmin>, [">= 1.0.2"])
84
116
  s.add_runtime_dependency(%q<jsmin>, [">= 1.0.1"])
85
117
  else
86
- s.add_dependency(%q<shoulda>, [">= 2.10.2"])
87
118
  s.add_dependency(%q<flexmock>, [">= 0.8.6"])
119
+ s.add_dependency(%q<hanna>, [">= 0.1.12"])
120
+ s.add_dependency(%q<shoulda>, [">= 2.10.2"])
88
121
  s.add_dependency(%q<cssmin>, [">= 1.0.2"])
89
122
  s.add_dependency(%q<jsmin>, [">= 1.0.1"])
90
123
  end
91
124
  else
92
- s.add_dependency(%q<shoulda>, [">= 2.10.2"])
93
125
  s.add_dependency(%q<flexmock>, [">= 0.8.6"])
126
+ s.add_dependency(%q<hanna>, [">= 0.1.12"])
127
+ s.add_dependency(%q<shoulda>, [">= 2.10.2"])
94
128
  s.add_dependency(%q<cssmin>, [">= 1.0.2"])
95
129
  s.add_dependency(%q<jsmin>, [">= 1.0.1"])
96
130
  end
@@ -0,0 +1,118 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: AssetHat::CSS::Engines [AssetHat]</title>
5
+ <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
6
+ <link href='../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Module</span>
30
+ AssetHat::CSS::Engines
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../../files/lib/asset_hat/css_rb.html">lib/asset_hat/css.rb</a>
35
+ </li>
36
+ </ol>
37
+ </div>
38
+ <div id='content'>
39
+ <div id='text'>
40
+ <div id='description'>
41
+ <p>
42
+ Swappable <a href="../CSS.html">CSS</a> minification engines.
43
+ </p>
44
+ </div>
45
+ <div id='method-list'>
46
+ <h2>Methods</h2>
47
+ <h3>public class</h3>
48
+ <ol>
49
+ <li><a href="#M000017">cssmin</a></li>
50
+ <li><a href="#M000016">weak</a></li>
51
+ </ol>
52
+ </div>
53
+ <div id='section'>
54
+ <div id='methods'>
55
+ <h2>Public class methods</h2>
56
+ <div class='method public-class' id='method-M000017'>
57
+ <a name='M000017'></a>
58
+ <div class='synopsis'>
59
+ <span class='name'>cssmin</span>
60
+ <span class='arguments'>(input_string)</span>
61
+ </div>
62
+ <div class='description'>
63
+ <p>
64
+ <a href="../CSS.html">CSS</a> minification engine that simply uses the
65
+ CSSMin gem, a Ruby port of Lecomte&#8217;s YUI Compressor and
66
+ Schlueter&#8217;s PHP cssmin.
67
+ </p>
68
+ <p>
69
+ Sources:
70
+ </p>
71
+ <ul>
72
+ <li><a href="http://github.com/rgrove/cssmin">github.com/rgrove/cssmin</a>
73
+
74
+ </li>
75
+ <li><a href="http://rubygems.org/gems/cssmin">rubygems.org/gems/cssmin</a>
76
+
77
+ </li>
78
+ </ul>
79
+ </div>
80
+ <div class='source'>
81
+ <a class='source-toggle' href='#' onclick="toggleCode('M000017-source'); return false">
82
+ [show source]
83
+ </a>
84
+ <pre id='M000017-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 105</span>&#x000A;105: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">cssmin</span>(<span class="ruby-identifier">input_string</span>)&#x000A;106: <span class="ruby-constant">CSSMin</span>.<span class="ruby-identifier">minify</span>(<span class="ruby-identifier">input_string</span>)&#x000A;107: <span class="ruby-keyword kw">end</span></pre>
85
+ </div>
86
+ </div>
87
+ <div class='method public-class' id='method-M000016'>
88
+ <a name='M000016'></a>
89
+ <div class='synopsis'>
90
+ <span class='name'>weak</span>
91
+ <span class='arguments'>(input_string)</span>
92
+ </div>
93
+ <div class='description'>
94
+ <p>
95
+ Barebones <a href="../CSS.html">CSS</a> minification engine that only
96
+ strips whitespace from the start and end of every line, including
97
+ linebreaks. For safety, doesn&#8217;t attempt to parse the <a
98
+ href="../CSS.html">CSS</a> itself.
99
+ </p>
100
+ </div>
101
+ <div class='source'>
102
+ <a class='source-toggle' href='#' onclick="toggleCode('M000016-source'); return false">
103
+ [show source]
104
+ </a>
105
+ <pre id='M000016-source'> <span class="ruby-comment cmt"># File lib/asset_hat/css.rb, line 83</span>&#x000A;83: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weak</span>(<span class="ruby-identifier">input_string</span>)&#x000A;84: <span class="ruby-identifier">input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">input_string</span>)&#x000A;85: <span class="ruby-identifier">output</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>&#x000A;86: &#x000A;87: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>&#x000A;88: <span class="ruby-comment cmt"># Remove indentation and trailing whitespace (including line breaks)</span>&#x000A;89: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>&#x000A;90: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">blank?</span>&#x000A;91: &#x000A;92: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">line</span>&#x000A;93: <span class="ruby-keyword kw">end</span>&#x000A;94: &#x000A;95: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">rewind</span>&#x000A;96: <span class="ruby-identifier">output</span>.<span class="ruby-identifier">read</span>&#x000A;97: <span class="ruby-keyword kw">end</span></pre>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ <div id='footer-push'></div>
113
+ </div>
114
+ <div id='footer'>
115
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
116
+ </div>
117
+ </body>
118
+ </html>