dragonfly_phantomjs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1 @@
1
+ service_name: travis-ci
@@ -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
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ cache: bundler
3
+ script: 'bundle exec rake'
4
+ rvm:
5
+ - 1.9.3
6
+
7
+ notifications:
8
+ email:
9
+ recipients:
10
+ - tomas.celizna@gmail.com
11
+ on_failure: change
12
+ on_success: never
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in dragonfly_phantomjs.gemspec
4
+ gemspec
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :minitest do
5
+ watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
6
+ watch(%r{^test/.+_test\.rb$})
7
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
8
+ end
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.
@@ -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
@@ -0,0 +1,9 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'test'
6
+ t.pattern = 'test/**/*_test.rb'
7
+ end
8
+
9
+ task :default => :test
@@ -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,9 @@
1
+ require "dragonfly"
2
+ require "dragonfly_phantomjs/plugin"
3
+ require "dragonfly_phantomjs/version"
4
+
5
+ module DragonflyPhantomjs
6
+ def self.root
7
+ File.expand_path '../..', __FILE__
8
+ end
9
+ 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
@@ -0,0 +1,3 @@
1
+ module DragonflyPhantomjs
2
+ VERSION = "0.0.1"
3
+ end
@@ -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>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0"?>
2
+ <svg version="1.1" id="sample_id" xmlns="http://www.w3.org/2000/svg" width="200" height="300" viewBox="0 0 200 300">
3
+ <rect fill="none" stroke="#000000" x="0" y="0" width="200" height="300" />
4
+ </svg>
@@ -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
@@ -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