ixtlan-guard 0.8.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # ixtlan guard #
2
2
 
3
+ * [![Build Status](https://secure.travis-ci.org/mkristian/ixtlan-guard.png)](http://travis-ci.org/mkristian/ixtlan-guard)
4
+ * [![Dependency Status](https://gemnasium.com/mkristian/ixtlan-guard.png)](https://gemnasium.com/mkristian/ixtlan-guard)
5
+ * [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/mkristian/ixtlan-guard)
6
+
3
7
  it is an simple authorization framework for restful rails especially using rails as API server.
4
8
 
5
9
  the idea is simple:
@@ -1,5 +1,5 @@
1
1
  require 'ixtlan/guard/guard_config'
2
-
2
+ require 'ixtlan/guard/models'
3
3
  module Ixtlan
4
4
  module Guard
5
5
  class Guard
@@ -103,9 +103,9 @@ module Ixtlan
103
103
  m = @config.map_of_all
104
104
  m.each do |resource, actions|
105
105
  nodes = []
106
- perm = Node.new(:permission)
107
- perm[:resource] = resource
108
- perm[:actions] = nodes
106
+ perm = Permission.new #Node.new(:permission)
107
+ perm.resource = resource
108
+ perm.actions = []#nodes
109
109
 
110
110
  # setup default_groups
111
111
  default_groups = actions.delete('defaults') || []
@@ -122,11 +122,11 @@ module Ixtlan
122
122
  # deny = true : default_groups.member?('*')
123
123
  default_groups.size != 0 || default_groups.member?('*')
124
124
  end
125
- perm[:deny] = deny
125
+ perm.deny = deny
126
126
 
127
127
  actions.each do |action, groups|
128
128
  group_names = groups.collect { |g| g.is_a?(Hash) ? g.keys : g }.flatten if groups
129
- node = Node.new(:action)
129
+ node = Action.new #Node.new(:action)
130
130
  allowed_groups =
131
131
  if groups && group_names.member?('*')
132
132
  group_map.values
@@ -134,53 +134,33 @@ module Ixtlan
134
134
  names = group_map.keys & ((group_names || []) + @superuser)
135
135
  names.collect { |name| group_map[name] }
136
136
  end
137
-
138
137
  if (deny && allowed_groups.size == 0) || (!deny && allowed_groups.size > 0)
139
- node[:name] = action
138
+ node.name = action
140
139
  if block
141
140
  if allowed_groups.size > 0
142
141
  assos = block.call(resource, allowed_groups)
143
- node[:associations] = assos if assos && assos.size > 0
142
+ node.associations = assos if assos && assos.size > 0
144
143
  else
145
144
  assos = block.call(resource, group_map.values)
146
- perm[:associations] = assos if assos && assos.size > 0
145
+ perm.associations = assos if assos && assos.size > 0
147
146
  end
148
147
  end
149
- nodes << node
148
+ perm.actions << node
150
149
  elsif deny && allowed_groups.size > 0 && block
151
150
  assos = block.call(resource, group_map.values)
152
- perm[:associations] = assos if assos && assos.size > 0
151
+ perm.associations = assos if assos && assos.size > 0
153
152
  end
154
153
  end
155
154
  # TODO is that right like this ?
156
155
  # only default_groups, i.e. no actions !!!
157
156
  if block && actions.size == 0 && deny
158
157
  assos = block.call(resource, group_map.values)
159
- perm[:associations] = assos if assos && assos.size > 0
158
+ perm.associations = assos if assos && assos.size > 0
160
159
  end
161
160
  perms << perm
162
161
  end
163
162
  perms
164
163
  end
165
164
  end
166
- class Node < Hash
167
-
168
- attr_reader :content
169
-
170
- def initialize(name)
171
- map = super
172
- @content = {}
173
- merge!({ name => @content })
174
- end
175
-
176
- def []=(k,v)
177
- @content[k] = v
178
- end
179
- def [](k)
180
- @content[k]
181
- end
182
- end
183
- class GuardException < Exception; end
184
- class PermissionDenied < GuardException; end
185
165
  end
186
166
  end
@@ -116,7 +116,7 @@ module Ixtlan
116
116
  end
117
117
 
118
118
  def self.guard
119
- Rails.application.config.guard
119
+ ::Rails.application.config.guard
120
120
  end
121
121
 
122
122
  def self.allowed?(action, current_groups, reference = nil)
@@ -0,0 +1,22 @@
1
+ require 'virtus'
2
+ module Ixtlan
3
+ module Guard
4
+ class Action
5
+ include Virtus
6
+
7
+ attribute :name, String
8
+ attribute :associations, Array[String]
9
+ end
10
+ class Permission
11
+ include Virtus
12
+
13
+ attribute :resource, String
14
+ attribute :actions, Array[Action], :default => []
15
+ attribute :deny, Boolean, :default => false
16
+ attribute :associations, Array[String]
17
+ end
18
+ #TODO
19
+ class GuardException < Exception; end
20
+ class PermissionDenied < GuardException; end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'virtus'
2
+ module Ixtlan
3
+ module Guard
4
+ class Action
5
+ include Virtus
6
+
7
+ attribute :name, String
8
+ attribute :associations, Array[String]
9
+ end
10
+ class Permission
11
+ include Virtus
12
+
13
+ attribute :resource, String
14
+ attribute :actions, Array[Action], :default => []
15
+ attribute :deny, Boolean, :deafult => false
16
+ attribute :associations, Array[String]
17
+ end
18
+ #TODO
19
+ class GuardException < Exception; end
20
+ class PermissionDenied < GuardException; end
21
+ end
22
+ end
@@ -1,4 +1,4 @@
1
- require 'rails'
1
+ require 'rails/railtie'
2
2
  require 'ixtlan/guard/guard'
3
3
  require 'ixtlan/guard/guard_rails'
4
4
  require 'logger'
@@ -7,16 +7,21 @@ describe Ixtlan::Guard::Guard do
7
7
  def assert(expected, perms)
8
8
  map = {}
9
9
  expected.each do |e|
10
- map[e[:permission][:resource]] = e
11
- if e[:permission][:actions]
12
- e[:permission][:actions].sort!{ |n,m| n[:action][:name] <=> m[:action][:name] }
10
+ map[(e[:permission] || e)[:resource]] = e
11
+ if (e[:permission] || e)[:actions]
12
+ (e[:permission] || e)[:actions].sort!{ |n,m| n[:action][:name] <=> m[:action][:name] }
13
13
  end
14
14
  end
15
15
  perms.each do |perm|
16
- if perm[:actions]
17
- perm[:actions].sort!{ |n,m| n.content[:name] <=> m.content[:name] }
16
+ attr = perm.attributes
17
+ attr[ :actions ] = perm.actions.collect do |a|
18
+ aa = a.attributes
19
+ aa.delete( :associations ) if aa[ :associations ].nil? || aa[ :associations ].empty?
20
+ {:action => aa}
18
21
  end
19
- map[perm[:resource].to_s].should == perm
22
+ attr[:actions].sort!{ |n,m| n[:action][:name] <=> m[:action][:name] }
23
+ attr.delete( :associations ) if attr[ :associations ].nil? || attr[ :associations ].empty?
24
+ map[perm[:resource]][:permission].should == attr
20
25
  end
21
26
  end
22
27
 
@@ -184,7 +189,7 @@ describe Ixtlan::Guard::Guard do
184
189
  end
185
190
  perm = subject.permissions([group])do |resource, groups|
186
191
  if resource == 'regions'
187
- [:europe, :asia]
192
+ ["europe", "asia"]
188
193
  end
189
194
  end
190
195
  expected = [
@@ -219,8 +224,8 @@ describe Ixtlan::Guard::Guard do
219
224
  {:permission=>
220
225
  {:resource=>"regions",
221
226
  :actions=>
222
- [{:action=>{:name=>"show", :associations=>[:europe, :asia]}},
223
- {:action=>{:name=>"create", :associations=>[:europe, :asia]}}],
227
+ [{:action=>{:name=>"show", :associations=>["europe", "asia"]}},
228
+ {:action=>{:name=>"create", :associations=>["europe", "asia"]}}],
224
229
  :deny=>false}},
225
230
  #allow nothing
226
231
  {:permission=>{:resource=>"users", :actions=>[], :deny=>false}}]
@@ -47,7 +47,7 @@ describe Ixtlan::Guard::Guard do
47
47
  end
48
48
 
49
49
  it 'should add associations to node' do
50
- perms = subject.permissions([Group.new('admin', [:german, :french])]) do |resource, groups|
50
+ perms = subject.permissions([Group.new('admin', ["german", "french"])]) do |resource, groups|
51
51
  if groups && groups.first && groups.first.name == 'admin'
52
52
  groups.first.domains
53
53
  else
@@ -61,7 +61,7 @@ describe Ixtlan::Guard::Guard do
61
61
  :resource=>"accounts",
62
62
  :actions=>[{:action=>{
63
63
  :name=>"destroy",
64
- :associations=>[:german, :french]}}],
64
+ :associations=>["german", "french"]}}],
65
65
  :deny=>false}
66
66
  }
67
67
  expected[:allow_all_defaults] = {
@@ -69,14 +69,14 @@ describe Ixtlan::Guard::Guard do
69
69
  :resource=>"allow_all_defaults",
70
70
  :actions=>[{:action=>{:name=>"index"}}],
71
71
  :deny=>true,
72
- :associations=>[:german, :french]}
72
+ :associations=>["german", "french"]}
73
73
  }
74
74
  expected[:defaults] = {
75
75
  :permission=>{
76
76
  :resource=>"defaults",
77
77
  :actions=>[{:action=>{
78
78
  :name=>"index",
79
- :associations=>[:german, :french]}}],
79
+ :associations=>["german", "french"]}}],
80
80
  :deny=>false}
81
81
  }
82
82
  expected[:no_defaults] = {
@@ -84,14 +84,14 @@ describe Ixtlan::Guard::Guard do
84
84
  :resource=>"no_defaults",
85
85
  :actions=>[{:action=>{
86
86
  :name=>"index",
87
- :associations=>[:german, :french]}}],
87
+ :associations=>["german", "french"]}}],
88
88
  :deny=>false}
89
89
  }
90
90
  expected[:only_defaults] = {
91
91
  :permission=>{
92
92
  :resource=>"only_defaults",
93
93
  :actions=>[],
94
- :associations=>[:german, :french],
94
+ :associations=>["german", "french"],
95
95
  :deny=>true}
96
96
  }
97
97
  expected[:person]= {
@@ -99,18 +99,18 @@ describe Ixtlan::Guard::Guard do
99
99
  :resource=>"person",
100
100
  :actions=> [{:action=>{
101
101
  :name=>"destroy",
102
- :associations=>[:german, :french]}},
102
+ :associations=>["german", "french"]}},
103
103
  {:action=>{
104
104
  :name=>"index",
105
- :associations=>[:german, :french]}}],
105
+ :associations=>["german", "french"]}}],
106
106
  :deny=>false}
107
107
  }
108
108
  expected[:regions] = {
109
109
  :permission=>{
110
110
  :resource=>"regions",
111
111
  :actions=>[
112
- {:action=>{:name=>"create", :associations=>[:german, :french]}},
113
- {:action=>{:name=>"show", :associations=>[:german, :french]}}
112
+ {:action=>{:name=>"create", :associations=>["german", "french"]}},
113
+ {:action=>{:name=>"show", :associations=>["german", "french"]}}
114
114
  ],
115
115
  :deny=>false}
116
116
  }
@@ -119,12 +119,17 @@ describe Ixtlan::Guard::Guard do
119
119
  :resource=>"users",
120
120
  :actions=>[],
121
121
  :deny=>false}
122
- }
122
+ }
123
123
  perms.each do |perm|
124
- if perm[:actions]
125
- perm[:actions].sort!{ |n,m| n.content[:name] <=> m.content[:name] }
124
+ attr = perm.attributes
125
+ attr[ :actions ] = perm.actions.collect do |a|
126
+ aa = a.attributes
127
+ aa.delete( :associations ) if aa[ :associations ].nil? || aa[ :associations ].empty?
128
+ {:action => aa}
126
129
  end
127
- expected[perm[:resource].to_sym].should == perm
130
+ attr[:actions].sort!{ |n,m| n[:action][:name] <=> m[:action][:name] }
131
+ attr.delete( :associations ) if attr[ :associations ].nil? || attr[ :associations ].empty?
132
+ expected[perm[:resource].to_sym][:permission].should == attr
128
133
  end
129
134
  end
130
135
  end
metadata CHANGED
@@ -1,86 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ixtlan-guard
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 59
4
5
  prerelease:
5
- version: 0.8.3
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 0
10
+ version: 0.9.0
6
11
  platform: ruby
7
12
  authors:
8
- - mkristian
13
+ - mkristian
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2012-07-04 00:00:00 Z
18
+ date: 2012-12-29 00:00:00 Z
14
19
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: ixtlan-core
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
23
- version: 0.7.0
24
- type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rails
28
- prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - "="
33
- - !ruby/object:Gem::Version
34
- version: 3.0.9
35
- type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
39
- prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - "="
44
- - !ruby/object:Gem::Version
45
- version: 2.6.0
46
- type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: cucumber
50
- prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - "="
55
- - !ruby/object:Gem::Version
56
- version: 0.9.4
57
- type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: rake
61
- prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - "="
66
- - !ruby/object:Gem::Version
67
- version: 0.8.7
68
- type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: ruby-maven
72
- prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - "="
77
- - !ruby/object:Gem::Version
78
- version: 3.0.4.0.29.0
79
- type: :development
80
- version_requirements: *id006
20
+ - !ruby/object:Gem::Dependency
21
+ name: virtus
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 1
29
+ segments:
30
+ - 0
31
+ - 5
32
+ version: "0.5"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: railties
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 29
44
+ segments:
45
+ - 3
46
+ - 2
47
+ - 9
48
+ version: 3.2.9
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: rspec
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 13
60
+ segments:
61
+ - 2
62
+ - 7
63
+ version: "2.7"
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rake
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 73
75
+ segments:
76
+ - 10
77
+ - 0
78
+ - 3
79
+ version: 10.0.3
80
+ type: :development
81
+ version_requirements: *id004
81
82
  description: simple authorization framework for rails controllers
82
83
  email:
83
- - m.kristian@web.de
84
+ - m.kristian@web.de
84
85
  executables: []
85
86
 
86
87
  extensions: []
@@ -88,97 +89,105 @@ extensions: []
88
89
  extra_rdoc_files: []
89
90
 
90
91
  files:
91
- - MIT-LICENSE
92
- - README.md
93
- - lib/ixtlan-guard.rb
94
- - lib/generators/guard/controller/USAGE
95
- - lib/generators/guard/controller/controller_generator.rb
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/templates/guard.yml
100
- - lib/generators/guard/templates/guard.yml~
101
- - lib/ixtlan/guard.rb
102
- - lib/ixtlan/guard/abstract_session.rb
103
- - lib/ixtlan/guard/abstract_session.rb~
104
- - lib/ixtlan/guard/guard_rails.rb~
105
- - lib/ixtlan/guard/guard.rb
106
- - lib/ixtlan/guard/permission_builder.rb~
107
- - lib/ixtlan/guard/guard_ng.rb~
108
- - lib/ixtlan/guard/guard_config.rb
109
- - lib/ixtlan/guard/guard_rails.rb
110
- - lib/ixtlan/guard/guard_config.rb~
111
- - lib/ixtlan/guard/guard.rb~
112
- - lib/ixtlan/guard/railtie.rb
113
- - spec/guard_export_spec.rb~
114
- - spec/guard_with_associations_spec.rb
115
- - spec/guard_with_associations_spec.rb~
116
- - spec/guard_export_spec.rb
117
- - spec/spec_helper.rb
118
- - spec/guard_cache_spec.rb
119
- - spec/guard_rails_spec.rb~
120
- - spec/guard_cache_spec.rb~
121
- - spec/guard_spec.rb
122
- - spec/railtie_spec.rb
123
- - spec/guard_rails_spec.rb
124
- - spec/guards/accounts1_guard.yml~
125
- - spec/guards/users_guard.yml
126
- - spec/guards/users2_guard.yml
127
- - spec/guards/only_defaults_guard.yml
128
- - spec/guards/allow_alldefaults.yml~
129
- - spec/guards/accounts2_guard.yml~
130
- - spec/guards/users2_guard.yml~
131
- - spec/guards/only_defaults_guard.yml~
132
- - spec/guards/users_guard.yml~
133
- - spec/guards/users1_guard.yml~
134
- - spec/guards/tools_guard.yml~
135
- - spec/guards/re_users_guard.yaml~
136
- - spec/guards/no_defaults_guard.yml
137
- - spec/guards/regions_guard.yml~
138
- - spec/guards/defaults_guard.yml
139
- - spec/guards/users1_guard.yml
140
- - spec/guards/person_guard.yml
141
- - spec/guards/accounts_guard.yml
142
- - spec/guards/no_defaults_guard.yml~
143
- - spec/guards/regions_guard.yml
144
- - spec/guards/allow_all_defaults_guard.yml
145
- - spec/guards/allow_all_defaults_guard.yml~
146
- - spec/guards/defaults_guard.yml~
147
- - features/step_definitions/simple_steps.rb
148
- - features/generators.feature
92
+ - MIT-LICENSE
93
+ - README.md
94
+ - lib/ixtlan-guard.rb
95
+ - lib/generators/guard/controller/USAGE
96
+ - lib/generators/guard/controller/controller_generator.rb
97
+ - lib/generators/guard/controller/controller_generator.rb~
98
+ - lib/generators/guard/scaffold/USAGE
99
+ - lib/generators/guard/scaffold/scaffold_generator.rb
100
+ - lib/generators/guard/templates/guard.yml
101
+ - lib/generators/guard/templates/guard.yml~
102
+ - lib/ixtlan/guard.rb
103
+ - lib/ixtlan/guard/abstract_session.rb
104
+ - lib/ixtlan/guard/abstract_session.rb~
105
+ - lib/ixtlan/guard/guard_rails.rb~
106
+ - lib/ixtlan/guard/guard.rb
107
+ - lib/ixtlan/guard/models.rb~
108
+ - lib/ixtlan/guard/permission_builder.rb~
109
+ - lib/ixtlan/guard/guard_ng.rb~
110
+ - lib/ixtlan/guard/guard_config.rb
111
+ - lib/ixtlan/guard/guard_rails.rb
112
+ - lib/ixtlan/guard/guard_config.rb~
113
+ - lib/ixtlan/guard/guard.rb~
114
+ - lib/ixtlan/guard/models.rb
115
+ - lib/ixtlan/guard/railtie.rb
116
+ - spec/guards/accounts1_guard.yml~
117
+ - spec/guards/users_guard.yml
118
+ - spec/guards/users2_guard.yml
119
+ - spec/guards/only_defaults_guard.yml
120
+ - spec/guards/allow_alldefaults.yml~
121
+ - spec/guards/accounts2_guard.yml~
122
+ - spec/guards/users2_guard.yml~
123
+ - spec/guards/only_defaults_guard.yml~
124
+ - spec/guards/users_guard.yml~
125
+ - spec/guards/users1_guard.yml~
126
+ - spec/guards/tools_guard.yml~
127
+ - spec/guards/re_users_guard.yaml~
128
+ - spec/guards/no_defaults_guard.yml
129
+ - spec/guards/regions_guard.yml~
130
+ - spec/guards/defaults_guard.yml
131
+ - spec/guards/users1_guard.yml
132
+ - spec/guards/person_guard.yml
133
+ - spec/guards/accounts_guard.yml
134
+ - spec/guards/no_defaults_guard.yml~
135
+ - spec/guards/regions_guard.yml
136
+ - spec/guards/allow_all_defaults_guard.yml
137
+ - spec/guards/allow_all_defaults_guard.yml~
138
+ - spec/guards/defaults_guard.yml~
139
+ - spec/guard_export_spec.rb~
140
+ - spec/guard_with_associations_spec.rb
141
+ - spec/guard_with_associations_spec.rb~
142
+ - spec/guard_export_spec.rb
143
+ - spec/spec_helper.rb
144
+ - spec/guard_cache_spec.rb
145
+ - spec/guard_rails_spec.rb~
146
+ - spec/guard_cache_spec.rb~
147
+ - spec/guard_spec.rb
148
+ - spec/railtie_spec.rb
149
+ - spec/guard_rails_spec.rb
150
+ - features/step_definitions/simple_steps.rb
151
+ - features/generators.feature
149
152
  homepage: http://github.com/mkristian/ixtlan-guard
150
153
  licenses:
151
- - MIT-LICENSE
154
+ - MIT-LICENSE
152
155
  post_install_message:
153
156
  rdoc_options: []
154
157
 
155
158
  require_paths:
156
- - lib
159
+ - lib
157
160
  required_ruby_version: !ruby/object:Gem::Requirement
158
161
  none: false
159
162
  requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: "0"
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 3
166
+ segments:
167
+ - 0
168
+ version: "0"
163
169
  required_rubygems_version: !ruby/object:Gem::Requirement
164
170
  none: false
165
171
  requirements:
166
- - - ">="
167
- - !ruby/object:Gem::Version
168
- version: "0"
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ hash: 3
175
+ segments:
176
+ - 0
177
+ version: "0"
169
178
  requirements: []
170
179
 
171
180
  rubyforge_project:
172
- rubygems_version: 1.8.24
181
+ rubygems_version: 1.8.15
173
182
  signing_key:
174
183
  specification_version: 3
175
184
  summary: guard your controller actions
176
185
  test_files:
177
- - spec/guard_with_associations_spec.rb
178
- - spec/guard_export_spec.rb
179
- - spec/guard_cache_spec.rb
180
- - spec/guard_spec.rb
181
- - spec/railtie_spec.rb
182
- - spec/guard_rails_spec.rb
183
- - features/generators.feature
184
- - features/step_definitions/simple_steps.rb
186
+ - spec/guard_with_associations_spec.rb
187
+ - spec/guard_export_spec.rb
188
+ - spec/guard_cache_spec.rb
189
+ - spec/guard_spec.rb
190
+ - spec/railtie_spec.rb
191
+ - spec/guard_rails_spec.rb
192
+ - features/generators.feature
193
+ - features/step_definitions/simple_steps.rb