rewinder 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/Gemfile +3 -0
- data/README.md +9 -0
- data/Rakefile +2 -0
- data/VERSION +1 -0
- data/bin/rewinder +5 -0
- data/lib/rasterize.js +55 -0
- data/lib/rewinder/version.rb +7 -0
- data/lib/rewinder.rb +38 -0
- data/rewinder.gemspec +18 -0
- metadata +69 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 62b560c97b29acdad3e89e6b6a2eae01c7c8c00e
|
4
|
+
data.tar.gz: 628f0451e419262288032682a17e49f554fcf643
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 752d2126329d31c7d226b52ba61c5f480c39b2b1cf9ddab0d14f39e655fb8bd38414b97c5584f4453ef43b1f8d9402a3f8b2d1399a846fd66df27ba9ab1be576
|
7
|
+
data.tar.gz: b1c335d92c7e7795a49acd2432e43c59b5caf403ee11f17315857e62f852cea88892f27d829c6bcc75cbee54f35700aad829888900108c8ba7a36169ebd5eb0b
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/rewinder
ADDED
data/lib/rasterize.js
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
var page = require('webpage').create(),
|
2
|
+
system = require('system'),
|
3
|
+
address, output, size;
|
4
|
+
|
5
|
+
if (system.args.length < 3 || system.args.length > 5) {
|
6
|
+
console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
|
7
|
+
console.log(' paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
|
8
|
+
console.log(' image (png/jpg output) examples: "1920px" entire page, window width 1920px');
|
9
|
+
console.log(' "800px*600px" window, clipped to 800x600');
|
10
|
+
phantom.exit(1);
|
11
|
+
} else {
|
12
|
+
address = system.args[1];
|
13
|
+
output = system.args[2];
|
14
|
+
page.viewportSize = { width: 1440, height: 900 };
|
15
|
+
if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
|
16
|
+
size = system.args[3].split('*');
|
17
|
+
page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
|
18
|
+
: { format: system.args[3], orientation: 'portrait', margin: '1cm' };
|
19
|
+
} else if (system.args.length > 3 && system.args[3].substr(-2) === "px") {
|
20
|
+
size = system.args[3].split('*');
|
21
|
+
if (size.length === 2) {
|
22
|
+
pageWidth = parseInt(size[0], 10);
|
23
|
+
pageHeight = parseInt(size[1], 10);
|
24
|
+
page.viewportSize = { width: pageWidth, height: pageHeight };
|
25
|
+
page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight };
|
26
|
+
} else {
|
27
|
+
console.log("size:", system.args[3]);
|
28
|
+
pageWidth = parseInt(system.args[3], 10);
|
29
|
+
pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any
|
30
|
+
console.log ("pageHeight:",pageHeight);
|
31
|
+
page.viewportSize = { width: pageWidth, height: pageHeight };
|
32
|
+
}
|
33
|
+
}
|
34
|
+
if (system.args.length > 4) {
|
35
|
+
page.zoomFactor = system.args[4];
|
36
|
+
}
|
37
|
+
page.open(address, function (status) {
|
38
|
+
if (status !== 'success') {
|
39
|
+
console.log('Unable to load the address!');
|
40
|
+
phantom.exit();
|
41
|
+
} else {
|
42
|
+
page.evaluate(function() {
|
43
|
+
var style = document.createElement('style'),
|
44
|
+
text = document.createTextNode('body { background: #fff }');
|
45
|
+
style.setAttribute('type', 'text/css');
|
46
|
+
style.appendChild(text);
|
47
|
+
document.head.insertBefore(style, document.head.firstChild);
|
48
|
+
});
|
49
|
+
window.setTimeout(function () {
|
50
|
+
page.render(output);
|
51
|
+
phantom.exit();
|
52
|
+
}, 200);
|
53
|
+
}
|
54
|
+
});
|
55
|
+
}
|
data/lib/rewinder.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'git'
|
2
|
+
|
3
|
+
module Rewinder
|
4
|
+
class Snapshotter
|
5
|
+
def create_video
|
6
|
+
gem_root = Gem::Specification.find_by_name("rewinder").gem_dir
|
7
|
+
|
8
|
+
Dir.chdir("./")
|
9
|
+
|
10
|
+
g = Git.open('./')
|
11
|
+
g.checkout(g.branch('master'))
|
12
|
+
g.branch('rewinder').checkout
|
13
|
+
|
14
|
+
g.log(10).to_a.reverse.each_with_index do |l, i|
|
15
|
+
g.checkout(l.sha)
|
16
|
+
puts l.sha
|
17
|
+
puts `bundle install`
|
18
|
+
bundle = `bundle install`
|
19
|
+
puts "bundle #{bundle}"
|
20
|
+
`rake db:reset RAILS_ENV=production`
|
21
|
+
`rake db:migrate RAILS_ENV=production`
|
22
|
+
system "rails server &"
|
23
|
+
sleep 8
|
24
|
+
`phantomjs #{gem_root}/lib/rasterize.js 'http://localhost:3000/' ~/.rewinder/homescreen#{(i+1).to_s.rjust(6, '0')}.png`
|
25
|
+
puts "Killing server"
|
26
|
+
puts system 'kill -9 `cat tmp/pids/server.pid`'
|
27
|
+
puts "Hard resetting"
|
28
|
+
g.reset_hard(l)
|
29
|
+
end
|
30
|
+
|
31
|
+
g.checkout(g.branch('master'))
|
32
|
+
g.branch('rewinder').delete
|
33
|
+
|
34
|
+
`ffmpeg -f image2 -r 0.5 -i ~/.rewinder/homescreen%06d.png -s 1440x900 -vcodec libx264 -pix_fmt yuv420p ./rewinder.mp4`
|
35
|
+
`rm -rf ~/.rewinder`
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/rewinder.gemspec
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'date'
|
2
|
+
require "#{File.expand_path(File.dirname(__FILE__))}/lib/rewinder/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'rewinder'
|
6
|
+
s.version = '0.0.1'
|
7
|
+
s.date = Date.today.to_s
|
8
|
+
s.summary = "Rewinder"
|
9
|
+
s.description = "Rewinder goes back through the git history of your site and creates a timelapse video showing how it's changed visually"
|
10
|
+
s.authors = ["Hamilton Chapman"]
|
11
|
+
s.email = 'hamchapman@gmail.com'
|
12
|
+
s.files = `git ls-files`.split($\)
|
13
|
+
s.executables = ['rewinder']
|
14
|
+
s.homepage = 'http://rewinder.io'
|
15
|
+
s.license = 'MIT'
|
16
|
+
s.require_paths = ['lib']
|
17
|
+
s.add_dependency 'git'
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rewinder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hamilton Chapman
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: git
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Rewinder goes back through the git history of your site and creates a
|
28
|
+
timelapse video showing how it's changed visually
|
29
|
+
email: hamchapman@gmail.com
|
30
|
+
executables:
|
31
|
+
- rewinder
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- ".gitignore"
|
36
|
+
- Gemfile
|
37
|
+
- README.md
|
38
|
+
- Rakefile
|
39
|
+
- VERSION
|
40
|
+
- bin/rewinder
|
41
|
+
- lib/rasterize.js
|
42
|
+
- lib/rewinder.rb
|
43
|
+
- lib/rewinder/version.rb
|
44
|
+
- rewinder.gemspec
|
45
|
+
homepage: http://rewinder.io
|
46
|
+
licenses:
|
47
|
+
- MIT
|
48
|
+
metadata: {}
|
49
|
+
post_install_message:
|
50
|
+
rdoc_options: []
|
51
|
+
require_paths:
|
52
|
+
- lib
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
requirements: []
|
64
|
+
rubyforge_project:
|
65
|
+
rubygems_version: 2.2.2
|
66
|
+
signing_key:
|
67
|
+
specification_version: 4
|
68
|
+
summary: Rewinder
|
69
|
+
test_files: []
|