nanoc-cachebuster 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gemspec
data/HISTORY.md CHANGED
@@ -1,5 +1,16 @@
1
- # 0.0.1
1
+ # 0.2.0
2
+
3
+ * Nanoc 3.3 compatibility (by John Nishinaga)
4
+
5
+ # 0.1.1
6
+
7
+ * Bugfix: no longer raise exception when an item has no content_filename attribute.
8
+
9
+ # 0.1.0
2
10
 
3
11
  * No more re-calculation of fingerprints, just use the routed filename.
12
+
13
+ # 0.1.0
14
+
4
15
  * Refactored into separate strategies.
5
- * First, direct extraction.
16
+ * First, direct extraction.
data/README.md CHANGED
@@ -29,7 +29,9 @@ install this gem:
29
29
 
30
30
  Then load it via your project Gemfile or in `./lib/default.rb`:
31
31
 
32
- require 'nanoc3/cachebuster'
32
+ ```ruby
33
+ require 'nanoc/cachebuster'
34
+ ```
33
35
 
34
36
  Usage
35
37
  =====
@@ -41,21 +43,27 @@ replace any references to the regularly-named file to the rewritten one.
41
43
 
42
44
  So, when you include a stylesheet:
43
45
 
44
- <link rel="stylesheet" href="styles.css">
46
+ ```html
47
+ <link rel="stylesheet" href="styles.css">
48
+ ```
45
49
 
46
50
  And you rewrite the output of the file to include a fingerprint:
47
51
 
48
- # in your ./lib/default.rb
49
- include Nanoc3::Helpers::CacheBusting
50
- # in ./Rules
51
- route '/styles/' do
52
- fp = fingerprint(item[:filename])
53
- item.identifier.chop + fp + '.css'
54
- end
52
+ ```ruby
53
+ # in your ./lib/default.rb
54
+ include Nanoc::Helpers::CacheBusting
55
+ # in ./Rules
56
+ route '/styles/' do
57
+ fp = fingerprint(item[:filename])
58
+ item.identifier.chop + fp + '.css'
59
+ end
60
+ ```
55
61
 
56
62
  The filter will change your HTML on compilation to:
57
63
 
58
- <link rel="stylesheet" href="styles-cb7a4bb98ef.css">
64
+ ```html
65
+ <link rel="stylesheet" href="styles-cb7a4bb98ef.css">
66
+ ```
59
67
 
60
68
  You get simple, content-based cachebusters for free. All that is left for you
61
69
  to do is set some far-future expires header in your server configuration.
@@ -79,3 +87,4 @@ Credits
79
87
 
80
88
  * **Author**: Arjan van der Gaag <arjan@arjanvandergaag.nl>
81
89
  * **License**: MIT License (same as Ruby, see LICENSE)
90
+ * **With contributions from**: John Nishinaga
data/Rakefile CHANGED
@@ -1,19 +1,12 @@
1
- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
- require 'nanoc3/cachebuster/version'
3
-
4
- task :build do
5
- sh 'gem build nanoc-cachebuster.gemspec'
6
- end
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
7
3
 
8
- desc 'Install the gem locally'
9
- task :install => :build do
10
- sh "gem install nanoc-cachebuster-#{Nanoc3::Cachebuster::VERSION}.gem"
11
- end
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task :default => :spec
12
7
 
13
- task :push do
14
- sh 'git push origin master'
15
- sh 'git push --tags'
16
- end
8
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
9
+ require 'nanoc/cachebuster/version'
17
10
 
18
11
  task :log do
19
12
  changes = `git log --oneline $(git describe --abbrev=0 2>/dev/null)..HEAD`
@@ -23,7 +16,7 @@ task :log do
23
16
  path = File.expand_path('../HISTORY.md', __FILE__)
24
17
 
25
18
  original_content = File.read(path)
26
- addition = "# #{Nanoc3::Cachebuster::VERSION}\n\n#{changes}"
19
+ addition = "# #{Nanoc::Cachebuster::VERSION}\n\n#{changes}"
27
20
  puts addition
28
21
 
29
22
  File.open(path, 'w') do |f|
@@ -31,14 +24,9 @@ task :log do
31
24
  end
32
25
  end
33
26
 
34
- desc 'Push code upstream, build and publish the gem'
35
- task :release => [:install, :push] do
36
- sh "gem push nanoc-cachebuster-#{Nanoc3::Cachebuster::VERSION}.gem"
37
- end
38
-
39
27
  desc 'Print current version number'
40
28
  task :version do
41
- puts Nanoc3::Cachebuster::VERSION
29
+ puts Nanoc::Cachebuster::VERSION
42
30
  end
43
31
 
44
32
  class Version
@@ -60,7 +48,7 @@ class Version
60
48
  end
61
49
 
62
50
  def write
63
- file = File.expand_path('../lib/nanoc3/cachebuster/version.rb', __FILE__)
51
+ file = File.expand_path('../lib/nanoc/cachebuster/version.rb', __FILE__)
64
52
  original_contents = File.read(file)
65
53
  File.open(file, 'w') do |f|
66
54
  f.write original_contents.gsub(/VERSION = ('|")\d+\.\d+\.\d+\1/, "VERSION = '#{to_s}'")
@@ -74,17 +62,17 @@ namespace :version do
74
62
  namespace :bump do
75
63
  desc 'Bump a major version'
76
64
  task :major do
77
- Version.new(Nanoc3::Cachebuster::VERSION).bump(:major).write
65
+ Version.new(Nanoc::Cachebuster::VERSION).bump(:major).write
78
66
  end
79
67
 
80
68
  desc 'Bump a minor version'
81
69
  task :minor do
82
- Version.new(Nanoc3::Cachebuster::VERSION).bump(:minor).write
70
+ Version.new(Nanoc::Cachebuster::VERSION).bump(:minor).write
83
71
  end
84
72
 
85
73
  desc 'Bump a patch version'
86
74
  task :patch do
87
- Version.new(Nanoc3::Cachebuster::VERSION).bump(:patch).write
75
+ Version.new(Nanoc::Cachebuster::VERSION).bump(:patch).write
88
76
  end
89
77
  end
90
78
  end
@@ -1,7 +1,7 @@
1
- require 'nanoc3'
1
+ require 'nanoc'
2
2
  require 'digest'
3
3
 
4
- module Nanoc3
4
+ module Nanoc
5
5
  module Cachebuster
6
6
  autoload :VERSION, 'cachebuster/version'
7
7
 
@@ -1,6 +1,6 @@
1
1
  require 'pathname'
2
2
 
3
- module Nanoc3
3
+ module Nanoc
4
4
  module Cachebuster
5
5
  # The Strategy is a way to deal with an input file. The Cache busting filter
6
6
  # will use a strategy to process all references. You may want to use different
@@ -17,7 +17,7 @@ module Nanoc3
17
17
 
18
18
  def self.for(kind, site, item)
19
19
  klass = @subclasses[kind]
20
- raise Nanoc3::Cachebuster::NoSuchStrategy.new "No strategy found for #{kind}" unless klass
20
+ raise Nanoc::Cachebuster::NoSuchStrategy.new "No strategy found for #{kind}" unless klass
21
21
  klass.new(site, item)
22
22
  end
23
23
 
@@ -28,12 +28,12 @@ module Nanoc3
28
28
  # future portability we might as well carry the entire site object
29
29
  # over.
30
30
  #
31
- # @return <Nanoc3::Site>
31
+ # @return <Nanoc::Site>
32
32
  attr_reader :site
33
33
 
34
34
  # The Nanoc item we are currently filtering.
35
35
  #
36
- # @return <Nanoc3::Item>
36
+ # @return <Nanoc::Item>
37
37
  attr_reader :current_item
38
38
 
39
39
  def initialize(site, current_item)
@@ -70,12 +70,12 @@ module Nanoc3
70
70
 
71
71
  matching_item = site.items.find do |i|
72
72
  next unless i.path # some items don't have an output path. Ignore those.
73
- i.path.sub(/#{Nanoc3::Cachebuster::CACHEBUSTER_PREFIX}[a-zA-Z0-9]{9}(?=\.)/o, '') == path
73
+ i.path.sub(/#{Nanoc::Cachebuster::CACHEBUSTER_PREFIX}[a-zA-Z0-9]{9}(?=\.)/o, '') == path
74
74
  end
75
75
 
76
76
  # Raise an exception to indicate we should leave this reference alone
77
77
  unless matching_item
78
- raise Nanoc3::Cachebuster::NoSuchSourceFile, 'No source file found matching ' + input_path
78
+ raise Nanoc::Cachebuster::NoSuchSourceFile, 'No source file found matching ' + input_path
79
79
  end
80
80
 
81
81
  # keep using an absolute path if the input reference did so...
@@ -83,8 +83,8 @@ module Nanoc3
83
83
 
84
84
  # ... if not, recreate the relative path to referenced file from
85
85
  # the current file path.
86
- current_path = Pathname.new(File.dirname(current_item.path))
87
- target_path = Pathname.new(File.dirname(matching_item.path))
86
+ current_path = Pathname.new(File.dirname(current_item.path.sub(/^\//, '')))
87
+ target_path = Pathname.new(File.dirname(matching_item.path.sub(/^\//, '')))
88
88
  output_reference = target_path.relative_path_from(current_path).join(File.basename(matching_item.path))
89
89
  end
90
90
 
@@ -110,7 +110,7 @@ module Nanoc3
110
110
  if current_item[:content_filename]
111
111
  File.expand_path(File.join(File.dirname(current_item[:content_filename]), path)).sub(/^#{Dir.pwd}/, '').sub(/^\/content/, '')
112
112
  else
113
- File.dirname(current_item.path)
113
+ File.expand_path(File.dirname(current_item.path), path)
114
114
  end
115
115
  end
116
116
  end
@@ -124,14 +124,14 @@ module Nanoc3
124
124
  ('|"|) # Then either a single, double or no quote at all
125
125
  (
126
126
  ([^'")]+) # The file basename, and below the extension
127
- \.(#{Nanoc3::Cachebuster::FILETYPES_TO_FINGERPRINT.join('|')})
127
+ \.(#{Nanoc::Cachebuster::FILETYPES_TO_FINGERPRINT.join('|')})
128
128
  )
129
129
  \1 # Repeat the same quote as at the start
130
130
  \) # And cose the url()
131
131
  /ix
132
132
 
133
133
  def apply(m, quote, filename, basename, extension)
134
- m.sub(filename, output_filename(filename))
134
+ m.sub(filename, output_filename(filename).to_s)
135
135
  end
136
136
  end
137
137
 
@@ -146,7 +146,7 @@ module Nanoc3
146
146
  ( # Capture the entire reference
147
147
  [^'"]+ # Anything but something that would close the attribute
148
148
  # And then the extension:
149
- (\.(?:#{Nanoc3::Cachebuster::FILETYPES_TO_FINGERPRINT.join('|')}))
149
+ (\.(?:#{Nanoc::Cachebuster::FILETYPES_TO_FINGERPRINT.join('|')}))
150
150
  )
151
151
  \2 # Repeat the opening quote
152
152
  /ix
@@ -0,0 +1,5 @@
1
+ module Nanoc
2
+ module Cachebuster
3
+ VERSION = '0.2.0'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Nanoc::Filters
2
+ autoload 'CacheBuster', 'nanoc/filters/cache_buster'
3
+ Nanoc::Filter.register '::Nanoc::Filters::CacheBuster', :cache_buster
4
+ end
@@ -1,15 +1,15 @@
1
- module Nanoc3
1
+ module Nanoc
2
2
  module Filters
3
- class CacheBuster < Nanoc3::Filter
3
+ class CacheBuster < Nanoc::Filter
4
4
  identifier :cache_buster
5
5
 
6
6
  def run(content, options = {})
7
7
  kind = options[:strategy] || (stylesheet? ? :css : :html)
8
- strategy = Nanoc3::Cachebuster::Strategy.for(kind , site, item)
8
+ strategy = Nanoc::Cachebuster::Strategy.for(kind , site, item)
9
9
  content.gsub(strategy.class::REGEX) do |m|
10
10
  begin
11
11
  strategy.apply m, $1, $2, $3, $4
12
- rescue Nanoc3::Cachebuster::NoSuchSourceFile
12
+ rescue Nanoc::Cachebuster::NoSuchSourceFile
13
13
  m
14
14
  end
15
15
  end
@@ -22,10 +22,10 @@ module Nanoc3
22
22
  # This is a simple check for filetypes, but you can override what strategy to use
23
23
  # with the filter options. This provides a default.
24
24
  #
25
- # @see Nanoc3::Cachebuster::FILETYPES_CONSIDERED_CSS
25
+ # @see Nanoc::Cachebuster::FILETYPES_CONSIDERED_CSS
26
26
  # @return <Bool>
27
27
  def stylesheet?
28
- Nanoc3::Cachebuster::FILETYPES_CONSIDERED_CSS.include?(item[:extension].to_s)
28
+ Nanoc::Cachebuster::FILETYPES_CONSIDERED_CSS.include?(item[:extension].to_s)
29
29
  end
30
30
  end
31
31
  end
@@ -0,0 +1,3 @@
1
+ module Nanoc::Helpers
2
+ autoload 'CacheBusting', 'nanoc/helpers/cache_busting'
3
+ end
@@ -1,4 +1,4 @@
1
- module Nanoc3
1
+ module Nanoc
2
2
  module Helpers
3
3
  module CacheBusting
4
4
 
@@ -15,7 +15,7 @@ module Nanoc3
15
15
  # @param <Item> item is the item to test
16
16
  # @return <Boolean>
17
17
  def cachebust?(item)
18
- Nanoc3::Cachebuster.should_apply_fingerprint_to_file?(item)
18
+ Nanoc::Cachebuster.should_apply_fingerprint_to_file?(item)
19
19
  end
20
20
 
21
21
  # Get a unique fingerprint for a file's content. This currently uses
@@ -25,7 +25,7 @@ module Nanoc3
25
25
  # @param <String> filename is the path to the file to fingerprint.
26
26
  # @return <String> file fingerprint
27
27
  def fingerprint(filename)
28
- Nanoc3::Cachebuster.fingerprint_file(filename)
28
+ Nanoc::Cachebuster.fingerprint_file(filename)
29
29
  end
30
30
  end
31
31
  end
@@ -1,10 +1,10 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path('../lib', __FILE__)
3
- require 'nanoc3/cachebuster/version'
3
+ require 'nanoc/cachebuster/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'nanoc-cachebuster'
7
- s.version = Nanoc3::Cachebuster::VERSION
7
+ s.version = Nanoc::Cachebuster::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ['Arjan van der Gaag']
10
10
  s.email = ['arjan@arjanvandergaag.nl']
@@ -31,4 +31,8 @@ EOS
31
31
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
32
32
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
33
33
  s.require_paths = ['lib']
34
+
35
+ s.add_runtime_dependency 'nanoc', '>= 3.3.0'
36
+ s.add_development_dependency 'rake'
37
+ s.add_development_dependency 'rspec'
34
38
  end
@@ -1,8 +1,13 @@
1
+ require 'spec_helper'
1
2
  require 'ostruct'
2
3
 
3
4
  class MockItem
4
5
  attr_reader :path, :content
5
6
 
7
+ def self.generated_css_file
8
+ new '/styles-cb123456789.css', 'example content', { :extension => 'css' }
9
+ end
10
+
6
11
  def self.css_file(content = 'example content')
7
12
  new '/styles-cb123456789.css', content, { :extension => 'css', :content_filename => 'content/styles.css' }
8
13
  end
@@ -44,12 +49,12 @@ class MockItem
44
49
  end
45
50
  end
46
51
 
47
- describe Nanoc3::Filters::CacheBuster do
52
+ describe Nanoc::Filters::CacheBuster do
48
53
  before(:each) do
49
54
  Digest::MD5.stub!(:hexdigest).and_return('123456789')
50
55
  end
51
56
 
52
- let(:subject) { Nanoc3::Filters::CacheBuster.new context }
57
+ let(:subject) { Nanoc::Filters::CacheBuster.new context }
53
58
  let(:content) { item.content }
54
59
  let(:item) { MockItem.css_file }
55
60
  let(:target) { MockItem.image_file }
@@ -65,7 +70,7 @@ describe Nanoc3::Filters::CacheBuster do
65
70
  end
66
71
 
67
72
  describe 'filter interface' do
68
- it { should be_kind_of(Nanoc3::Filter) }
73
+ it { should be_kind_of(Nanoc::Filter) }
69
74
  it { should respond_to(:run) }
70
75
 
71
76
  it 'should accept a string and an options Hash' do
@@ -142,6 +147,16 @@ describe Nanoc3::Filters::CacheBuster do
142
147
 
143
148
  it_should_not_filter %Q{background: url(foo.png);}
144
149
  end
150
+
151
+ # Needs documentation on what this test is actually testing, and thinking on convention.
152
+ # This is currently responding to the else on line 113 of cachebuster#strategy.rb which is not adding the cb hash to the end of the file name.
153
+ # Need to discover under what condition does an item has no :content_filename and consider what is best convention to handle this case.
154
+ describe 'when the current item has no content path' do
155
+ let(:target) { MockItem.image_file '/foo.png', '/../images/foo-cb123456789.png' }
156
+ let(:item) { MockItem.generated_css_file }
157
+
158
+ it_should_filter %Q{background: url("../images/foo.png");} => %Q{background: url("../images/foo-cb123456789.png");}
159
+ end
145
160
  end
146
161
 
147
162
  describe 'filtering HTML' do
@@ -1,7 +1,7 @@
1
- describe Nanoc3::Helpers::CacheBusting do
1
+ describe Nanoc::Helpers::CacheBusting do
2
2
  let(:subject) do
3
3
  o = Object.new
4
- o.extend Nanoc3::Helpers::CacheBusting
4
+ o.extend Nanoc::Helpers::CacheBusting
5
5
  end
6
6
 
7
7
  describe '#should_cachebust?' do
data/spec/spec_helper.rb CHANGED
@@ -1,2 +1 @@
1
- require 'nanoc3/cachebuster'
2
-
1
+ require 'nanoc/cachebuster'
metadata CHANGED
@@ -1,98 +1,128 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: nanoc-cachebuster
3
- version: !ruby/object:Gem::Version
4
- hash: 31
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 2
10
- version: 0.1.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Arjan van der Gaag
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
12
+ date: 2012-02-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nanoc
16
+ requirement: &70096428299300 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.3.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70096428299300
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70096428298460 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70096428298460
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70096428297900 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70096428297900
47
+ description: ! 'Your website should use far-future expires headers on static assets,
48
+ to make
17
49
 
18
- date: 2011-05-27 00:00:00 Z
19
- dependencies: []
50
+ the best use of client-side caching. But when a file is cached, updates won''t
20
51
 
21
- description: |
22
- Your website should use far-future expires headers on static assets, to make
23
- the best use of client-side caching. But when a file is cached, updates won't
24
52
  get picked up. Cache busting is the practice of making the filename of a
53
+
25
54
  cached asset unique to its content, so it can be cached without having to
55
+
26
56
  worry about future changes.
27
-
57
+
58
+
28
59
  This gem adds a filter and some helper methods to Nanoc, the static site
60
+
29
61
  generator, to simplify the process of making asset filenames unique. It helps
62
+
30
63
  you output fingerprinted filenames, and refer to them from your source files.
31
-
64
+
65
+
32
66
  It works on images, javascripts and stylesheets. It is extracted from the
67
+
33
68
  nanoc-template project at http://github.com/avdgaag/nanoc-template.
34
69
 
35
- email:
70
+ '
71
+ email:
36
72
  - arjan@arjanvandergaag.nl
37
73
  executables: []
38
-
39
74
  extensions: []
40
-
41
75
  extra_rdoc_files: []
42
-
43
- files:
76
+ files:
44
77
  - .gitignore
45
78
  - .rspec
79
+ - Gemfile
46
80
  - HISTORY.md
47
81
  - LICENSE
48
82
  - README.md
49
83
  - Rakefile
50
- - lib/nanoc3/cachebuster.rb
51
- - lib/nanoc3/cachebuster/strategy.rb
52
- - lib/nanoc3/cachebuster/version.rb
53
- - lib/nanoc3/filters.rb
54
- - lib/nanoc3/filters/cache_buster.rb
55
- - lib/nanoc3/helpers.rb
56
- - lib/nanoc3/helpers/cache_busting.rb
84
+ - lib/nanoc/cachebuster.rb
85
+ - lib/nanoc/cachebuster/strategy.rb
86
+ - lib/nanoc/cachebuster/version.rb
87
+ - lib/nanoc/filters.rb
88
+ - lib/nanoc/filters/cache_buster.rb
89
+ - lib/nanoc/helpers.rb
90
+ - lib/nanoc/helpers/cache_busting.rb
57
91
  - nanoc-cachebuster.gemspec
58
- - spec/nanoc3/filters/cache_buster_spec.rb
59
- - spec/nanoc3/helpers/cache_busting_spec.rb
92
+ - spec/nanoc/filters/cache_buster_spec.rb
93
+ - spec/nanoc/helpers/cache_busting_spec.rb
60
94
  - spec/spec_helper.rb
61
95
  homepage: http://github.com/avdgaag/nanoc_cachebuster
62
96
  licenses: []
63
-
64
97
  post_install_message:
65
98
  rdoc_options: []
66
-
67
- require_paths:
99
+ require_paths:
68
100
  - lib
69
- required_ruby_version: !ruby/object:Gem::Requirement
101
+ required_ruby_version: !ruby/object:Gem::Requirement
70
102
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ segments:
76
108
  - 0
77
- version: "0"
78
- required_rubygems_version: !ruby/object:Gem::Requirement
109
+ hash: -1070542068596424145
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
111
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- hash: 3
84
- segments:
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ segments:
85
117
  - 0
86
- version: "0"
118
+ hash: -1070542068596424145
87
119
  requirements: []
88
-
89
120
  rubyforge_project: nanoc-cachebuster
90
- rubygems_version: 1.7.2
121
+ rubygems_version: 1.8.15
91
122
  signing_key:
92
123
  specification_version: 3
93
124
  summary: Adds filters and helpers for cache busting to Nanoc
94
- test_files:
95
- - spec/nanoc3/filters/cache_buster_spec.rb
96
- - spec/nanoc3/helpers/cache_busting_spec.rb
125
+ test_files:
126
+ - spec/nanoc/filters/cache_buster_spec.rb
127
+ - spec/nanoc/helpers/cache_busting_spec.rb
97
128
  - spec/spec_helper.rb
98
- has_rdoc:
@@ -1,5 +0,0 @@
1
- module Nanoc3
2
- module Cachebuster
3
- VERSION = '0.1.2'
4
- end
5
- end
@@ -1,4 +0,0 @@
1
- module Nanoc3::Filters
2
- autoload 'CacheBuster', 'nanoc3/filters/cache_buster'
3
- Nanoc3::Filter.register '::Nanoc3::Filters::CacheBuster', :cache_buster
4
- end
@@ -1,3 +0,0 @@
1
- module Nanoc3::Helpers
2
- autoload 'CacheBusting', 'nanoc3/helpers/cache_busting'
3
- end