signature_generator 0.1.1 → 0.1.2

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