middleman-vcs-time 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/Gemfile +17 -0
  4. data/LICENSE.md +20 -0
  5. data/README.md +35 -0
  6. data/Rakefile +15 -0
  7. data/features/fallback.feature +11 -0
  8. data/features/git-support.feature +21 -0
  9. data/features/steps/git_steps.rb +10 -0
  10. data/features/steps/time_steps.rb +17 -0
  11. data/features/support/env.rb +9 -0
  12. data/fixtures/git-app/config.rb +1 -0
  13. data/fixtures/git-app/dotgit/HEAD +1 -0
  14. data/fixtures/git-app/dotgit/ORIG_HEAD +1 -0
  15. data/fixtures/git-app/dotgit/config +5 -0
  16. data/fixtures/git-app/dotgit/description +1 -0
  17. data/fixtures/git-app/dotgit/index +0 -0
  18. data/fixtures/git-app/dotgit/info/exclude +0 -0
  19. data/fixtures/git-app/dotgit/info/refs +1 -0
  20. data/fixtures/git-app/dotgit/logs/HEAD +8 -0
  21. data/fixtures/git-app/dotgit/logs/refs/heads/master +8 -0
  22. data/fixtures/git-app/dotgit/objects/info/packs +2 -0
  23. data/fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.idx +0 -0
  24. data/fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.pack +0 -0
  25. data/fixtures/git-app/dotgit/packed-refs +2 -0
  26. data/fixtures/git-app/source/show-mtime.html.erb +1 -0
  27. data/fixtures/git-app/source/show-mtime_moved.html.erb +1 -0
  28. data/fixtures/git-app/source/show-mtime_untracked.html.erb +1 -0
  29. data/fixtures/git-app/source/show-mtime_working.html.erb +1 -0
  30. data/fixtures/no-vcs-app/config.rb +4 -0
  31. data/fixtures/no-vcs-app/lib/generated-resources.rb +33 -0
  32. data/fixtures/no-vcs-app/source/show-mtime.html.erb +1 -0
  33. data/lib/middleman-vcs-time.rb +3 -0
  34. data/lib/middleman-vcs-time/extension.rb +20 -0
  35. data/lib/middleman-vcs-time/systems/fallback.rb +19 -0
  36. data/lib/middleman-vcs-time/systems/git.rb +50 -0
  37. data/lib/middleman_extension.rb +1 -0
  38. data/middleman-vcs-time.gemspec +20 -0
  39. metadata +122 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8419316a8a532e9570bbdbe24ce377b32deb9f73
4
+ data.tar.gz: 4a9351146191c762c070723d114b0cf7e4697f9d
5
+ SHA512:
6
+ metadata.gz: 40cf40fe1966d1ec79b31f4df85fee42d4ad5a87a735e57568c531aa37ecf81bf48de2b19093e53a3494f79d553eeb4320c665c67965fcbf686b26538de17dba
7
+ data.tar.gz: db3ef3a2d71e357479f37aeecdcb01e58c4460b548d987d85455ce511365363e379465bdb6a6ac5ff5bb8d9701ef8684fe0d91818ae94a619c6699849a2de23f
@@ -0,0 +1,6 @@
1
+ # Bundler
2
+ /Gemfile.lock
3
+
4
+ # Packaging
5
+ /pkg
6
+ /tmp
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'middleman', github: 'middleman/middleman', branch: 'v3-stable'
7
+ gem 'rake'
8
+ gem 'rdoc'
9
+ gem 'yard'
10
+ end
11
+
12
+ group :test do
13
+ gem 'aruba'
14
+ gem 'cucumber'
15
+ gem 'fivemat'
16
+ gem 'rspec'
17
+ end
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Andrew Kvalheim
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,35 @@
1
+ # middleman-vcs-time
2
+
3
+ Provides means to look up the last-modified times of [Middleman][] sitemap
4
+ resources according to a version control system.
5
+
6
+ Supported version control systems:
7
+
8
+ - Git
9
+
10
+ ## Installation
11
+
12
+ Add to your `Gemfile`:
13
+
14
+ ```ruby
15
+ gem 'middleman-vcs-time'
16
+ ```
17
+
18
+ and run `bundle install`.
19
+
20
+ ## Usage
21
+
22
+ Activate the extension in `config.rb`:
23
+
24
+ ```ruby
25
+ activate :vcs_time
26
+ ```
27
+
28
+ Get the modification time of the current page:
29
+
30
+ ```ruby
31
+ current_page.mtime # => 2014-01-20 17:31:50 -0800
32
+ ```
33
+
34
+
35
+ [middleman]: http://middlemanapp.com/
@@ -0,0 +1,15 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'cucumber/rake/task'
5
+
6
+ Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
7
+ format = ENV['CUCUMBER_FORMAT'] || 'Fivemat'
8
+ t.cucumber_opts = "--color --tags ~@wip --strict --format #{format}"
9
+ end
10
+
11
+ require 'rake/clean'
12
+
13
+ task :test => ['cucumber']
14
+
15
+ task :default => :test
@@ -0,0 +1,11 @@
1
+ Feature: Fallback
2
+
3
+ Scenario: Use the current time when there is no source file
4
+ Given the Server is running at "no-vcs-app"
5
+ When I go to "/show-mtime_generated.html"
6
+ Then I should see the current time
7
+
8
+ Scenario: Use the file modification time when there is no version control system
9
+ Given the Server is running at "no-vcs-app"
10
+ When I go to "/show-mtime.html"
11
+ Then I should see the modification time for a file named "source/show-mtime.html.erb"
@@ -0,0 +1,21 @@
1
+ Feature: Git support
2
+
3
+ Scenario: Use the file modification time when the source file is untracked
4
+ Given the Server is running under Git at "git-app"
5
+ When I go to "/show-mtime_untracked.html"
6
+ Then I should see the modification time for a file named "source/show-mtime_untracked.html.erb"
7
+
8
+ Scenario: Use the file modification time when there are working changes to the source file
9
+ Given the Server is running under Git at "git-app"
10
+ When I go to "/show-mtime_working.html"
11
+ Then I should see the modification time for a file named "source/show-mtime_working.html.erb"
12
+
13
+ Scenario: Use the author time of the most recent commit
14
+ Given the Server is running under Git at "git-app"
15
+ When I go to "/show-mtime.html"
16
+ Then I should see "1386989477"
17
+
18
+ Scenario: Ignore commits that are only copies and moves
19
+ Given the Server is running under Git at "git-app"
20
+ When I go to "/show-mtime_moved.html"
21
+ Then I should see "1386989477"
@@ -0,0 +1,10 @@
1
+ # Use a non-standard Git directory in fixtures so as not to conflict with the
2
+ # parent repository
3
+ Given /^the Server is running under Git at "([^\"]*)"$/ do |app_path|
4
+ step %Q{a fixture app "#{app_path}"}
5
+
6
+ set_env 'GIT_DIR', File.join(current_dir, 'dotgit')
7
+ set_env 'GIT_WORK_TREE', current_dir
8
+
9
+ step %Q{the Server is running}
10
+ end
@@ -0,0 +1,17 @@
1
+ TOLERANCE = 5
2
+
3
+ Then /^I should see the current time$/ do
4
+ now = Time.now.to_i
5
+
6
+ window = (now - TOLERANCE .. now + TOLERANCE)
7
+ has_current_time = @browser.last_response.body.scan(/\d+/).any? do |digits|
8
+ window.include?(digits.to_i)
9
+ end
10
+
11
+ expect(has_current_time).to be_true
12
+ end
13
+
14
+ Then /^I should see the modification time for a file named "([^\"]*)"$/ do |file|
15
+ target = File.join(current_dir, file)
16
+ step %Q{I should see "#{File.mtime(target).to_i}"}
17
+ end
@@ -0,0 +1,9 @@
1
+ PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
+ require 'middleman-core'
3
+ require 'middleman-core/step_definitions'
4
+ require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-vcs-time')
5
+
6
+ # Prevent fixtures from detecting the parent repository
7
+ Before do
8
+ set_env 'GIT_DIR', File::NULL
9
+ end
@@ -0,0 +1 @@
1
+ activate :vcs_time
@@ -0,0 +1 @@
1
+ ref: refs/heads/master
@@ -0,0 +1 @@
1
+ 9d6f47ee5196b182f8f347c18d4ad23b1672815b
@@ -0,0 +1,5 @@
1
+ [core]
2
+ repositoryformatversion = 0
3
+ filemode = true
4
+ bare = false
5
+ logallrefupdates = true
@@ -0,0 +1 @@
1
+ Middleman app
File without changes
@@ -0,0 +1 @@
1
+ 2d08e7bcbfe03aa0773b8cbc377b4f036cd274e0 refs/heads/master
@@ -0,0 +1,8 @@
1
+ 0000000000000000000000000000000000000000 0f0de932c27c487f6d7492740897c6daf4de3d78 Andrew Kvalheim <Andrew@Kvalhe.im> 1386987868 -0800 commit (initial): Add page that displays its own modification time.
2
+ 0f0de932c27c487f6d7492740897c6daf4de3d78 072121012ff66f72e1d3a3139b5c78c0afe8a045 Andrew Kvalheim <Andrew@Kvalhe.im> 1386989417 -0800 commit: Modify the page.
3
+ 1456b4021730fb7048579e4e248bacff2284714e ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb Andrew Kvalheim <Andrew@Kvalhe.im> 1387247862 -0800 commit: Modify the page.
4
+ ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb b1a194a19998a5db861743191341bd9d8cfd29c4 Andrew Kvalheim <Andrew@Kvalhe.im> 1391558446 -0800 commit: Add file to be moved.
5
+ b1a194a19998a5db861743191341bd9d8cfd29c4 9d6f47ee5196b182f8f347c18d4ad23b1672815b Andrew Kvalheim <Andrew@Kvalhe.im> 1391558504 -0800 commit: Move file.
6
+ 9d6f47ee5196b182f8f347c18d4ad23b1672815b ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb Andrew Kvalheim <Andrew@Kvalhe.im> 1391559482 -0800 reset: moving to ef6ed5e
7
+ ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb 25cf5d93274a096d33d048f40dd2a52d6ed3b6c8 Andrew Kvalheim <Andrew@Kvalhe.im> 1391559566 -0800 commit: Make a copy of the page.
8
+ 25cf5d93274a096d33d048f40dd2a52d6ed3b6c8 2d08e7bcbfe03aa0773b8cbc377b4f036cd274e0 Andrew Kvalheim <Andrew@Kvalhe.im> 1391559609 -0800 commit: Move the copy.
@@ -0,0 +1,8 @@
1
+ 0000000000000000000000000000000000000000 0f0de932c27c487f6d7492740897c6daf4de3d78 Andrew Kvalheim <Andrew@Kvalhe.im> 1386987868 -0800 commit (initial): Add page that displays its own modification time.
2
+ 0f0de932c27c487f6d7492740897c6daf4de3d78 072121012ff66f72e1d3a3139b5c78c0afe8a045 Andrew Kvalheim <Andrew@Kvalhe.im> 1386989417 -0800 commit: Modify the page.
3
+ 1456b4021730fb7048579e4e248bacff2284714e ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb Andrew Kvalheim <Andrew@Kvalhe.im> 1387247862 -0800 commit: Modify the page.
4
+ ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb b1a194a19998a5db861743191341bd9d8cfd29c4 Andrew Kvalheim <Andrew@Kvalhe.im> 1391558446 -0800 commit: Add file to be moved.
5
+ b1a194a19998a5db861743191341bd9d8cfd29c4 9d6f47ee5196b182f8f347c18d4ad23b1672815b Andrew Kvalheim <Andrew@Kvalhe.im> 1391558504 -0800 commit: Move file.
6
+ 9d6f47ee5196b182f8f347c18d4ad23b1672815b ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb Andrew Kvalheim <Andrew@Kvalhe.im> 1391559482 -0800 reset: moving to ef6ed5e
7
+ ef6ed5e8acbe69c75c7093a5eb44c92df5fbdbdb 25cf5d93274a096d33d048f40dd2a52d6ed3b6c8 Andrew Kvalheim <Andrew@Kvalhe.im> 1391559566 -0800 commit: Make a copy of the page.
8
+ 25cf5d93274a096d33d048f40dd2a52d6ed3b6c8 2d08e7bcbfe03aa0773b8cbc377b4f036cd274e0 Andrew Kvalheim <Andrew@Kvalhe.im> 1391559609 -0800 commit: Move the copy.
@@ -0,0 +1,2 @@
1
+ P pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.pack
2
+
@@ -0,0 +1,2 @@
1
+ # pack-refs with: peeled fully-peeled
2
+ 2d08e7bcbfe03aa0773b8cbc377b4f036cd274e0 refs/heads/master
@@ -0,0 +1 @@
1
+ This page was last modified at <%= current_page.mtime.strftime('%s') %>.
@@ -0,0 +1 @@
1
+ This page was last modified at <%= current_page.mtime.strftime('%s') %>.
@@ -0,0 +1 @@
1
+ This page was last modified at <%= current_page.mtime.strftime('%s') %>.
@@ -0,0 +1 @@
1
+ This page was last modified at <%= current_page.mtime.strftime('%s') %>.
@@ -0,0 +1,4 @@
1
+ require 'lib/generated-resources'
2
+
3
+ activate :generated_resources
4
+ activate :vcs_time
@@ -0,0 +1,33 @@
1
+ module Middleman
2
+ module GeneratedResources
3
+ class GeneratedResource < Middleman::Sitemap::Resource
4
+ def binary?
5
+ false
6
+ end
7
+
8
+ def render
9
+ raise NotImplementedError
10
+ end
11
+
12
+ def source_file
13
+ ''
14
+ end
15
+ end
16
+
17
+ class Extension < Middleman::Extension
18
+ def manipulate_resource_list(resources)
19
+ resource = GeneratedResource.new(app.sitemap, 'show-mtime_generated.html')
20
+
21
+ class << resource
22
+ def render
23
+ "This page was last modified at #{mtime.strftime('%s')}."
24
+ end
25
+ end
26
+
27
+ resources << resource
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ Middleman::GeneratedResources::Extension.register :generated_resources
@@ -0,0 +1 @@
1
+ This page was last modified at <%= current_page.mtime.strftime('%s') %>.
@@ -0,0 +1,3 @@
1
+ require 'middleman-vcs-time/extension'
2
+
3
+ Middleman::VCSTime::Extension.register :vcs_time
@@ -0,0 +1,20 @@
1
+ require 'middleman-core'
2
+
3
+ module Middleman
4
+ module VCSTime
5
+ class Extension < ::Middleman::Extension
6
+ def initialize(app, **options_hash, &block)
7
+ super
8
+
9
+ require 'middleman-vcs-time/systems/fallback'
10
+ require 'middleman-vcs-time/systems/git'
11
+ end
12
+
13
+ def after_configuration
14
+ systems = [Git, Fallback]
15
+
16
+ systems.detect(&:load)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ module Middleman
2
+ module VCSTime
3
+ class Fallback
4
+ module ResourceIncludes
5
+ def mtime
6
+ if File.exists?(source_file)
7
+ File.mtime(source_file)
8
+ else
9
+ Time.now
10
+ end
11
+ end
12
+ end
13
+
14
+ def self.load
15
+ Middleman::Sitemap::Resource.include ResourceIncludes
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,50 @@
1
+ require 'pathname'
2
+
3
+ module Middleman
4
+ module VCSTime
5
+ class Git < Fallback
6
+ module ResourceIncludes
7
+ def mtime
8
+ @_mtime ||= if git_clean?
9
+ git_author_time
10
+ else
11
+ super
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def git_author_time
18
+ command = %w{git log --follow --numstat --format=%at --}
19
+
20
+ result = IO.popen(command + [source_file]) do |output|
21
+ output.each_line.each_slice(3).find do |result|
22
+ result.last.split("\t").take(2).map(&:to_i).reduce(&:+).nonzero?
23
+ end
24
+ end
25
+
26
+ Time.at(result.first.to_i) if result
27
+ end
28
+
29
+ def git_clean?
30
+ command = %w{git status --porcelain --}
31
+
32
+ IO.popen(command + [source_file]) { |output| output.read.empty? }
33
+ end
34
+ end
35
+
36
+ def self.load
37
+ if available?
38
+ super
39
+ Middleman::Sitemap::Resource.include ResourceIncludes
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def self.available?
46
+ system(*%w{git rev-parse}, err: File::NULL)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1 @@
1
+ require 'middleman-vcs-time'
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = 'middleman-vcs-time'
6
+ gem.version = '0.0.1'
7
+ gem.platform = Gem::Platform::RUBY
8
+ gem.required_ruby_version = '~> 2.0'
9
+ gem.license = 'MIT'
10
+ gem.authors = ['Andrew Kvalheim']
11
+ gem.email = ['Andrew@Kvalhe.im']
12
+ gem.homepage = 'https://github.com/AndrewKvalheim/middleman-vcs-time'
13
+ gem.summary = %q{Use version control to determine last-modified times of Middleman resources.}
14
+
15
+ gem.files = `git ls-files -z`.split("\0")
16
+ gem.test_files = gem.files.grep(%r{^(features|fixtures)/})
17
+ gem.require_paths = ['lib']
18
+
19
+ gem.add_runtime_dependency 'middleman-core', ['>= 3.2.0']
20
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-vcs-time
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Kvalheim
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: middleman-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.0
27
+ description:
28
+ email:
29
+ - Andrew@Kvalhe.im
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".gitignore"
35
+ - Gemfile
36
+ - LICENSE.md
37
+ - README.md
38
+ - Rakefile
39
+ - features/fallback.feature
40
+ - features/git-support.feature
41
+ - features/steps/git_steps.rb
42
+ - features/steps/time_steps.rb
43
+ - features/support/env.rb
44
+ - fixtures/git-app/config.rb
45
+ - fixtures/git-app/dotgit/HEAD
46
+ - fixtures/git-app/dotgit/ORIG_HEAD
47
+ - fixtures/git-app/dotgit/config
48
+ - fixtures/git-app/dotgit/description
49
+ - fixtures/git-app/dotgit/index
50
+ - fixtures/git-app/dotgit/info/exclude
51
+ - fixtures/git-app/dotgit/info/refs
52
+ - fixtures/git-app/dotgit/logs/HEAD
53
+ - fixtures/git-app/dotgit/logs/refs/heads/master
54
+ - fixtures/git-app/dotgit/objects/info/packs
55
+ - fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.idx
56
+ - fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.pack
57
+ - fixtures/git-app/dotgit/packed-refs
58
+ - fixtures/git-app/source/show-mtime.html.erb
59
+ - fixtures/git-app/source/show-mtime_moved.html.erb
60
+ - fixtures/git-app/source/show-mtime_untracked.html.erb
61
+ - fixtures/git-app/source/show-mtime_working.html.erb
62
+ - fixtures/no-vcs-app/config.rb
63
+ - fixtures/no-vcs-app/lib/generated-resources.rb
64
+ - fixtures/no-vcs-app/source/show-mtime.html.erb
65
+ - lib/middleman-vcs-time.rb
66
+ - lib/middleman-vcs-time/extension.rb
67
+ - lib/middleman-vcs-time/systems/fallback.rb
68
+ - lib/middleman-vcs-time/systems/git.rb
69
+ - lib/middleman_extension.rb
70
+ - middleman-vcs-time.gemspec
71
+ homepage: https://github.com/AndrewKvalheim/middleman-vcs-time
72
+ licenses:
73
+ - MIT
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '2.0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.2.1
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: Use version control to determine last-modified times of Middleman resources.
95
+ test_files:
96
+ - features/fallback.feature
97
+ - features/git-support.feature
98
+ - features/steps/git_steps.rb
99
+ - features/steps/time_steps.rb
100
+ - features/support/env.rb
101
+ - fixtures/git-app/config.rb
102
+ - fixtures/git-app/dotgit/HEAD
103
+ - fixtures/git-app/dotgit/ORIG_HEAD
104
+ - fixtures/git-app/dotgit/config
105
+ - fixtures/git-app/dotgit/description
106
+ - fixtures/git-app/dotgit/index
107
+ - fixtures/git-app/dotgit/info/exclude
108
+ - fixtures/git-app/dotgit/info/refs
109
+ - fixtures/git-app/dotgit/logs/HEAD
110
+ - fixtures/git-app/dotgit/logs/refs/heads/master
111
+ - fixtures/git-app/dotgit/objects/info/packs
112
+ - fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.idx
113
+ - fixtures/git-app/dotgit/objects/pack/pack-bc8ae5eaa7a0c137a3db0e68dc4f537bab66f10e.pack
114
+ - fixtures/git-app/dotgit/packed-refs
115
+ - fixtures/git-app/source/show-mtime.html.erb
116
+ - fixtures/git-app/source/show-mtime_moved.html.erb
117
+ - fixtures/git-app/source/show-mtime_untracked.html.erb
118
+ - fixtures/git-app/source/show-mtime_working.html.erb
119
+ - fixtures/no-vcs-app/config.rb
120
+ - fixtures/no-vcs-app/lib/generated-resources.rb
121
+ - fixtures/no-vcs-app/source/show-mtime.html.erb
122
+ has_rdoc: