signature_generator 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75ffe0825f16582203a526b0551cce284c414871
4
- data.tar.gz: f1b7443f1be522bb207a69d10ed3cbc1676be11e
3
+ metadata.gz: 125f4dcd21ef78e46b2548ba7bb2da7c046503c9
4
+ data.tar.gz: d63a1abdfe22e5062e7dc14be1b97848cb8606df
5
5
  SHA512:
6
- metadata.gz: 5b6a32236d199187e8740cee2e73f73542b33de5c5e61dd8acaa047fe86490725e4020a724cd82a758707aa44fbeb9b4cf8e3e2dac23889fac4d177a1254b33b
7
- data.tar.gz: d80bdd0a655bd639c354dc8d47653ccc71e69dc153f945654e5179c51d0bdfc5abc114ab26dff9b2d0f61d3acaa0bf2c0635c8f1f93f2fbab9cf65e7fe45314b
6
+ metadata.gz: 1cb710d4b9d8ad4c9f25bfd7a57888d6274e54a64e2e47509e4933e216db52cb8a93b043b2f714f0cb5006147fecf3c7824bb63c966c3638215188747705b400
7
+ data.tar.gz: 139ee24970e91eac4c0e332cc00b709e15d0d34b1726ccf34b66238e09e10177c30be0fee7abc685d2643ba1cd6b76c84ae5eb4d0932cccf25e9b1e70aa3f934
data/exe/sg CHANGED
@@ -39,6 +39,7 @@ module SignatureGenerator
39
39
  argument: true, as: Integer
40
40
  slop.on :var=, 'Define variables in the form name=value', argument: true, as: Array
41
41
  slop.on :n, :'no-minify', 'Will not minify the resulting html signature. By default will do', argument: false
42
+ slop.on :'inline-images', 'Encodes remote images as Base64', argument: false
42
43
  end
43
44
  end
44
45
 
@@ -3,6 +3,7 @@ require 'easy_app_helper'
3
3
  require 'signature_generator/version'
4
4
  require 'signature_generator/error'
5
5
  require 'signature_generator/context'
6
+ require 'signature_generator/inliner'
6
7
  require 'signature_generator/processor'
7
8
 
8
9
  module SignatureGenerator
@@ -0,0 +1,39 @@
1
+ require 'base64'
2
+ require 'open-uri'
3
+
4
+ module SignatureGenerator
5
+
6
+ class Inliner
7
+
8
+ IMG_TAG = /<img[^>]+src\s*=\s*"(https?:\/\/[^"]+\.(?:png|jpg|jpeg))"/
9
+
10
+ attr_reader :original_content
11
+
12
+ def initialize(content)
13
+ @original_content = content
14
+ end
15
+
16
+ def inlined
17
+ result = original_content.dup
18
+ url_candidates = result.scan(IMG_TAG).flatten
19
+ url_candidates.each do |url|
20
+ content64 = load_file url
21
+ result.gsub! url, content64
22
+ end
23
+ result
24
+ end
25
+
26
+ private
27
+
28
+ def load_file(url)
29
+ content = open(url) {|f| f.read }
30
+ ext = url.gsub /^.*\.([^\.]+)\s*$/, '\1'
31
+ content64 = Base64.strict_encode64 content
32
+ 'data:image/%s;base64,%s' % [ext, content64]
33
+ rescue
34
+ EasyAppHelper.logger.warn SignatureGenerator::Error, "Cannot load file '#{file}'"
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -19,6 +19,9 @@ module SignatureGenerator
19
19
  def transform(template, context = self.context)
20
20
  counters = {}
21
21
  begin
22
+ if config[:'inline-images']
23
+ template = SignatureGenerator::Inliner.new(template).inlined
24
+ end
22
25
  @results = ERB.new(template, nil, '-').result(context_as_binding context)
23
26
  rescue NameError => e
24
27
  missing_var = e.name
@@ -1,3 +1,3 @@
1
1
  module SignatureGenerator
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signature_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent B.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-05 00:00:00.000000000 Z
11
+ date: 2017-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,6 +117,7 @@ files:
117
117
  - lib/signature_generator.rb
118
118
  - lib/signature_generator/context.rb
119
119
  - lib/signature_generator/error.rb
120
+ - lib/signature_generator/inliner.rb
120
121
  - lib/signature_generator/processor.rb
121
122
  - lib/signature_generator/version.rb
122
123
  - signature_generator.gemspec