signature_generator 0.1.1 → 0.1.2

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: 8f7bf9f84d0258e6fc0eaac70bf19a65a1c3093f
4
- data.tar.gz: 902bc3dab4a1809e7c090c9033058c40b63e52c7
3
+ metadata.gz: 3c8de23633f2e0983ed395fe8b16d78a0ec1bdd8
4
+ data.tar.gz: 48f34f59ea6369118415fc4a009791c5a7b76e75
5
5
  SHA512:
6
- metadata.gz: 2290c0db425a9b29f1914d8dfc5a3ad86f9fc4c5b573372e173d06a3b8df55cfe91c1da50ff13069b9ce32e792d33feea40cfe0427d3d72944c35afbd5faa59a
7
- data.tar.gz: 20f1e4f3bbf1067ae0438dc2ef8dc4424b58fefccd148920b234da2b2314ef1b6f5c80d08e6697a59a0d8eaf5daec2e0e86fcb5ba819da8c89e1dbf559e2d7fb
6
+ metadata.gz: 0a0230c4e62a5d992df66f5c00866aa3a0535cc39d0de29c838d0bec9809463aeece7d39b4321dc77a03f22eb023010398b986c81ca520ae67e9cced52b025a1
7
+ data.tar.gz: c07e76de765c3cbb43b02df6bf85ed22f12ae96e090ce4a4ce32e93e595d7ea09b2eae97bd01aac50f01e285978de4cfb743cd051f98b06e56c1fb847d860f77
data/README.md CHANGED
@@ -3,9 +3,12 @@
3
3
  [![Build Status](https://travis-ci.org/lbriais/signature_generator.svg)](https://travis-ci.org/lbriais/signature_generator)
4
4
  [![Gem Version](https://badge.fury.io/rb/signature_generator.svg)](http://badge.fury.io/rb/signature_generator)
5
5
 
6
+ The goal of this Ruby Gem is to provide a simple script to manage company email staff signatures consistently
7
+ by providing a simple ERB-based templating mechanism to generate actual employee signature.
6
8
 
7
- This gem provides the `sg` executable to generate signature files from templates.
8
- Variables used in the template, can be provided at run-time either by:
9
+
10
+ This gem provides the `sg` executable to generate signature file from template.
11
+ Any undefined variable used in the ERB template has to be provided at run-time either by:
9
12
 
10
13
  * Providing values on command line
11
14
  * Providing values in config file
data/exe/sg CHANGED
@@ -34,6 +34,9 @@ module SignatureGenerator
34
34
  slop.on :f, :'template-file', 'Specify the signature template file. Default is STDIN.', argument: true, as: String
35
35
  slop.on :o, :'output-file', 'Specify the output file for the signature. Default is STDOUT.', argument: true, as: String
36
36
  slop.on :force, 'Force overwriting output file.', argument: false
37
+ slop.on :'max-retry',
38
+ "Number of times retrying is allowed when prompted for values. Default is #{SignatureGenerator::Processor::MAX_RETRY}.",
39
+ argument: true, as: Integer
37
40
  slop.on :var=, 'Define variables in the form name=value', argument: true, as: Array
38
41
  slop.on :n, :'no-minify', 'Will not minify the resulting html signature. By default will do', argument: false
39
42
  end
@@ -43,7 +46,7 @@ module SignatureGenerator
43
46
  # Your code here.
44
47
  content = template_io.read
45
48
  logger.debug content
46
- processor = SignatureGenerator::Processor.new context
49
+ processor = SignatureGenerator::Processor.new context: context, max_retry: config['max-retry']
47
50
  signature = processor.transform content
48
51
  logger.debug signature
49
52
  unless config[:'no-minify']
@@ -61,17 +64,18 @@ module SignatureGenerator
61
64
  def check_config
62
65
  # Check the config and raise an exception if incorrect.
63
66
  config[:var] ||=[]
67
+ # Context setup
64
68
  @context = {}
65
69
  config[:var].each do |definition|
66
70
  valid = false
67
- definition.match(/^\s*(?<var_name>[a-z][a-z0-9_]*)\s*=\s*(?<var_value>.+)\s*$/) do |md|
71
+ definition.match(/^\s*(?<var_name>[a-z][a-z0-9_]*[!\?]?)\s*=\s*(?<var_value>.+)\s*$/) do |md|
68
72
  logger.warning "Overwriting existing variable '#{md['var_name']}' !" if context[md['var_name']]
69
73
  context[md['var_name'].to_sym] = md['var_value']
70
74
  valid = true
71
75
  end
72
76
  raise SignatureGenerator::Error, 'Invalid property specified !' unless valid
73
77
  end
74
-
78
+ # Input definition
75
79
  @template_io = case config[:'template-file']
76
80
  when NilClass
77
81
  logger.debug 'Template from STDIN'
@@ -83,6 +87,7 @@ module SignatureGenerator
83
87
  logger.debug "Template from file '#{file}'"
84
88
  io
85
89
  end
90
+ # Output definition
86
91
  @output_io = case config[:'output-file']
87
92
  when NilClass
88
93
  logger.debug 'Signature to STDOUT'
@@ -9,9 +9,11 @@ module SignatureGenerator
9
9
  MAX_RETRY = 3
10
10
 
11
11
  attr_reader :results, :context
12
+ attr_accessor :max_retry
12
13
 
13
- def initialize(context={})
14
+ def initialize(context: {}, max_retry: MAX_RETRY)
14
15
  self.context = context
16
+ self.max_retry = max_retry
15
17
  end
16
18
 
17
19
  def transform(template, context = self.context)
@@ -24,7 +26,7 @@ module SignatureGenerator
24
26
  counters[missing_var] += 1
25
27
  debug_msg = "Variable not provided: #{missing_var} (attempt ##{counters[missing_var]})"
26
28
  logger.debug debug_msg
27
- if counters[missing_var] > MAX_RETRY
29
+ if counters[missing_var] > max_retry
28
30
  logger.error 'Maximum retry number exceeded. Aborting !'
29
31
  raise e
30
32
  end
@@ -1,3 +1,3 @@
1
1
  module SignatureGenerator
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
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.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent B.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-12 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler