dragonfly_phantomjs 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +23 -0
- data/.travis.yml +12 -0
- data/Gemfile +4 -0
- data/Guardfile +8 -0
- data/LICENSE +21 -0
- data/README.md +59 -0
- data/Rakefile +9 -0
- data/dragonfly_phantomjs.gemspec +29 -0
- data/lib/dragonfly_phantomjs.rb +9 -0
- data/lib/dragonfly_phantomjs/plugin.rb +13 -0
- data/lib/dragonfly_phantomjs/processors/rasterize.rb +56 -0
- data/lib/dragonfly_phantomjs/version.rb +3 -0
- data/samples/sample.html +13 -0
- data/samples/sample.svg +4 -0
- data/script/rasterize.coffee +81 -0
- data/test/dragonfly_phantomjs/plugin_test.rb +20 -0
- data/test/dragonfly_phantomjs/processors/rasterize_test.rb +75 -0
- data/test/test_helper.rb +21 -0
- metadata +166 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6f6f61fe6650d4c2159f5dc77c215fa45eaa386d
|
4
|
+
data.tar.gz: dcc9104b633d05f4a9a8646f9438016b36d8ea04
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ca6c5ab9973d7588acaa5e07c5054c56e5aff5b04ced61c97f02fb592b53c2aebb2acd387a123d4a0ceae6a2195565ee194d6268d7651503abc0b5867e2f3553
|
7
|
+
data.tar.gz: 405f6c7735019483a156b9cb229fd07b991da9ae952ae0a70c3a0d8c6473f729d12ac989f427c3f2879e40bcca9d10b039eb1cbc8922a78bf72891f3fc48875d
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.gitignore
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
23
|
+
dragonfly.log
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Tomas Celizna
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, 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,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# Dragonfly PhantomJS
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/tomasc/dragonfly_phantomjs.svg)](https://travis-ci.org/tomasc/dragonfly_phantomjs) [![Gem Version](https://badge.fury.io/rb/dragonfly_phantomjs.svg)](http://badge.fury.io/rb/dragonfly_phantomjs) [![Coverage Status](https://img.shields.io/coveralls/tomasc/dragonfly_phantomjs.svg)](https://coveralls.io/r/tomasc/dragonfly_phantomjs)
|
4
|
+
|
5
|
+
This [Dragonfly](https://github.com/markevans/dragonfly) plugin uses [PhantomJS](https://github.com/ariya/phantomjs) headless browser to convert `HTML` or `SVG` documents to `GIF`, `JPEG`, `PDF` or `PNG`
|
6
|
+
|
7
|
+
If passed an `SVG` and the `viewport_size` is not specified in the options, the `viewport_size` is automatically set to the dimensions of the `SVG` file.
|
8
|
+
|
9
|
+
IMPORTANT: Requires [PhantomJS](http://phantomjs.org)
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
gem 'dragonfly_phantomjs'
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install dragonfly_phantomjs
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
Add the plugin to Dragonfly:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
Dragonfly.app.configure do
|
31
|
+
plugin :svg
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
35
|
+
## Rasterize
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
html.rasterize(format, options)
|
39
|
+
svg.rasterize(format, options)
|
40
|
+
```
|
41
|
+
|
42
|
+
Formats: `:gif`, `:jpeg`, `:pdf`, `:png`
|
43
|
+
|
44
|
+
Options:
|
45
|
+
```Ruby
|
46
|
+
:border - {number, string}, defaults to 0, supported units are 'mm', 'cm', 'in', 'px'
|
47
|
+
:format - {string}, defaults to 'A4', supported formats are 'A4', 'A3', 'A5', 'Legal', 'Letter', 'Tabloid'
|
48
|
+
:paper_size - {string}, 'width*height', '300mm*300mm', supported units are 'mm', 'cm', 'in', 'px'
|
49
|
+
:viewport_size - {string}, 'width*height', '1440*900'
|
50
|
+
:zoom_factor - {number}, defaults to 1
|
51
|
+
```
|
52
|
+
|
53
|
+
## Contributing
|
54
|
+
|
55
|
+
1. Fork it ( https://github.com/tomasc/dragonfly_phantomjs/fork )
|
56
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
57
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
58
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
59
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'dragonfly_phantomjs/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dragonfly_phantomjs"
|
8
|
+
spec.version = DragonflyPhantomjs::VERSION
|
9
|
+
spec.authors = ["Tomas Celizna"]
|
10
|
+
spec.email = ["tomas.celizna@gmail.com"]
|
11
|
+
spec.summary = %q{An encoder converting .html or .svg documents to .gif, .jpeg, .pdf or .png using PhantomJs}
|
12
|
+
spec.description = %q{An encoder converting .html or .svg documents to .gif, .jpeg, .pdf or .png using PhantomJs}
|
13
|
+
spec.homepage = "https://github.com/tomasc/dragonfly_phantomjs"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "dragonfly", "~> 1.0.5"
|
22
|
+
spec.add_dependency "dragonfly_svg"
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "guard"
|
27
|
+
spec.add_development_dependency "guard-minitest"
|
28
|
+
spec.add_development_dependency "minitest"
|
29
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'dragonfly_phantomjs/processors/rasterize'
|
2
|
+
|
3
|
+
module DragonflyPhantomjs
|
4
|
+
class Plugin
|
5
|
+
|
6
|
+
def call app, opts={}
|
7
|
+
app.add_processor :rasterize, DragonflyPhantomjs::Processors::Rasterize.new
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Dragonfly::App.register_plugin(:phantomjs) { DragonflyPhantomjs::Plugin.new }
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'dragonfly_svg'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module DragonflyPhantomjs
|
5
|
+
module Processors
|
6
|
+
|
7
|
+
# ---------------------------------------------------------------------
|
8
|
+
# This processor uses PhantomJs to convert .html or .svg documents to
|
9
|
+
# .gif, .jpeg, .pdf or .png
|
10
|
+
#
|
11
|
+
# Incase of .svg file, the viewport_size is automatically set to the
|
12
|
+
# dimensions in the .svg file, unless explicitly specified in options
|
13
|
+
#
|
14
|
+
# IMPORTANT: Requires +phantomjs+
|
15
|
+
|
16
|
+
class Rasterize
|
17
|
+
|
18
|
+
class UnsupportedFormat < RuntimeError; end
|
19
|
+
|
20
|
+
# :border - {number, string}, defaults to 0, supported units are 'mm', 'cm', 'in', 'px'
|
21
|
+
# :format - {string}, defaults to 'A4', supported formats are 'A4', 'A3', 'A5', 'Legal', 'Letter', 'Tabloid'
|
22
|
+
# :paper_size - {string}, 'width*height', '300mm*300mm', supported units are 'mm', 'cm', 'in', 'px'
|
23
|
+
# :viewport_size - {string}, 'width*height', '1440*900'
|
24
|
+
# :zoom_factor - {number}, defaults to 1
|
25
|
+
|
26
|
+
def call content, format=:pdf, options={}
|
27
|
+
raise UnsupportedFormat unless %w(gif jpeg pdf png).include?(format.to_s)
|
28
|
+
|
29
|
+
content.shell_update(ext: format) do |old_path, new_path|
|
30
|
+
if File.extname(old_path) == 'svg' && options[:viewport_size].blank?
|
31
|
+
width = Dragonfly::Analysers::SvgAnalyser.new(content)[:width]
|
32
|
+
height = Dragonfly::Analysers::SvgAnalyser.new.(content)[:height]
|
33
|
+
options[:viewport_size] = "#{width.to_i}*#{height.to_i}"
|
34
|
+
end
|
35
|
+
|
36
|
+
"#{phantomjs_command} #{rasterize_script} #{old_path} #{new_path} '#{options.to_json}'"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def update_url attrs, format, args=""
|
41
|
+
attrs.ext = format.to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
private # =============================================================
|
45
|
+
|
46
|
+
def phantomjs_command
|
47
|
+
"phantomjs"
|
48
|
+
end
|
49
|
+
|
50
|
+
def rasterize_script
|
51
|
+
File.join(DragonflyPhantomjs.root, "script", "rasterize.coffee")
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/samples/sample.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Dragonfly PhantomJS Sample HTML</title>
|
6
|
+
<meta name="description" content="Sample HTML">
|
7
|
+
<meta name="author" content="Asger Behncke Jacobsen">
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<h1>Dragonfly PhantomJS</h1>
|
11
|
+
<p>Lorem ipsum Dolore enim dolore sunt sint esse ut nostrud sed eu minim proident anim amet tempor cillum in do sunt ex aliqua commodo veniam in in adipisicing deserunt anim voluptate reprehenderit sed mollit deserunt tempor ea commodo laborum deserunt esse deserunt exercitation sit ut commodo adipisicing voluptate incididunt nostrud esse labore deserunt id deserunt irure nisi veniam in dolore aliquip adipisicing ut anim ut ullamco sed eu elit quis culpa exercitation proident dolore magna exercitation deserunt anim tempor consectetur amet et culpa adipisicing aliquip labore ea ex exercitation reprehenderit deserunt in incididunt qui sint Excepteur fugiat elit voluptate reprehenderit sit laboris ad elit tempor laboris nulla exercitation qui irure dolor fugiat voluptate in commodo cillum in dolore reprehenderit laborum nulla amet tempor ad occaecat consectetur Duis cillum est cupidatat eiusmod laborum cupidatat sed sed dolor id consequat cillum enim proident sit anim ut magna proident veniam fugiat mollit aliqua dolore ex do laborum ut nisi cupidatat nisi nostrud occaecat labore est in ea dolor ad ullamco occaecat commodo velit id ut magna qui adipisicing in commodo voluptate laboris velit reprehenderit commodo mollit irure consequat in veniam enim Excepteur ut anim dolor aute cillum in reprehenderit sed incididunt sunt laboris id aute qui Ut velit in tempor veniam consequat consequat nulla pariatur do occaecat aute tempor Ut labore dolore ullamco veniam adipisicing Duis cillum occaecat dolore sit officia magna aliquip esse in elit dolore proident sit ut commodo sit quis in et veniam eiusmod dolore et commodo in qui dolore eu nisi minim commodo exercitation.</p>
|
12
|
+
</body>
|
13
|
+
</html>
|
data/samples/sample.svg
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
fs = require('fs')
|
5
|
+
system = require('system')
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
# ---------------------------------------------------------------------
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
input = system.args[1]
|
14
|
+
output = system.args[2]
|
15
|
+
|
16
|
+
if options_json = system.args[3]
|
17
|
+
options = JSON.parse options_json
|
18
|
+
else
|
19
|
+
options = {}
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
# ---------------------------------------------------------------------
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
border = options['border'] || 0
|
28
|
+
format = options['format'] || 'A4'
|
29
|
+
paper_size = options['paper_size']
|
30
|
+
viewport_size = options['viewport_size']
|
31
|
+
zoom_factor = options['zoom_factor'] || 1
|
32
|
+
user_agent = options['user_agent']
|
33
|
+
referer = options['referer']
|
34
|
+
element_id = options['element_id']
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
# ---------------------------------------------------------------------
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
page = require('webpage').create()
|
43
|
+
page.settings.userAgent = options['user_agent'] if user_agent
|
44
|
+
page.customHeaders = { 'Referer': options['referer'] } if referer
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
# ---------------------------------------------------------------------
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
if output.substr(-4) is ".pdf"
|
53
|
+
if paper_size != undefined
|
54
|
+
page_width = paper_size.split('*')[0]
|
55
|
+
page_height = paper_size.split('*')[1]
|
56
|
+
page.paperSize = { width: page_width, height: page_height, border: border }
|
57
|
+
|
58
|
+
else if format != undefined
|
59
|
+
page.paperSize = { format: format, border: border }
|
60
|
+
|
61
|
+
if viewport_size != undefined
|
62
|
+
viewport_width = viewport_size.split('*')[0]
|
63
|
+
viewport_height = viewport_size.split('*')[1]
|
64
|
+
page.viewportSize = { width: viewport_width, height: viewport_height }
|
65
|
+
|
66
|
+
page.zoomFactor = zoom_factor
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
# ---------------------------------------------------------------------
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
page.open input, ->
|
75
|
+
if element_id
|
76
|
+
page.clipRect = page.evaluate ->
|
77
|
+
document.getElementById('demo').getBoundingClientRect()
|
78
|
+
page.render(output)
|
79
|
+
phantom.exit()
|
80
|
+
|
81
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyPhantomjs
|
4
|
+
describe Plugin do
|
5
|
+
|
6
|
+
let(:app) { test_app.configure_with(:phantomjs) }
|
7
|
+
let(:html) { app.fetch_file(SAMPLES_DIR.join('sample.html')) }
|
8
|
+
let(:svg) { app.fetch_file(SAMPLES_DIR.join('sample.svg')) }
|
9
|
+
|
10
|
+
# ---------------------------------------------------------------------
|
11
|
+
|
12
|
+
describe 'processors' do
|
13
|
+
it 'adds #rasterize' do
|
14
|
+
html.must_respond_to :rasterize
|
15
|
+
svg.must_respond_to :rasterize
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyPhantomjs
|
4
|
+
module Processors
|
5
|
+
describe Rasterize do
|
6
|
+
|
7
|
+
let(:app) { test_app.configure_with(:svg) }
|
8
|
+
let(:processor) { DragonflyPhantomjs::Processors::Rasterize.new }
|
9
|
+
|
10
|
+
let(:html) { Dragonfly::Content.new(app, SAMPLES_DIR.join('sample.html')) }
|
11
|
+
let(:svg) { Dragonfly::Content.new(app, SAMPLES_DIR.join('sample.svg')) }
|
12
|
+
|
13
|
+
let(:options) {
|
14
|
+
{
|
15
|
+
border: 0,
|
16
|
+
format: 'A4',
|
17
|
+
paper_size: '210mm*297mm',
|
18
|
+
viewport_size: '1440*900',
|
19
|
+
zoom_factor: 1
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
describe 'html' do
|
24
|
+
it 'returns PDF' do
|
25
|
+
result = processor.call(html, :pdf, options)
|
26
|
+
get_mime_type(result.path).must_include "application/pdf"
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns PNG' do
|
30
|
+
result = processor.call(html, :png, options)
|
31
|
+
get_mime_type(result.path).must_include "image/png"
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'returns GIF' do
|
35
|
+
result = processor.call(html, :gif, options)
|
36
|
+
get_mime_type(result.path).must_include "image/gif"
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'returns JPEG' do
|
40
|
+
result = processor.call(html, :jpeg, options)
|
41
|
+
get_mime_type(result.path).must_include "image/jpeg"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'svg' do
|
46
|
+
it 'returns PDF' do
|
47
|
+
result = processor.call(svg, :pdf, options)
|
48
|
+
get_mime_type(result.path).must_include "application/pdf"
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'returns PNG' do
|
52
|
+
result = processor.call(svg, :png, options)
|
53
|
+
get_mime_type(result.path).must_include "image/png"
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'returns GIF' do
|
57
|
+
result = processor.call(svg, :gif, options)
|
58
|
+
get_mime_type(result.path).must_include "image/gif"
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'returns JPEG' do
|
62
|
+
result = processor.call(svg, :jpeg, options)
|
63
|
+
get_mime_type(result.path).must_include "image/jpeg"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# ---------------------------------------------------------------------
|
68
|
+
|
69
|
+
def get_mime_type file_path
|
70
|
+
`file --mime-type #{file_path}`.gsub(/\n/, "")
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
|
3
|
+
require 'minitest'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'minitest/spec'
|
6
|
+
|
7
|
+
require 'dragonfly'
|
8
|
+
require 'dragonfly_phantomjs'
|
9
|
+
|
10
|
+
# ---------------------------------------------------------------------
|
11
|
+
|
12
|
+
SAMPLES_DIR = Pathname.new(File.expand_path('../../samples', __FILE__))
|
13
|
+
|
14
|
+
# ---------------------------------------------------------------------
|
15
|
+
|
16
|
+
def test_app name=nil
|
17
|
+
app = Dragonfly::App.instance(name)
|
18
|
+
app.datastore = Dragonfly::MemoryDataStore.new
|
19
|
+
app.secret = "test secret"
|
20
|
+
app
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dragonfly_phantomjs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tomas Celizna
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-12-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dragonfly
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.5
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dragonfly_svg
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.6'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.6'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: An encoder converting .html or .svg documents to .gif, .jpeg, .pdf or
|
112
|
+
.png using PhantomJs
|
113
|
+
email:
|
114
|
+
- tomas.celizna@gmail.com
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".coveralls.yml"
|
120
|
+
- ".gitignore"
|
121
|
+
- ".travis.yml"
|
122
|
+
- Gemfile
|
123
|
+
- Guardfile
|
124
|
+
- LICENSE
|
125
|
+
- README.md
|
126
|
+
- Rakefile
|
127
|
+
- dragonfly_phantomjs.gemspec
|
128
|
+
- lib/dragonfly_phantomjs.rb
|
129
|
+
- lib/dragonfly_phantomjs/plugin.rb
|
130
|
+
- lib/dragonfly_phantomjs/processors/rasterize.rb
|
131
|
+
- lib/dragonfly_phantomjs/version.rb
|
132
|
+
- samples/sample.html
|
133
|
+
- samples/sample.svg
|
134
|
+
- script/rasterize.coffee
|
135
|
+
- test/dragonfly_phantomjs/plugin_test.rb
|
136
|
+
- test/dragonfly_phantomjs/processors/rasterize_test.rb
|
137
|
+
- test/test_helper.rb
|
138
|
+
homepage: https://github.com/tomasc/dragonfly_phantomjs
|
139
|
+
licenses:
|
140
|
+
- MIT
|
141
|
+
metadata: {}
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
require_paths:
|
145
|
+
- lib
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubyforge_project:
|
158
|
+
rubygems_version: 2.2.2
|
159
|
+
signing_key:
|
160
|
+
specification_version: 4
|
161
|
+
summary: An encoder converting .html or .svg documents to .gif, .jpeg, .pdf or .png
|
162
|
+
using PhantomJs
|
163
|
+
test_files:
|
164
|
+
- test/dragonfly_phantomjs/plugin_test.rb
|
165
|
+
- test/dragonfly_phantomjs/processors/rasterize_test.rb
|
166
|
+
- test/test_helper.rb
|