provider-dsl 1.0.3 → 1.0.4

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