posgra 0.1.8 → 0.1.9

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