jekyll-assets 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -56,6 +56,10 @@ You can fine-tune configuration by editing your `_config.yml`:
56
56
  #
57
57
  dirname: assets
58
58
  #
59
+ # Base URL of assets paths.
60
+ #
61
+ baseurl: /assets/
62
+ #
59
63
  # Pathnames where to find assets relative to the root of the site.
60
64
  #
61
65
  sources:
@@ -45,6 +45,14 @@ module Jekyll
45
45
  #
46
46
  # Default: 'assets'
47
47
  #
48
+ #
49
+ # ##### baseurl
50
+ #
51
+ # Base URL for assets paths. By default equals dirname surrunded with
52
+ # slashes. You ight want to change it if your blog has baseurl configuration
53
+ # and served not from the root of the server, or if you want to keep your
54
+ # assets on CDN.
55
+ #
48
56
  class Configuration < OpenStruct
49
57
  @@defaults = {
50
58
  :dirname => 'assets',
@@ -60,6 +68,9 @@ module Jekyll
60
68
  self.bundles = [ self.bundles ] if self.bundles.is_a? String
61
69
  self.compress = OpenStruct.new(self.compress)
62
70
  self.dirname = self.dirname.gsub(/^\/+|\/+$/, '')
71
+
72
+ # if baseurl not given - autoguess base on dirname
73
+ self.baseurl ||= "/#{self.dirname}/".squeeze '/'
63
74
  end
64
75
 
65
76
  # Returns bundles array with pattern strings converted to RegExps
@@ -57,7 +57,7 @@ module Jekyll
57
57
  JAVASCRIPT = '<script type="text/javascript" src="%s"></script>'
58
58
  EXTENSIONS = { 'stylesheet' => '.css', 'javascript' => '.js' }
59
59
 
60
- @@errors = Set.new
60
+ @@errors = Set.new
61
61
 
62
62
  def initialize tag_name, logical_path, tokens
63
63
  super
@@ -108,7 +108,7 @@ module Jekyll
108
108
  def render_asset_path context
109
109
  with_asset context do |asset, site|
110
110
  return asset_not_bundled unless site.has_bundled_asset? asset
111
- return "/#{site.assets_config.dirname}/#{asset.digest_path}"
111
+ return "#{site.assets_config.baseurl.chomp '/'}/#{asset.digest_path}"
112
112
  end
113
113
  end
114
114
 
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module AssetsPlugin
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -6,6 +6,7 @@ module Jekyll::AssetsPlugin
6
6
  let(:defaults) do
7
7
  {
8
8
  :dirname => 'assets',
9
+ :baseurl => '/assets/',
9
10
  :sources => %w{_assets/javascripts _assets/stylesheets _assets/images},
10
11
  :bundles => %w{app.css app.js **.jpg **.png **.gif}
11
12
  }
@@ -19,6 +20,11 @@ module Jekyll::AssetsPlugin
19
20
  it { should == defaults[:dirname] }
20
21
  end
21
22
 
23
+ context 'assets baseurl' do
24
+ subject { config.baseurl }
25
+ it { should == defaults[:baseurl] }
26
+ end
27
+
22
28
  context 'sources list' do
23
29
  subject { config.sources }
24
30
  it { should =~ defaults[:sources] }
@@ -53,6 +59,25 @@ module Jekyll::AssetsPlugin
53
59
  config.compress.css.should == 'sass'
54
60
  end
55
61
 
62
+ context '#baseurl' do
63
+ it 'should respect explicit overrides' do
64
+ config = Configuration.new({
65
+ :dirname => 'foo',
66
+ :baseurl => '/bar/'
67
+ })
68
+
69
+ config.baseurl.should == '/bar/'
70
+ end
71
+
72
+ it 'should be auto-guessed from dirname' do
73
+ config = Configuration.new({
74
+ :dirname => 'foo'
75
+ })
76
+
77
+ config.baseurl.should == '/foo/'
78
+ end
79
+ end
80
+
56
81
  context '#js_compressor' do
57
82
  context 'when js compressor is given as "uglify"' do
58
83
  let(:config){ Configuration.new(:compress => {:js => 'uglify'}) }
@@ -76,6 +76,12 @@ module Jekyll::AssetsPlugin
76
76
  subject { render('{% asset_path vapor.js %}') }
77
77
  it { should be_empty }
78
78
  end
79
+
80
+ context 'with baseurl given as /foobar/' do
81
+ before { context[:registers][:site].assets_config.baseurl = '/foobar/' }
82
+ subject { render('{% asset_path app.css %}') }
83
+ it { should match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
84
+ end
79
85
  end
80
86
 
81
87
  context '{% asset <file.ext> %}' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-10-22 00:00:00.000000000 Z
14
+ date: 2012-12-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: jekyll
@@ -164,24 +164,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
164
  - - ! '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
- segments:
168
- - 0
169
- hash: 346987987
170
167
  required_rubygems_version: !ruby/object:Gem::Requirement
171
168
  none: false
172
169
  requirements:
173
170
  - - ! '>='
174
171
  - !ruby/object:Gem::Version
175
172
  version: '0'
176
- segments:
177
- - 0
178
- hash: 346987987
179
173
  requirements: []
180
174
  rubyforge_project:
181
175
  rubygems_version: 1.8.23
182
176
  signing_key:
183
177
  specification_version: 3
184
- summary: jekyll-assets-0.1.1
178
+ summary: jekyll-assets-0.1.2
185
179
  test_files:
186
180
  - spec/fixtures/.gitignore
187
181
  - spec/fixtures/_assets/app.css.erb
@@ -201,3 +195,4 @@ test_files:
201
195
  - spec/lib/jekyll/assets_plugin/tag_spec.rb
202
196
  - spec/spec_helper.rb
203
197
  - spec/support/fixtures_path.rb
198
+ has_rdoc: