Class: Powersnap
- Inherits:
-
Object
- Object
- Powersnap
- Defined in:
- lib/powersnap.rb
Instance Attribute Summary collapse
-
#prefix ⇒ Object
Returns the value of attribute prefix.
-
#urls ⇒ Object
Returns the value of attribute urls.
Class Method Summary collapse
Instance Method Summary collapse
- #generate(dir: ".", width: 768, height: 1024, pattern: "image-{index}.png", zoom: 1.0, page: false, quality: 100, css: nil) ⇒ Object
-
#initialize(urls, prefix: nil) ⇒ Powersnap
constructor
A new instance of Powersnap.
Constructor Details
#initialize(urls, prefix: nil) ⇒ Powersnap
Returns a new instance of Powersnap.
14 15 16 17 18 |
# File 'lib/powersnap.rb', line 14 def initialize(urls, prefix: nil) prefix ||= self.class.powersnap_config["prefix"] @urls = urls.map { |url| URI.encode(url) } @prefix = prefix end |
Instance Attribute Details
#prefix ⇒ Object
Returns the value of attribute prefix.
2 3 4 |
# File 'lib/powersnap.rb', line 2 def prefix @prefix end |
#urls ⇒ Object
Returns the value of attribute urls.
2 3 4 |
# File 'lib/powersnap.rb', line 2 def urls @urls end |
Class Method Details
.default_powersnap_config ⇒ Object
9 10 11 |
# File 'lib/powersnap.rb', line 9 def default_powersnap_config { "prefix" => nil } end |
.powersnap_config ⇒ Object
5 6 7 |
# File 'lib/powersnap.rb', line 5 def powersnap_config @system_prefix ||= (File.exist?("powersnap.yml") ? YAML.load_file("powersnap.yml") : default_powersnap_config) end |
Instance Method Details
#generate(dir: ".", width: 768, height: 1024, pattern: "image-{index}.png", zoom: 1.0, page: false, quality: 100, css: nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/powersnap.rb', line 20 def generate(dir: ".", width: 768, height: 1024, pattern: "image-{index}.png", zoom: 1.0, page: false, quality: 100, css: nil) extension = File.extname(pattern) if extension == ".jpg" format = "jpeg" elsif extension == ".png" format = "png" else raise "Invalid file extension: #{extension}" end cmd = "#{@prefix} powersnap -j -d \"#{dir}\" -t \"#{format}\" -q #{quality} -z #{zoom} #{page ? '--page' : ''} -w #{width.to_i} -h #{height.to_i} #{(css and "-c #{css}")} -f \"#{pattern}\" #{@urls.join(' ')}" json_response = `#{cmd}` JSON.parse(json_response) rescue { "status" => "error" } end |