nanoc-cachebuster 0.1.2 → 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.
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