walruz 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +11 -0
- data/Gemfile.lock +22 -0
- data/README.rdoc +0 -2
- data/Rakefile +16 -10
- data/VERSION.yml +1 -1
- data/lib/walruz/config.rb +52 -2
- data/lib/walruz/more/pagination.rb +25 -0
- data/lib/walruz/more/pagination/base.rb +53 -0
- data/lib/walruz/more/pagination/view_helper.rb +11 -0
- data/lib/walruz/more/pagination/will_paginate_collection.rb +27 -0
- data/spec/spec_helper.rb +3 -2
- data/walruz.gemspec +51 -51
- metadata +68 -28
- data/.gitignore +0 -14
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
remote: http://gems.github.com/
|
4
|
+
specs:
|
5
|
+
git (1.2.5)
|
6
|
+
jeweler (1.6.4)
|
7
|
+
bundler (~> 1.0)
|
8
|
+
git (>= 1.2.5)
|
9
|
+
rake
|
10
|
+
rake (0.9.2)
|
11
|
+
rdoc (2.4.3)
|
12
|
+
rspec (1.3.2)
|
13
|
+
yard (0.7.2)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
jeweler
|
20
|
+
rdoc (~> 2.4.2)
|
21
|
+
rspec (= 1.3.2)
|
22
|
+
yard
|
data/README.rdoc
CHANGED
@@ -77,8 +77,6 @@ Actor classes can use several methods to check if the <em>actor</em> instance ca
|
|
77
77
|
|
78
78
|
[<b><tt>satisfies?(policy_label, subject)</tt></b>] It behaves just like the <tt>can?</tt> method, but instead of giving an action to be executed to the <em>subject</em>, it receives a <em>policy label</em> (More on <em>policy labels</em> next).
|
79
79
|
|
80
|
-
[<b><tt>satisfies(policy_label, subject)</tt></b>] It behaves just like the <tt>authorize</tt> method, but instead of giving an action to be executed to the <em>subject</em>, it receives a <em>policy label</em>
|
81
|
-
|
82
80
|
In case the given action is not assigned to any <em>policy</em>, a default Policy will be executed (if given), if no default <em>policy</em> is given then a <tt>Walruz::ActionNotFound</tt> exception will be raised.
|
83
81
|
|
84
82
|
Examples:
|
data/Rakefile
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
Bundler.require(:default, :test)
|
3
5
|
|
4
6
|
begin
|
5
|
-
require 'jeweler'
|
6
7
|
Jeweler::Tasks.new do |gem|
|
7
8
|
gem.name = "walruz"
|
8
|
-
gem.summary = %Q{Walruz is a gem that provides an easy yet powerful
|
9
|
+
gem.summary = %Q{Walruz is a gem that provides an easy yet powerful
|
10
|
+
way to implement authorization policies in a system,
|
11
|
+
relying on the composition of simple policies to create
|
12
|
+
more complex ones.}
|
9
13
|
gem.description = %Q{
|
10
|
-
Walruz provides an easy to use DSL to do composition of basic
|
11
|
-
|
14
|
+
Walruz provides an easy to use DSL to do composition of basic
|
15
|
+
authorization policies to create more complex ones, and then register
|
16
|
+
this composed policies on actions performed to the model begin accessed
|
12
17
|
}
|
13
18
|
gem.email = "roman@noomi.com"
|
14
19
|
gem.homepage = "http://github.com/noomii/walruz"
|
@@ -19,14 +24,15 @@ begin
|
|
19
24
|
gem.add_development_dependency("rspec")
|
20
25
|
gem.add_development_dependency("yard")
|
21
26
|
|
22
|
-
# gem is a Gem::Specification...
|
27
|
+
# gem is a Gem::Specification...
|
28
|
+
# see http://www.rubygems.org/read/chapter/20 for additional settings
|
23
29
|
end
|
24
30
|
|
25
31
|
Jeweler::GemcutterTasks.new
|
26
|
-
|
27
|
-
|
32
|
+
|
28
33
|
rescue LoadError
|
29
|
-
puts "Jeweler not available. Install it with: sudo gem
|
34
|
+
puts "Jeweler not available. Install it with: sudo gem \
|
35
|
+
install technicalpickles-jeweler -s http://gems.github.com"
|
30
36
|
end
|
31
37
|
|
32
38
|
require 'spec/rake/spectask'
|
@@ -51,7 +57,7 @@ YARD::Rake::YardocTask.new do |t|
|
|
51
57
|
end
|
52
58
|
|
53
59
|
|
54
|
-
require '
|
60
|
+
require 'rdoc/task'
|
55
61
|
Rake::RDocTask.new do |rdoc|
|
56
62
|
if File.exist?('VERSION.yml')
|
57
63
|
config = YAML.load(File.read('VERSION.yml'))
|
data/VERSION.yml
CHANGED
data/lib/walruz/config.rb
CHANGED
@@ -1,19 +1,69 @@
|
|
1
1
|
module Walruz
|
2
2
|
|
3
3
|
class Config
|
4
|
-
|
4
|
+
|
5
|
+
# Given a list of classes, it will include the Actor module
|
6
|
+
# in each of them.
|
7
|
+
#
|
8
|
+
# @param [Class] actors The list of classes that will be Actors in the
|
9
|
+
# system
|
5
10
|
def actors=(actors)
|
6
11
|
Array(actors).each do |actor|
|
7
12
|
actor.send(:include, Actor)
|
8
13
|
end
|
9
14
|
end
|
10
15
|
|
16
|
+
# Given a list of classes, it will include the Subject module
|
17
|
+
# in each of them.
|
18
|
+
#
|
19
|
+
# @param [Class] subjects The list of classes that will be Subject in the
|
20
|
+
# system
|
11
21
|
def subjects=(subjects)
|
12
22
|
Array(subjects).each do |subject|
|
13
23
|
subject.send(:include, Subject)
|
14
24
|
end
|
15
25
|
end
|
16
|
-
|
26
|
+
|
27
|
+
def enable_will_paginate_extension(options = {})
|
28
|
+
options = { :include_rails => false }.merge!(options)
|
29
|
+
gem 'mislav-will_paginate'
|
30
|
+
require 'will_paginate'
|
31
|
+
require File.expand_path(
|
32
|
+
File.join(File.dirname(__FILE__), 'more', 'pagination')
|
33
|
+
)
|
34
|
+
|
35
|
+
safe_include(WillPaginate::Collection,
|
36
|
+
Walruz::More::Pagination::WillPaginateCollection)
|
37
|
+
safe_include(Array, Walruz::More::Pagination::Base)
|
38
|
+
|
39
|
+
if options[:include_rails]
|
40
|
+
raise LoadError.new("You ask to enable Walruz extensions on \
|
41
|
+
ActiveRecord::Base, but it was not found. Maybe you should require \
|
42
|
+
'active_record' first?") unless defined?("ActiveRecord::Base")
|
43
|
+
safe_include(::ActiveRecord::Base, Walruz::More::Pagination::Base)
|
44
|
+
end
|
45
|
+
rescue Gem::LoadError
|
46
|
+
raise LoadError.new("You ask to enable Walruz extensions on \
|
47
|
+
WillPaginate, but it was not found, Maybe you should \
|
48
|
+
require 'will_paginate' first")
|
49
|
+
end
|
50
|
+
|
51
|
+
# Will include the Walruz:CoreExt:Array module
|
52
|
+
# to the Array class
|
53
|
+
def enable_array_extension
|
54
|
+
require File.expand_path(
|
55
|
+
File.join(File.dirname(__FILE__), 'core_ext', 'array')
|
56
|
+
)
|
57
|
+
safe_include(Array, Walruz::CoreExt::Array)
|
58
|
+
end
|
59
|
+
|
60
|
+
protected
|
61
|
+
|
62
|
+
def safe_include(base, module_to_include)
|
63
|
+
return if base.included_modules.include?(module_to_include)
|
64
|
+
base.send(:include, module_to_include)
|
65
|
+
end
|
66
|
+
|
17
67
|
end
|
18
68
|
|
19
69
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Walruz
|
2
|
+
module More
|
3
|
+
|
4
|
+
# This module can be included into association like objects
|
5
|
+
module Pagination
|
6
|
+
|
7
|
+
base_path = File.dirname(__FILE__)
|
8
|
+
autoload :Base, base_path + '/pagination/base'
|
9
|
+
autoload :WillPaginateCollection, base_path + '/pagination/will_paginate_collection'
|
10
|
+
autoload :ViewHelper, base_path + '/pagination/view_helper'
|
11
|
+
|
12
|
+
|
13
|
+
def self.included(base)
|
14
|
+
if base.instance_methods.include?('paginate')
|
15
|
+
# We are talking about an already paginated element, we use WillPaginate extension instead
|
16
|
+
base.send(:include, Base)
|
17
|
+
else
|
18
|
+
raise RuntimeError.new("Walruz::More::Paginate needs WillPaginate in order to work")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end # Pagination
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Walruz
|
2
|
+
module More
|
3
|
+
module Pagination
|
4
|
+
|
5
|
+
module Base
|
6
|
+
|
7
|
+
def authorized_paginate(actor, action, *args)
|
8
|
+
# All the args are forwarded to WillPaginate, he knows best what to do
|
9
|
+
options = args.last if Hash === args.last
|
10
|
+
|
11
|
+
options[:page] ||= 1
|
12
|
+
options[:page] = options[:page].to_i
|
13
|
+
offset = options.delete(:offset).to_i # defaults to 0
|
14
|
+
|
15
|
+
acum = []
|
16
|
+
while true
|
17
|
+
paginated_collection = self.paginate(*args)
|
18
|
+
filter_authorized_items_in_collection(actor, action, acum, paginated_collection, offset)
|
19
|
+
if complete_authorized_items_page?(acum, paginated_collection)
|
20
|
+
break
|
21
|
+
else
|
22
|
+
offset = 0
|
23
|
+
options[:page] += 1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
paginated_collection.replace(acum)
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def complete_authorized_items_page?(items, pcollection)
|
32
|
+
items.size == pcollection.per_page ||
|
33
|
+
pcollection.next_page.nil?
|
34
|
+
end
|
35
|
+
|
36
|
+
def filter_authorized_items_in_collection(actor, action, acum, pcollection, offset = 0)
|
37
|
+
return if offset > pcollection.size
|
38
|
+
pcollection[offset, pcollection.size].each_with_index do |item, i|
|
39
|
+
if Walruz.can?(actor, action, item)
|
40
|
+
acum << item
|
41
|
+
unless acum.size < pcollection.per_page
|
42
|
+
pcollection.walruz_offset = i + 1
|
43
|
+
break
|
44
|
+
end # unless
|
45
|
+
end # if
|
46
|
+
end # each_with_index
|
47
|
+
end # filter
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Walruz
|
2
|
+
module More
|
3
|
+
module Pagination
|
4
|
+
|
5
|
+
module WillPaginateCollection
|
6
|
+
|
7
|
+
def self.included(base)
|
8
|
+
base.class_eval do
|
9
|
+
attr_accessor :walruz_offset
|
10
|
+
alias_method :next_page_without_walruz, :next_page
|
11
|
+
alias_method :next_page, :next_page_with_walruz
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def next_page_with_walruz
|
16
|
+
if self.walruz_offset.nil? || self.walruz_offset == 0
|
17
|
+
next_page_without_walruz
|
18
|
+
else
|
19
|
+
self.current_page
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
CHANGED
data/walruz.gemspec
CHANGED
@@ -1,87 +1,87 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{walruz}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.12"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Roman Gonzalez"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-07-12}
|
13
13
|
s.description = %q{
|
14
|
-
Walruz provides an easy to use DSL to do composition of basic
|
15
|
-
|
14
|
+
Walruz provides an easy to use DSL to do composition of basic
|
15
|
+
authorization policies to create more complex ones, and then register
|
16
|
+
this composed policies on actions performed to the model begin accessed
|
16
17
|
}
|
17
18
|
s.email = %q{roman@noomi.com}
|
18
19
|
s.extra_rdoc_files = [
|
19
20
|
"LICENSE",
|
20
|
-
|
21
|
+
"README.rdoc"
|
21
22
|
]
|
22
23
|
s.files = [
|
23
24
|
".document",
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
25
|
+
"CHANGELOG",
|
26
|
+
"Gemfile",
|
27
|
+
"Gemfile.lock",
|
28
|
+
"LICENSE",
|
29
|
+
"README.rdoc",
|
30
|
+
"Rakefile",
|
31
|
+
"VERSION.yml",
|
32
|
+
"lib/walruz.rb",
|
33
|
+
"lib/walruz/actor.rb",
|
34
|
+
"lib/walruz/config.rb",
|
35
|
+
"lib/walruz/core_ext/array.rb",
|
36
|
+
"lib/walruz/core_ext/memoization.rb",
|
37
|
+
"lib/walruz/exceptions.rb",
|
38
|
+
"lib/walruz/manager.rb",
|
39
|
+
"lib/walruz/more/pagination.rb",
|
40
|
+
"lib/walruz/more/pagination/base.rb",
|
41
|
+
"lib/walruz/more/pagination/view_helper.rb",
|
42
|
+
"lib/walruz/more/pagination/will_paginate_collection.rb",
|
43
|
+
"lib/walruz/policy.rb",
|
44
|
+
"lib/walruz/subject.rb",
|
45
|
+
"lib/walruz/utils.rb",
|
46
|
+
"spec/scenario.rb",
|
47
|
+
"spec/spec.opts",
|
48
|
+
"spec/spec_helper.rb",
|
49
|
+
"spec/walruz/actor_spec.rb",
|
50
|
+
"spec/walruz/core_ext/array_spec.rb",
|
51
|
+
"spec/walruz/core_ext/memoization_spec.rb",
|
52
|
+
"spec/walruz/manager_spec.rb",
|
53
|
+
"spec/walruz/policy_spec.rb",
|
54
|
+
"spec/walruz/subject_spec.rb",
|
55
|
+
"spec/walruz/utils_spec.rb",
|
56
|
+
"spec/walruz/walruz_spec.rb",
|
57
|
+
"walruz.gemspec"
|
52
58
|
]
|
53
|
-
s.has_rdoc = %q{yard}
|
54
59
|
s.homepage = %q{http://github.com/noomii/walruz}
|
55
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
56
60
|
s.require_paths = ["lib"]
|
57
61
|
s.rubyforge_project = %q{walruz}
|
58
|
-
s.rubygems_version = %q{1.
|
59
|
-
s.summary = %q{Walruz is a gem that provides an easy yet powerful
|
60
|
-
s.test_files = [
|
61
|
-
"spec/scenario.rb",
|
62
|
-
"spec/spec_helper.rb",
|
63
|
-
"spec/walruz/actor_spec.rb",
|
64
|
-
"spec/walruz/core_ext/array_spec.rb",
|
65
|
-
"spec/walruz/core_ext/memoization_spec.rb",
|
66
|
-
"spec/walruz/manager_spec.rb",
|
67
|
-
"spec/walruz/policy_spec.rb",
|
68
|
-
"spec/walruz/subject_spec.rb",
|
69
|
-
"spec/walruz/utils_spec.rb",
|
70
|
-
"spec/walruz/walruz_spec.rb"
|
71
|
-
]
|
62
|
+
s.rubygems_version = %q{1.6.2}
|
63
|
+
s.summary = %q{Walruz is a gem that provides an easy yet powerful way to implement authorization policies in a system, relying on the composition of simple policies to create more complex ones.}
|
72
64
|
|
73
65
|
if s.respond_to? :specification_version then
|
74
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
75
66
|
s.specification_version = 3
|
76
67
|
|
77
68
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
69
|
+
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
|
70
|
+
s.add_runtime_dependency(%q<yard>, [">= 0"])
|
71
|
+
s.add_runtime_dependency(%q<rdoc>, ["~> 2.4.2"])
|
78
72
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
79
73
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
80
74
|
else
|
75
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
76
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rdoc>, ["~> 2.4.2"])
|
81
78
|
s.add_dependency(%q<rspec>, [">= 0"])
|
82
79
|
s.add_dependency(%q<yard>, [">= 0"])
|
83
80
|
end
|
84
81
|
else
|
82
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
83
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
84
|
+
s.add_dependency(%q<rdoc>, ["~> 2.4.2"])
|
85
85
|
s.add_dependency(%q<rspec>, [">= 0"])
|
86
86
|
s.add_dependency(%q<yard>, [">= 0"])
|
87
87
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: walruz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 12
|
10
|
+
version: 0.0.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Roman Gonzalez
|
@@ -15,12 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-07-12 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
prerelease: false
|
22
|
+
type: :runtime
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
@@ -30,12 +29,42 @@ dependencies:
|
|
30
29
|
segments:
|
31
30
|
- 0
|
32
31
|
version: "0"
|
33
|
-
|
32
|
+
name: jeweler
|
34
33
|
version_requirements: *id001
|
34
|
+
prerelease: false
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
36
46
|
name: yard
|
47
|
+
version_requirements: *id002
|
37
48
|
prerelease: false
|
38
|
-
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
type: :runtime
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 27
|
57
|
+
segments:
|
58
|
+
- 2
|
59
|
+
- 4
|
60
|
+
- 2
|
61
|
+
version: 2.4.2
|
62
|
+
name: rdoc
|
63
|
+
version_requirements: *id003
|
64
|
+
prerelease: false
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
type: :development
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
39
68
|
none: false
|
40
69
|
requirements:
|
41
70
|
- - ">="
|
@@ -44,9 +73,24 @@ dependencies:
|
|
44
73
|
segments:
|
45
74
|
- 0
|
46
75
|
version: "0"
|
76
|
+
name: rspec
|
77
|
+
version_requirements: *id004
|
78
|
+
prerelease: false
|
79
|
+
- !ruby/object:Gem::Dependency
|
47
80
|
type: :development
|
48
|
-
|
49
|
-
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
87
|
+
segments:
|
88
|
+
- 0
|
89
|
+
version: "0"
|
90
|
+
name: yard
|
91
|
+
version_requirements: *id005
|
92
|
+
prerelease: false
|
93
|
+
description: "\n Walruz provides an easy to use DSL to do composition of basic \n authorization policies to create more complex ones, and then register \n this composed policies on actions performed to the model begin accessed\n "
|
50
94
|
email: roman@noomi.com
|
51
95
|
executables: []
|
52
96
|
|
@@ -57,8 +101,9 @@ extra_rdoc_files:
|
|
57
101
|
- README.rdoc
|
58
102
|
files:
|
59
103
|
- .document
|
60
|
-
- .gitignore
|
61
104
|
- CHANGELOG
|
105
|
+
- Gemfile
|
106
|
+
- Gemfile.lock
|
62
107
|
- LICENSE
|
63
108
|
- README.rdoc
|
64
109
|
- Rakefile
|
@@ -70,6 +115,10 @@ files:
|
|
70
115
|
- lib/walruz/core_ext/memoization.rb
|
71
116
|
- lib/walruz/exceptions.rb
|
72
117
|
- lib/walruz/manager.rb
|
118
|
+
- lib/walruz/more/pagination.rb
|
119
|
+
- lib/walruz/more/pagination/base.rb
|
120
|
+
- lib/walruz/more/pagination/view_helper.rb
|
121
|
+
- lib/walruz/more/pagination/will_paginate_collection.rb
|
73
122
|
- lib/walruz/policy.rb
|
74
123
|
- lib/walruz/subject.rb
|
75
124
|
- lib/walruz/utils.rb
|
@@ -85,13 +134,13 @@ files:
|
|
85
134
|
- spec/walruz/utils_spec.rb
|
86
135
|
- spec/walruz/walruz_spec.rb
|
87
136
|
- walruz.gemspec
|
88
|
-
has_rdoc:
|
137
|
+
has_rdoc: true
|
89
138
|
homepage: http://github.com/noomii/walruz
|
90
139
|
licenses: []
|
91
140
|
|
92
141
|
post_install_message:
|
93
|
-
rdoc_options:
|
94
|
-
|
142
|
+
rdoc_options: []
|
143
|
+
|
95
144
|
require_paths:
|
96
145
|
- lib
|
97
146
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -115,18 +164,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
164
|
requirements: []
|
116
165
|
|
117
166
|
rubyforge_project: walruz
|
118
|
-
rubygems_version: 1.
|
167
|
+
rubygems_version: 1.6.2
|
119
168
|
signing_key:
|
120
169
|
specification_version: 3
|
121
|
-
summary: Walruz is a gem that provides an easy yet powerful
|
122
|
-
test_files:
|
123
|
-
|
124
|
-
- spec/spec_helper.rb
|
125
|
-
- spec/walruz/actor_spec.rb
|
126
|
-
- spec/walruz/core_ext/array_spec.rb
|
127
|
-
- spec/walruz/core_ext/memoization_spec.rb
|
128
|
-
- spec/walruz/manager_spec.rb
|
129
|
-
- spec/walruz/policy_spec.rb
|
130
|
-
- spec/walruz/subject_spec.rb
|
131
|
-
- spec/walruz/utils_spec.rb
|
132
|
-
- spec/walruz/walruz_spec.rb
|
170
|
+
summary: Walruz is a gem that provides an easy yet powerful way to implement authorization policies in a system, relying on the composition of simple policies to create more complex ones.
|
171
|
+
test_files: []
|
172
|
+
|