provider-dsl 1.0.3 → 1.0.4

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: 1ee0ecca0a46ac35eb09fb34ebe4c2d68358122e
4
- data.tar.gz: 196c04c12434340acecfd98b424fa286954a346e
3
+ metadata.gz: 6bf6e4d0bf4756d61250d4cae056bac7575b3f71
4
+ data.tar.gz: d05adfb24d6215f6e74314e2708872b63bd2b96d
5
5
  SHA512:
6
- metadata.gz: 4078c18ce5bf90cf359dbba37dc44873c6557cb5211d76856b82c332f356e9b5f3670b767352a7f28c7d732e60c898bb8c8481661fa213a8191000626ab90059
7
- data.tar.gz: adcd112cf12eaae3f38692c5ec8739b8424d66a5e65afee60d87770d25ddf9b73ae39a3abb88fdfb65f9618890aef00e4333e30c56ca6f39cb69ae7dece8d7c3
6
+ metadata.gz: 3880c73f77196ed3fe2687a901496ac2e955c39f9fa1edfcf731f846a827bb9026d102cb5b74688f9275ef72bf519f069aeb8e553e3f60e3c7d986bf41ffc8eb
7
+ data.tar.gz: b7e55440ebef5631536ff454ef9eced80270a0580c328b024b7c26b01ae3fd141772b3ceae6a5ecbd0fb0b4c7ef48b4c6d9870ea81c424252c683006fd030f7e
@@ -97,5 +97,30 @@ module ProviderDSL
97
97
  @logger.log((["Setting name servers for Gandi domain #{@domain_name} to:"] + @name_servers).join("\n "))
98
98
  @session.domain.nameservers.set(@domain_name, @name_servers)
99
99
  end
100
+
101
+ def mail_redirections
102
+ Hash[@session.domain.forward.list(@domain_name).map { |data| [data['source'], data['destinations'].uniq.sort] }]
103
+ end
104
+
105
+ def mail_redirections!(new_redirections)
106
+ current_redirections = mail_redirections
107
+ new_redirections.each do |source, new_destinations|
108
+ new_destinations = Array(new_destinations).uniq.sort
109
+ if current_redirections.key?(source)
110
+ current_destinations = current_redirections[source].uniq.sort
111
+ next if new_destinations == current_destinations
112
+ @logger.log((["Updating #{@domain_name} mail forwarder for #{source}:"] + new_destinations).join("\n "))
113
+ @session.domain.forward.update(@domain_name, source, destinations: new_destinations)
114
+ else
115
+ @logger.log((["Creating #{@domain_name} mail forwarder for #{source}:"] + new_destinations).join("\n "))
116
+ @session.domain.forward.create(@domain_name, source, destinations: new_destinations)
117
+ end
118
+ end
119
+ current_redirections.each do |source, _|
120
+ next if new_redirections.key?(source)
121
+ @logger.log("Deleting #{@domain_name} mail forwarder for #{source}")
122
+ @session.domain.forward.delete(@domain_name, source)
123
+ end
124
+ end
100
125
  end
101
126
  end
@@ -1,7 +1,7 @@
1
1
  module ProviderDSL
2
2
  module GemDescription
3
3
  NAME = 'provider-dsl'.freeze
4
- VERSION = '1.0.3'.freeze
4
+ VERSION = '1.0.4'.freeze
5
5
  SUMMARY = 'A DSL for interacting with various service provider APIs'.freeze
6
6
  PAGE = 'https://github.com/sappho/gem-provider_dsl'.freeze
7
7
  AUTHORS = ['Andrew Heald'].freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: provider-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Heald
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-13 00:00:00.000000000 Z
11
+ date: 2017-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake