universign 0.2.1 → 0.2.3

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: 4a162d62ec1ebc95ac4c719c2bebe7b47f64f7df
4
- data.tar.gz: bc40b9c1401827933fd9d4223f7d199447929cb1
3
+ metadata.gz: 046e117415f3768789d8a8aaf03ada6bd372a90c
4
+ data.tar.gz: 27cd5cdd9b584f96eeb15f09802cd3616d7e7240
5
5
  SHA512:
6
- metadata.gz: 55c5e8b2e43b16ba960f67d7400b53791123da170f4a81a3611bfdc06557b8ec539a18108251faec05b3ae8a71314f7e5b0e60834a652384f04117e23a23071d
7
- data.tar.gz: 4b215f199a03f964cfb78118cfc14032de3f723c91f376c83f742253deb41d4d02489c5cb5b4ae562b4c031df206297d949ff1e8382f9167efa6eb068066a50a
6
+ metadata.gz: 8f7f79044e8b41ae62bdc2bb26532bc50dc1ae31556ddb1428fe0adfec46a2b2a5b6d058c54052865a103bec1a9acfec915f4d855f1129978846b67598ddb2c7
7
+ data.tar.gz: 923214c7d517c5c4db57f466082f758cdd986d9a45d3c8ff7c5b8cba34e19e7d0876fd488f4f8624e0d52dacaf7bbeeb9cb0277d0ddef1ac057a8d574ed73f25
data/lib/universign.rb CHANGED
@@ -17,41 +17,28 @@ module Universign
17
17
  # Configuration class
18
18
  class Configuration
19
19
  attr_accessor :language, :production, :user, :password, :debug,
20
- :profile
20
+ :profile, :handwritten_signature_mode
21
21
 
22
22
  def initialize
23
23
  @language = 'en'
24
24
  @debug = false
25
25
  @production = false
26
26
  @profile = 'default'
27
+ @handwritten_signature_mode = 0
27
28
  end
28
29
  end
29
30
 
30
31
  module Sign
31
32
  class << self
32
- SignerDefaultOptions = { firstname: nil,
33
- lastname: nil,
34
- organization: nil,
35
- profile: 'default',
36
- emailAddress: nil,
37
- phoneNum: nil,
38
- role: 'signer',
39
- signatureField: nil,
40
- successURL: nil,
41
- cancelURL: nil,
42
- failURL: nil,
43
- certificateType: 'simple',
44
- idDocuments: nil
45
- }.freeze
46
33
  SANDBOX_URL = 'sign.test.cryptolog.com'.freeze
47
34
  PROD_URL = 'sign.cryptolog.com'.freeze
35
+ PATH = '/sign/rpc'.freeze
48
36
 
49
37
  def client
50
38
  fail 'You need to set config options' if Universign.configuration.nil?
51
39
  host = Universign.configuration.production ? PROD_URL : SANDBOX_URL
52
- path = '/sign/rpc'
53
40
  client = Universign::Sign::Client.new(
54
- host, path, nil, nil, nil,
41
+ host, PATH, nil, nil, nil,
55
42
  Universign.configuration.user,
56
43
  Universign.configuration.password, true
57
44
  )
@@ -60,36 +47,37 @@ module Universign
60
47
  end
61
48
 
62
49
  def transaction_signer(options = {})
63
- options = options.reverse_merge(SignerDefaultOptions)
64
50
  validate_transaction_signer_argument options
65
- options.reject! { |_, v| v.nil? }
51
+ options
66
52
  end
67
53
 
68
- def transaction_document(content, name)
69
- { content: XMLRPC::Base64.new(content), name: name }
54
+ def transaction_document(content, name, options = {})
55
+ { content: XMLRPC::Base64.new(content), name: name }.merge options
70
56
  end
71
57
 
72
58
  private
73
59
 
74
60
  def validate_transaction_signer_argument(options)
75
61
  fail(ArgumentError, 'You have to provide a firstname') if
76
- options[:firstname].empty?
62
+ options[:firstname].to_s == ''
77
63
  fail(ArgumentError, 'You have to provide a lastname') if
78
- options[:lastname].empty?
64
+ options[:lastname].to_s == ''
79
65
  fail(ArgumentError, 'You have to provide an email') if
80
- options[:emailAddress].empty?
66
+ options[:emailAddress].to_s == ''
81
67
  end
82
68
  end
83
69
 
84
70
  class Client < XMLRPC::Client
85
71
  # Request signature (Client side)
86
- def request_transaction(signers, docs)
87
- signers = [signers] unless signers.is_a? Array
88
- docs = [docs] unless docs.is_a? Array
89
- request = { documents: docs, signers: signers,
90
- handwrittenSignatureMode: 0,
91
- profile: Universign.configuration.profile,
92
- language: Universign.configuration.language }
72
+ def request_transaction(signers, docs, options = {})
73
+ options[:documents] = (docs.is_a? Array) ? docs : [docs]
74
+ options[:signers] = (signers.is_a? Array) ? signers : [signers]
75
+ request = options.reverse_merge(
76
+ handwrittenSignatureMode: \
77
+ Universign.configuration.handwritten_signature_mode,
78
+ profile: Universign.configuration.profile,
79
+ language: Universign.configuration.language
80
+ )
93
81
  call('requester.requestTransaction', request)
94
82
  end
95
83
 
@@ -1,7 +1,5 @@
1
1
  class Hash
2
- unless Hash.respond_to? :reverse_merge
3
- def reverse_merge(other_hash)
4
- other_hash.merge(self)
5
- end
2
+ def reverse_merge(other_hash)
3
+ other_hash.merge(self)
6
4
  end
7
5
  end
@@ -1,3 +1,3 @@
1
1
  module Universign
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Foillard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-02 00:00:00.000000000 Z
11
+ date: 2016-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler