posgra 0.1.8 → 0.1.9

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: 88ab471ccf58ec73004e2126bfc4e792cd5d820a
4
- data.tar.gz: bdad2d5360a197562813e9c0b2fc02f32bae8e1c
3
+ metadata.gz: 951beba5dfa0b044ea3b5467f856c20b475e373d
4
+ data.tar.gz: 0ad1275dcb66c096037f2f8b3bf5a7817334288f
5
5
  SHA512:
6
- metadata.gz: b9e1fcdd4093419f51b9d3206ca2b77c18e51c97cee2487d06091590f9e9c9ff213d4ae427f6a02a5362e6e165650ce1b78d990436ceb1e15d35c36b5b42ea51
7
- data.tar.gz: c40c624fb7b38894e969e3e569f8a4a636c5d8fdcd9e7b236780142292db05349c19cefbc6a51fbe76893d9326cac4742859e0ecaf3d47cae8babafb7d719ad1
6
+ metadata.gz: f5da29a44a9d95f2c9867df4154bebab2d954c54b7d285568bd91c8070fcfb7bfd8a4ef3057b9117357c1767c407c96952594b323a0d7055503ff3af4c1f268a
7
+ data.tar.gz: 1cd71973a72a56835041229493e914b751822214ec291e64f81f4f206772a089c834560eace40a1c079cb84b1c35f84f6b99c0f6fc650e5d93b5151e39945e09
data/.travis.yml CHANGED
@@ -11,6 +11,9 @@ script:
11
11
  - bundle exec rake
12
12
  addons:
13
13
  postgresql: "9.4"
14
+ apt:
15
+ packages:
16
+ - libgmp-dev
14
17
  env:
15
18
  global:
16
19
  - POSGRA_TEST_USER=postgres
data/lib/posgra/client.rb CHANGED
@@ -74,7 +74,7 @@ class Posgra::Client
74
74
  expected_users_by_group = expected.fetch(:users_by_group)
75
75
  actual_users_by_group = actual.fetch(:users_by_group)
76
76
  expected_users = (expected_users_by_group.values.flatten + expected.fetch(:users)).uniq
77
- actual_users = actual.fetch(:users)
77
+ actual_users = (actual_users_by_group.values.flatten + actual.fetch(:users)).uniq
78
78
 
79
79
  updated = pre_walk_groups(expected_users_by_group, actual_users_by_group)
80
80
  updated = walk_users(expected_users, actual_users) || updated
@@ -10,7 +10,27 @@ class Posgra::DSL::Roles
10
10
  end
11
11
 
12
12
  def result
13
- @result.fetch(:users).uniq
13
+ @result[:users].uniq!
14
+
15
+ group_users = @result[:users_by_group].flat_map do |group, users|
16
+ if users.empty?
17
+ [group, nil]
18
+ else
19
+ users.map {|u| [group, u] }
20
+ end
21
+ end
22
+
23
+ new_users_by_group = {}
24
+
25
+ group_users.each do |group, user|
26
+ next unless [group, user].any? {|i| not i.nil? and matched?(i, @options[:include_role], @options[:exclude_role]) }
27
+ new_users_by_group[group] ||= []
28
+ new_users_by_group[group] << user if user
29
+ end
30
+
31
+ new_users_by_group.values.each(&:uniq!)
32
+ @result[:users_by_group] = new_users_by_group
33
+
14
34
  @result
15
35
  end
16
36
 
@@ -59,9 +79,6 @@ class Posgra::DSL::Roles
59
79
 
60
80
  def group(name, &block)
61
81
  name = name.to_s
62
-
63
- if matched?(name, @options[:include_role], @options[:exclude_role])
64
- @result[:users_by_group][name] = Posgra::DSL::Roles::Group.new(@context, name, @options, &block).result
65
- end
82
+ @result[:users_by_group][name] = Posgra::DSL::Roles::Group.new(@context, name, @options, &block).result
66
83
  end
67
84
  end
@@ -15,10 +15,6 @@ class Posgra::DSL::Roles::Group
15
15
 
16
16
  def user(name)
17
17
  name = name.to_s
18
-
19
- if matched?(name, @options[:include_role], @options[:exclude_role])
20
- name = name.kind_of?(Regexp) ? name : name.to_s
21
- @result << name
22
- end
18
+ @result << name
23
19
  end
24
20
  end
@@ -1,3 +1,3 @@
1
1
  module Posgra
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posgra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-05 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg