signature_generator 0.1.4 → 0.1.5

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 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