ixtlan-guard 0.1.0 → 0.4.0

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.
Files changed (44) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/lib/generators/active_record/templates/flavor_migration.rb +13 -0
  3. data/lib/generators/active_record/templates/flavor_model.rb +8 -0
  4. data/lib/generators/active_record/templates/group_model.rb +43 -0
  5. data/lib/generators/active_record/templates/group_user_migration.rb +13 -0
  6. data/lib/generators/active_record/templates/user_model.rb +124 -0
  7. data/lib/generators/active_record/user_management_models_generator.rb +202 -0
  8. data/lib/generators/erb/user_management_controller_generator.rb +10 -0
  9. data/lib/generators/{ixtlan → guard}/controller/USAGE +0 -0
  10. data/lib/generators/{ixtlan → guard}/controller/controller_generator.rb +2 -2
  11. data/lib/generators/{ixtlan → guard}/scaffold/USAGE +0 -0
  12. data/lib/generators/{ixtlan → guard}/scaffold/scaffold_generator.rb +4 -6
  13. data/lib/generators/guard/scaffold/templates/guard.rb +20 -0
  14. data/lib/generators/guard/templates/guard.rb +20 -0
  15. data/lib/generators/ixtlan/maintenance_scaffold/USAGE +8 -0
  16. data/lib/generators/ixtlan/maintenance_scaffold/maintenance_scaffold_generator.rb +40 -0
  17. data/lib/generators/ixtlan/permissions_scaffold/USAGE +8 -0
  18. data/lib/generators/ixtlan/permissions_scaffold/permissions_scaffold_generator.rb +33 -0
  19. data/lib/generators/ixtlan/user_management_controller/USAGE +8 -0
  20. data/lib/generators/ixtlan/user_management_controller/user_management_controller_generator.rb +23 -0
  21. data/lib/generators/ixtlan/user_management_models/USAGE +8 -0
  22. data/lib/generators/ixtlan/user_management_models/user_management_models_generator.rb +19 -0
  23. data/lib/generators/ixtlan/user_management_scaffold/user_management_scaffold_generator.rb +13 -0
  24. data/lib/ixtlan-guard.rb +2 -2
  25. data/lib/ixtlan/guard.rb +1 -159
  26. data/lib/ixtlan/guard/controllers/maintenance_controller.rb +45 -0
  27. data/lib/ixtlan/guard/controllers/permissions_controller.rb +41 -0
  28. data/lib/ixtlan/guard/guard.rb +245 -0
  29. data/lib/ixtlan/guard/models/maintenance.rb +55 -0
  30. data/lib/ixtlan/guard/models/user_update_manager.rb +95 -0
  31. data/lib/ixtlan/guard/rails_integration.rb +88 -0
  32. data/lib/ixtlan/guard/railtie.rb +33 -0
  33. data/lib/ixtlan/guard/spec/user_management_models_spec.rb +193 -0
  34. data/spec/guard_spec.rb +48 -12
  35. data/spec/railtie_spec.rb +1 -1
  36. metadata +75 -52
  37. data/lib/generators/ixtlan/templates/edit.html.erb +0 -10
  38. data/lib/generators/ixtlan/templates/guard.rb +0 -13
  39. data/lib/generators/ixtlan/templates/index.html.erb +0 -35
  40. data/lib/generators/ixtlan/templates/new.html.erb +0 -7
  41. data/lib/generators/ixtlan/templates/show.html.erb +0 -16
  42. data/lib/generators/scaffold/scaffold/scaffold_generator.rb +0 -23
  43. data/lib/ixtlan/guard_railtie.rb +0 -43
  44. data/lib/ixtlan/rails_integration.rb +0 -55
@@ -0,0 +1,33 @@
1
+ require 'rails'
2
+ require 'ixtlan/guard'
3
+ require 'logger'
4
+
5
+ module Ixtlan
6
+ module Guard
7
+ class Railtie < Rails::Railtie
8
+
9
+ config.before_configuration do |app|
10
+ app.config.guard =
11
+ Ixtlan::Guard::Guard.new(:guard_dir => File.join(Rails.root, "app", "guards"))
12
+ end
13
+
14
+ config.after_initialize do |app|
15
+ logger = app.config.logger || Rails.logger || Logger.new(STDERR)
16
+ app.config.guard.logger = logger unless defined?(Slf4r)
17
+ begin
18
+ app.config.guard.setup
19
+ rescue Ixtlan::Guard::GuardException => e
20
+ logger.warn e.message
21
+ end
22
+ end
23
+
24
+ config.generators do
25
+ require 'rails/generators'
26
+ require 'rails/generators/rails/controller/controller_generator'
27
+ Rails::Generators::ControllerGenerator.hook_for :guard, :type => :boolean, :default => true do |controller|
28
+ invoke controller, [ class_name, actions ]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,193 @@
1
+ shared_examples_for 'integration-test' do
2
+
3
+ describe "UserManagementModels" do
4
+
5
+ before :all do
6
+ @root = Group.find_by_name(Group::ROOT) || Group.create(:name => Group::ROOT)
7
+ @admin = Group.find_by_name(Group::ADMIN) || Group.create(:name => Group::ADMIN)
8
+ @translator = Group.find_by_name("translator") || Group.create(:name => "translator")
9
+ @superuser = User.find_by_id(1)
10
+ if @superuser.nil? || @superuser.groups == []
11
+ @superuser = User.create!
12
+ @superuser.groups << @root
13
+ @superuser.save!
14
+ end
15
+ @main = Domain.find_by_name('main') || Domain.create(:name => 'main')
16
+ @sub = Domain.find_by_name('sub') || Domain.create(:name => 'sub')
17
+ DomainsGroupsUser.delete_all
18
+ @adminuser = User.new('group_ids' => [@admin.id])
19
+ @adminuser.current_user = @superuser
20
+ @adminuser.save
21
+ end
22
+
23
+ describe "root user" do
24
+ it 'should create user' do
25
+ @adminuser.id.should_not be_nil
26
+ @adminuser.groups.should == [@admin]
27
+ @adminuser.domains_for_group(@admin).should == []
28
+ end
29
+
30
+ it 'should add domain to user via update' do
31
+ @adminuser.domains_for_group(@admin).member?(@main).should be_false
32
+ @adminuser.current_user = @superuser
33
+ @adminuser.update_attributes(Group::ADMIN => { 'domain_ids' => [@main.id.to_s] }, 'group_ids' => [@admin.id.to_s])
34
+ @adminuser.domains_for_group(@admin).member?(@main).should be_true
35
+ @adminuser.current_user.should be_nil
36
+ end
37
+
38
+ it 'should raise error when adding a domain without current_user set' do
39
+ @adminuser.current_user = nil
40
+ lambda { @adminuser.update_attributes(Group::ADMIN => { 'domain_ids' => [@sub.id.to_s] }, 'group_ids' => [@admin.id.to_s]) }.should raise_error
41
+ @adminuser.current_user.should be_nil
42
+ end
43
+
44
+ it 'should add new group through update' do
45
+ @adminuser.groups.member?(@translator).should be_false
46
+ @adminuser.current_user = @superuser
47
+ @adminuser.update_attributes('group_ids' => [@translator.id.to_s])
48
+ @adminuser.groups.member?(@translator).should be_true
49
+ end
50
+
51
+ it 'should raise error when adding new group' do
52
+ @adminuser.groups.member?(@root).should be_false
53
+ @adminuser.current_user = nil
54
+ lambda{ @adminuser.update_attributes('group_ids' => [@translator.id.to_s])}.should raise_error
55
+ @adminuser.current_user.should be_nil
56
+ end
57
+ end
58
+
59
+ describe "admin user" do
60
+
61
+ before :all do
62
+ @locales = Group.find_by_name("locales") || Group.create(:name => "locales")
63
+ @adminuser.current_user = @superuser
64
+ @adminuser.update_attributes('group_ids' => [@admin.id.to_s, @locales.id.to_s], Group::ADMIN => {"domain_ids" => [@main.id.to_s]})
65
+ @adminuser.save
66
+ end
67
+
68
+ it 'should create new users' do
69
+ user = User.new('group_ids' => [@admin.id.to_s])
70
+ user.current_user = @adminuser
71
+ user.save.should be_true
72
+ user.groups.member?(@admin).should be_true
73
+ user.groups.size.should == 1
74
+ end
75
+
76
+ it 'should not add group via update_attributes which admin does not belong to' do
77
+ user = User.create({:current_user => @adminuser, 'group_ids' => [@root.id.to_s]})
78
+ user.id.should_not be_nil
79
+
80
+ user.groups.member?(@root).should be_false
81
+ user.groups.size.should == 0
82
+ end
83
+
84
+ it 'should not add group via update_attributes which admin does not belong to' do
85
+ user = User.create(:current_user => @adminuser)
86
+ user.id.should_not be_nil
87
+
88
+ user.current_user = @adminuser
89
+ user.update_attributes('group_ids' => [@root.id.to_s]).should be_true
90
+
91
+ user.groups.member?(@root).should be_false
92
+ user.groups.size.should == 0
93
+ end
94
+
95
+ it 'should be able to delete only groups belonging to admin, leave others alone' do
96
+ user = User.create(:current_user => @superuser, 'group_ids' => [@translator.id.to_s])
97
+ user.groups.member?(@translator).should be_true
98
+
99
+ user.current_user = @adminuser
100
+ user.update_attributes('group_ids' => []).should be_true
101
+
102
+ user.groups.member?(@translator).should be_true
103
+ user.groups.size.should == 1
104
+ end
105
+
106
+ it 'should be able to add and delete groups belonging to admin' do
107
+ user = User.create(:current_user => @superuser, 'group_ids' => [@translator.id.to_s])
108
+ user.id.should_not be_nil
109
+ user.groups.member?(@translator).should be_true
110
+
111
+ user.current_user = @adminuser
112
+ user.update_attributes('group_ids' => [@admin.id.to_s, @locales.id.to_s]).should be_true
113
+
114
+ user.groups.member?(@translator).should be_true
115
+ user.groups.size.should == 3
116
+
117
+ user.current_user = @adminuser
118
+ user.update_attributes('group_ids' => [@locales.id.to_s]).should be_true
119
+
120
+ user.groups.member?(@locales).should be_true
121
+ user.groups.member?(@translator).should be_true
122
+ user.groups.size.should == 2
123
+ end
124
+
125
+ it 'should create new users with domains' do
126
+ # first create to have an ID
127
+ user = User.create(:current_user => @adminuser)
128
+ user.id.should_not be_nil
129
+ # then add the domain
130
+ user.update_attributes(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [@main.id.to_s] })
131
+
132
+ user.groups.member?(@admin).should be_true
133
+ user.groups.size.should == 1
134
+
135
+ user.domains_for_group(@admin).member?(@main).should be_true
136
+ user.domains_for_group(@admin).size.should == 1
137
+ end
138
+
139
+ it 'should add only domains which belongs to admin' do
140
+ # first create to have an ID
141
+ user = User.create(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s])
142
+ user.id.should_not be_nil
143
+ # then add the domain
144
+ user.update_attributes(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [@main.id.to_s, @sub.id.to_s] })
145
+
146
+ user.groups.member?(@admin).should be_true
147
+ user.groups.size.should == 1
148
+
149
+ user.domains_for_group(@admin).member?(@main).should be_true
150
+ user.domains_for_group(@admin).size.should == 1
151
+ end
152
+
153
+ it 'should add only domains belonging to the admin' do
154
+ # first create to have an ID
155
+ user = User.create(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s])
156
+ user.id.should_not be_nil
157
+ # then add the domain
158
+ user.update_attributes(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [@main.id.to_s, @sub.id.to_s] })
159
+
160
+ user.groups.member?(@admin).should be_true
161
+ user.groups.size.should == 1
162
+
163
+ user.domains_for_group(@admin).member?(@main).should be_true
164
+ user.domains_for_group(@admin).size.should == 1
165
+
166
+ user.update_attributes(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [] })
167
+ user.domains_for_group(@admin).size.should == 0
168
+ end
169
+
170
+ it 'should delete only domains belonging to the admin' do
171
+ # first create to have an ID
172
+ user = User.create(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s])
173
+ user.id.should_not be_nil
174
+ # then add the domain
175
+ user.update_attributes(:current_user => @superuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [@main.id.to_s, @sub.id.to_s] })
176
+
177
+ user.groups.member?(@admin).should be_true
178
+ user.groups.size.should == 1
179
+
180
+ user.domains_for_group(@admin).member?(@main).should be_true
181
+ user.domains_for_group(@admin).member?(@sub).should be_true
182
+ user.domains_for_group(@admin).size.should == 2
183
+
184
+ user.update_attributes(:current_user => @adminuser, 'group_ids' => [@admin.id.to_s], "admin" => {"domain_ids" => [] })
185
+
186
+ user.domains_for_group(@admin).member?(@main).should be_false
187
+ user.domains_for_group(@admin).member?(@sub).should be_true
188
+ user.domains_for_group(@admin).size.should == 1
189
+ end
190
+ end
191
+ end
192
+ end
193
+
data/spec/guard_spec.rb CHANGED
@@ -4,15 +4,23 @@ require 'ixtlan/guard'
4
4
  describe Ixtlan::Guard do
5
5
 
6
6
  before :all do
7
- @guard = Ixtlan::Guard.new(Logger.new(STDOUT),
8
- :root,
9
- File.join(File.dirname(__FILE__), "guards") )
7
+ @guard = Ixtlan::Guard::Guard.new(:guard_dir => File.join(File.dirname(__FILE__), "guards") )
10
8
 
11
9
  @guard.setup
12
10
  @current_user = Object.new
13
11
  def @current_user.groups(g = nil)
14
- @g = g if g
15
- @g || []
12
+ if g
13
+ @groups = g.collect do |gg|
14
+ group = Object.new
15
+ def group.name(name =nil)
16
+ @name = name if name
17
+ @name
18
+ end
19
+ group.name(gg)
20
+ group
21
+ end
22
+ end
23
+ @groups || []
16
24
  end
17
25
 
18
26
  @controller = Object.new
@@ -24,20 +32,18 @@ describe Ixtlan::Guard do
24
32
  end
25
33
 
26
34
  it 'should fail with missing guard dir' do
27
- lambda {Ixtlan::Guard.new(Logger.new(STDOUT),
28
- :root,
29
- "does_not_exists").setup }.should raise_error(Ixtlan::GuardException)
35
+ lambda {Ixtlan::Guard::Guard.new(:guard_dir => "does_not_exists").setup }.should raise_error(Ixtlan::Guard::GuardException)
30
36
  end
31
37
 
32
38
  it 'should initialize' do
33
39
  @guard.should_not be_nil
34
40
  end
35
41
 
36
- it 'should pass check without user' do
42
+ it 'should fail check without current user' do
37
43
  controller = Object.new
38
44
  def controller.current_user
39
45
  end
40
- @guard.check(controller, :none, :something).should be_true
46
+ @guard.check(controller, :none, :something).should be_false
41
47
  end
42
48
 
43
49
  it 'should pass check with user being root' do
@@ -65,6 +71,36 @@ describe Ixtlan::Guard do
65
71
  @guard.check(@controller, :users, :update).should be_true
66
72
  end
67
73
 
74
+ it 'should not pass check with user when in blocked group' do
75
+ @current_user.groups([:users])
76
+ @guard.block_groups([:users])
77
+ begin
78
+ @guard.check(@controller, :users, :update).should be_false
79
+ ensure
80
+ @guard.block_groups([])
81
+ end
82
+ end
83
+
84
+ it 'should pass check with user when not in blocked group' do
85
+ @current_user.groups([:users])
86
+ @guard.block_groups([:accounts])
87
+ begin
88
+ @guard.check(@controller, :users, :update).should be_true
89
+ ensure
90
+ @guard.block_groups([])
91
+ end
92
+ end
93
+
94
+ it 'should pass check with root-user when not in blocked group' do
95
+ @current_user.groups([:root])
96
+ @guard.block_groups([:root])
97
+ begin
98
+ @guard.check(@controller, :users, :update).should be_true
99
+ ensure
100
+ @guard.block_groups([])
101
+ end
102
+ end
103
+
68
104
  it 'should not pass check with user' do
69
105
  @current_user.groups([:accounts])
70
106
  @guard.check(@controller, :users, :update).should be_false
@@ -85,10 +121,10 @@ describe Ixtlan::Guard do
85
121
  end
86
122
 
87
123
  it 'should raise exception on unknown action' do
88
- lambda {@guard.check(@controller, :users, :unknown_action) }.should raise_error(Ixtlan::GuardException)
124
+ lambda {@guard.check(@controller, :users, :unknown_action) }.should raise_error(Ixtlan::Guard::GuardException)
89
125
  end
90
126
 
91
127
  it 'should raise exception on unknown resource' do
92
- lambda {@guard.check(@controller, :unknown_resource, :update) }.should raise_error(Ixtlan::GuardException)
128
+ lambda {@guard.check(@controller, :unknown_resource, :update) }.should raise_error(Ixtlan::Guard::GuardException)
93
129
  end
94
130
  end
data/spec/railtie_spec.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  require 'spec_helper'
2
- require 'ixtlan/guard_railtie'
2
+ require 'ixtlan/guard/railtie'
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ixtlan-guard
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 0
9
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.4.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - mkristian
@@ -14,65 +10,75 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-10-17 00:00:00 +05:30
13
+ date: 2011-07-23 00:00:00 +05:30
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
21
- name: rails
17
+ name: ixtlan-core
22
18
  prerelease: false
23
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
24
21
  requirements:
25
22
  - - "="
26
23
  - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 0
30
- - 0
31
- version: 3.0.0
32
- type: :development
24
+ version: 0.4.0
25
+ type: :runtime
33
26
  version_requirements: *id001
34
27
  - !ruby/object:Gem::Dependency
35
- name: rspec
28
+ name: rails
36
29
  prerelease: false
37
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
38
32
  requirements:
39
33
  - - "="
40
34
  - !ruby/object:Gem::Version
41
- segments:
42
- - 1
43
- - 3
44
- - 1
45
- version: 1.3.1
35
+ version: 3.0.9
46
36
  type: :development
47
37
  version_requirements: *id002
48
38
  - !ruby/object:Gem::Dependency
49
- name: cucumber
39
+ name: rspec
50
40
  prerelease: false
51
41
  requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
52
43
  requirements:
53
44
  - - "="
54
45
  - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- - 9
58
- - 2
59
- version: 0.9.2
46
+ version: 2.6.0
60
47
  type: :development
61
48
  version_requirements: *id003
62
49
  - !ruby/object:Gem::Dependency
63
- name: rake
50
+ name: cucumber
64
51
  prerelease: false
65
52
  requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
66
54
  requirements:
67
55
  - - "="
68
56
  - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- - 8
72
- - 7
73
- version: 0.8.7
57
+ version: 0.9.4
74
58
  type: :development
75
59
  version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: rake
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - "="
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.7
69
+ type: :development
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: ruby-maven
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - "="
78
+ - !ruby/object:Gem::Version
79
+ version: 0.8.3.0.3.0.28.3
80
+ type: :development
81
+ version_requirements: *id006
76
82
  description: simple authorization framework for rails controllers
77
83
  email:
78
84
  - m.kristian@web.de
@@ -83,28 +89,47 @@ extensions: []
83
89
  extra_rdoc_files: []
84
90
 
85
91
  files:
92
+ - MIT-LICENSE
86
93
  - lib/ixtlan-guard.rb
87
- - lib/generators/scaffold/scaffold/scaffold_generator.rb
88
- - lib/generators/ixtlan/controller/USAGE
89
- - lib/generators/ixtlan/controller/controller_generator.rb
90
- - lib/generators/ixtlan/scaffold/USAGE
91
- - lib/generators/ixtlan/scaffold/scaffold_generator.rb
92
- - lib/generators/ixtlan/templates/new.html.erb
93
- - lib/generators/ixtlan/templates/show.html.erb
94
- - lib/generators/ixtlan/templates/guard.rb
95
- - lib/generators/ixtlan/templates/edit.html.erb
96
- - lib/generators/ixtlan/templates/index.html.erb
97
- - lib/ixtlan/guard_railtie.rb
98
- - lib/ixtlan/rails_integration.rb
94
+ - lib/generators/erb/user_management_controller_generator.rb
95
+ - lib/generators/guard/controller/USAGE
96
+ - lib/generators/guard/controller/controller_generator.rb
97
+ - lib/generators/guard/scaffold/USAGE
98
+ - lib/generators/guard/scaffold/scaffold_generator.rb
99
+ - lib/generators/guard/scaffold/templates/guard.rb
100
+ - lib/generators/guard/templates/guard.rb
101
+ - lib/generators/ixtlan/user_management_scaffold/user_management_scaffold_generator.rb
102
+ - lib/generators/ixtlan/user_management_controller/USAGE
103
+ - lib/generators/ixtlan/user_management_controller/user_management_controller_generator.rb
104
+ - lib/generators/ixtlan/maintenance_scaffold/USAGE
105
+ - lib/generators/ixtlan/maintenance_scaffold/maintenance_scaffold_generator.rb
106
+ - lib/generators/ixtlan/permissions_scaffold/USAGE
107
+ - lib/generators/ixtlan/permissions_scaffold/permissions_scaffold_generator.rb
108
+ - lib/generators/ixtlan/user_management_models/user_management_models_generator.rb
109
+ - lib/generators/ixtlan/user_management_models/USAGE
110
+ - lib/generators/active_record/user_management_models_generator.rb
111
+ - lib/generators/active_record/templates/user_model.rb
112
+ - lib/generators/active_record/templates/group_model.rb
113
+ - lib/generators/active_record/templates/flavor_migration.rb
114
+ - lib/generators/active_record/templates/group_user_migration.rb
115
+ - lib/generators/active_record/templates/flavor_model.rb
99
116
  - lib/ixtlan/guard.rb
100
- - spec/guard_spec.rb
117
+ - lib/ixtlan/guard/rails_integration.rb
118
+ - lib/ixtlan/guard/guard.rb
119
+ - lib/ixtlan/guard/railtie.rb
120
+ - lib/ixtlan/guard/controllers/maintenance_controller.rb
121
+ - lib/ixtlan/guard/controllers/permissions_controller.rb
122
+ - lib/ixtlan/guard/spec/user_management_models_spec.rb
123
+ - lib/ixtlan/guard/models/maintenance.rb
124
+ - lib/ixtlan/guard/models/user_update_manager.rb
101
125
  - spec/spec_helper.rb
126
+ - spec/guard_spec.rb
102
127
  - spec/railtie_spec.rb
103
128
  - spec/guards/users_guard.rb
104
129
  has_rdoc: true
105
130
  homepage: http://github.com/mkristian/ixtlan-guard
106
- licenses: []
107
-
131
+ licenses:
132
+ - MIT-LICENSE
108
133
  post_install_message:
109
134
  rdoc_options:
110
135
  - --main
@@ -112,23 +137,21 @@ rdoc_options:
112
137
  require_paths:
113
138
  - lib
114
139
  required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
115
141
  requirements:
116
142
  - - ">="
117
143
  - !ruby/object:Gem::Version
118
- segments:
119
- - 0
120
144
  version: "0"
121
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
122
147
  requirements:
123
148
  - - ">="
124
149
  - !ruby/object:Gem::Version
125
- segments:
126
- - 0
127
150
  version: "0"
128
151
  requirements: []
129
152
 
130
153
  rubyforge_project:
131
- rubygems_version: 1.3.6
154
+ rubygems_version: 1.5.1
132
155
  signing_key:
133
156
  specification_version: 3
134
157
  summary: guard your controller actions