cantango-config 0.1.9.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.mdown +16 -0
- data/VERSION +1 -1
- data/cantango-config.gemspec +68 -62
- data/lib/cantango/category.rb +18 -0
- data/lib/cantango/class_methods.rb +10 -0
- data/lib/cantango/config.rb +43 -2
- data/lib/cantango/{configuration → config}/ability.rb +8 -3
- data/lib/cantango/config/ability/engine.rb +45 -0
- data/lib/cantango/config/ability/modes.rb +16 -0
- data/lib/cantango/config/ability/modes/execution.rb +19 -0
- data/lib/cantango/{configuration → config}/account.rb +1 -1
- data/lib/cantango/{configuration → config}/accounts.rb +2 -3
- data/lib/cantango/{configuration → config}/adapters.rb +4 -4
- data/lib/cantango/{configuration → config}/autoload.rb +1 -1
- data/lib/cantango/{configuration → config}/categories.rb +3 -4
- data/lib/cantango/config/class_methods.rb +27 -0
- data/lib/cantango/{configuration → config}/debug.rb +1 -1
- data/lib/cantango/config/engines.rb +47 -0
- data/lib/cantango/config/engines/available.rb +19 -0
- data/lib/cantango/config/engines/order.rb +48 -0
- data/lib/cantango/{configuration → config}/factory.rb +1 -1
- data/lib/cantango/{configuration → config}/guest.rb +5 -6
- data/lib/cantango/config/helpers.rb +17 -0
- data/lib/cantango/{configuration → config}/hooks.rb +3 -3
- data/lib/cantango/{configuration → config}/localhosts.rb +4 -5
- data/lib/cantango/{configuration → config}/models.rb +16 -7
- data/lib/cantango/{configuration → config}/models/actions.rb +0 -0
- data/lib/cantango/{configuration → config}/models/active_record.rb +0 -0
- data/lib/cantango/{configuration → config}/models/data_mapper.rb +0 -0
- data/lib/cantango/{configuration → config}/models/generic.rb +0 -0
- data/lib/cantango/{configuration → config}/models/mongo.rb +0 -0
- data/lib/cantango/{configuration → config}/models/mongo_mapper.rb +0 -0
- data/lib/cantango/{configuration → config}/models/mongoid.rb +0 -0
- data/lib/cantango/{configuration → config}/orms.rb +2 -2
- data/lib/cantango/{configuration → config}/user.rb +1 -1
- data/lib/cantango/{configuration → config}/users.rb +2 -2
- data/lib/cantango/registry.rb +5 -0
- data/lib/cantango/{configuration/registry → registry}/base.rb +18 -4
- data/lib/cantango/registry/clazz.rb +92 -0
- data/lib/cantango/{configuration/registry → registry}/hash.rb +8 -10
- data/spec/cantango/category_spec.rb +21 -0
- data/spec/cantango/config/ability/modes/execution_spec.rb +33 -0
- data/spec/cantango/{configuration → config/ability}/modes_spec.rb +3 -3
- data/spec/cantango/{configuration → config}/ability_spec.rb +3 -3
- data/spec/cantango/{configuration → config}/account_spec.rb +1 -1
- data/spec/cantango/{configuration → config}/accounts_spec.rb +3 -3
- data/spec/cantango/{configuration → config}/adapters_spec.rb +1 -1
- data/spec/cantango/{configuration → config}/autoload_spec.rb +1 -2
- data/spec/cantango/{configuration → config}/categories_spec.rb +2 -10
- data/spec/cantango/config/class_methods_spec.rb +12 -0
- data/spec/cantango/{configuration → config}/debug_spec.rb +2 -7
- data/spec/cantango/config/engines/available_spec.rb +29 -0
- data/spec/cantango/{configuration → config}/engines/engine_shared.rb +0 -0
- data/spec/cantango/{configuration/engines_spec.rb → config/engines/order_spec.rb} +9 -54
- data/spec/cantango/config/engines_spec.rb +59 -0
- data/spec/cantango/{configuration → config}/factory_spec.rb +3 -3
- data/spec/cantango/{configuration → config}/guest/find_guest_default_way_spec.rb +1 -1
- data/spec/cantango/{configuration → config}/guest_spec.rb +2 -2
- data/spec/cantango/config/helpers_spec.rb +15 -0
- data/spec/cantango/config/localhosts_spec.rb +8 -0
- data/spec/cantango/{configuration → config}/models_spec.rb +10 -3
- data/spec/cantango/{configuration → config}/orms_spec.rb +2 -2
- data/spec/cantango/{configuration → config}/shared/factory_ex.rb +0 -0
- data/spec/cantango/{configuration → config}/user_spec.rb +2 -2
- data/spec/cantango/{configuration → config}/users_spec.rb +4 -4
- data/spec/cantango/config_spec.rb +86 -5
- data/spec/cantango/{configuration/registry → registry}/base_spec.rb +2 -2
- data/spec/cantango/{configuration/registry/candidate_spec.rb → registry/clazz_spec.rb} +2 -2
- data/spec/cantango/{configuration/registry → registry}/hash_spec.rb +2 -2
- data/spec/cantango/{configuration/shared/registry → registry/shared}/base_ex.rb +0 -0
- data/spec/cantango/{configuration/shared/registry → registry/shared}/clazz_ex.rb +0 -0
- data/spec/cantango/{configuration/shared/registry → registry/shared}/hash_ex.rb +0 -0
- metadata +87 -81
- data/lib/cantango/configuration.rb +0 -110
- data/lib/cantango/configuration/category.rb +0 -20
- data/lib/cantango/configuration/engine.rb +0 -33
- data/lib/cantango/configuration/engines.rb +0 -95
- data/lib/cantango/configuration/execution_modes.rb +0 -21
- data/lib/cantango/configuration/modes.rb +0 -8
- data/lib/cantango/configuration/registry.rb +0 -7
- data/lib/cantango/configuration/registry/clazz.rb +0 -94
- data/spec/cantango/configuration/execution_modes_spec.rb +0 -15
- data/spec/cantango/configuration/localhosts_spec.rb +0 -9
- data/spec/cantango/configuration/shared/execution_modes_ex.rb +0 -14
- data/spec/cantango/configuration_spec.rb +0 -112
@@ -1,110 +0,0 @@
|
|
1
|
-
require 'set'
|
2
|
-
require 'singleton'
|
3
|
-
|
4
|
-
require 'cantango/configuration'
|
5
|
-
|
6
|
-
module CanTango
|
7
|
-
# The main entry point to configure CanTango
|
8
|
-
class << self
|
9
|
-
def configure &block
|
10
|
-
conf = CanTango::Configuration.instance
|
11
|
-
yield conf if block
|
12
|
-
conf
|
13
|
-
end
|
14
|
-
|
15
|
-
alias_method :config, :configure
|
16
|
-
end
|
17
|
-
|
18
|
-
class Configuration
|
19
|
-
autoload_modules :Models, :Registry, :Engines, :Factory, :ExecutionModes, :Modes, :Ability
|
20
|
-
autoload_modules :Categories, :Category
|
21
|
-
autoload_modules :Autoload, :Adapters, :Debug, :Orms, :Localhosts, :Hooks
|
22
|
-
autoload_modules :Account, :Accounts
|
23
|
-
autoload_modules :User, :Guest, :Users
|
24
|
-
|
25
|
-
include Singleton
|
26
|
-
|
27
|
-
def ability
|
28
|
-
@ability ||= conf::Ability.instance
|
29
|
-
@ability.default_class ||= CanTango::Ability::Executor::Modal # from cantango-core
|
30
|
-
@ability
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.components
|
34
|
-
[
|
35
|
-
:guest, :autoload, :user, :account, :models, :modes, :roles, :role_groups,
|
36
|
-
:engines, :users, :accounts, :categories, :adapters, :debug,
|
37
|
-
:localhosts, :orms, :hooks
|
38
|
-
]
|
39
|
-
end
|
40
|
-
|
41
|
-
components.each do |conf_module|
|
42
|
-
class_eval %{
|
43
|
-
def #{conf_module} &block
|
44
|
-
conf = conf::#{conf_module.to_s.camelize}.instance
|
45
|
-
yield conf if block
|
46
|
-
conf
|
47
|
-
end
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
def debug!
|
52
|
-
debug.set :on
|
53
|
-
end
|
54
|
-
|
55
|
-
# Turn on default engines and enable compile adapter
|
56
|
-
# i.e compilation of rules via sourcify
|
57
|
-
def enable_defaults!
|
58
|
-
engines.all :off
|
59
|
-
adapters.use :compiler
|
60
|
-
end
|
61
|
-
|
62
|
-
def enable_helpers *names
|
63
|
-
names = names.to_symbols
|
64
|
-
enable_rest_helper if names.include? :rest
|
65
|
-
end
|
66
|
-
|
67
|
-
def enable_rest_helper
|
68
|
-
raise 'ApplicationController not defined' if !defined?(::ApplicationController)
|
69
|
-
::ApplicationController.send :include, CanTango::Rails::Helpers::RestHelper
|
70
|
-
end
|
71
|
-
|
72
|
-
def clear!
|
73
|
-
CanTango::Configuration.components.each do |component|
|
74
|
-
if respond_to? component
|
75
|
-
component = send(component)
|
76
|
-
component.send(:clear!) if component.respond_to? :clear!
|
77
|
-
end
|
78
|
-
end
|
79
|
-
engines.clear!
|
80
|
-
end
|
81
|
-
|
82
|
-
def include_models *names
|
83
|
-
names = names.select_symbols
|
84
|
-
if names.include? :default_guest_user
|
85
|
-
require 'cantango/user/guest'
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
# allow either block or direct access
|
90
|
-
# engine(:permission) do |permission|
|
91
|
-
# engine(:permission).config_path
|
92
|
-
def engine name, &block
|
93
|
-
engine = find_engine(name)
|
94
|
-
yield engine if block
|
95
|
-
engine
|
96
|
-
end
|
97
|
-
|
98
|
-
protected
|
99
|
-
|
100
|
-
def find_engine name
|
101
|
-
raise ArgumentError, "Must be label for an engine" if !name.kind_of_label?
|
102
|
-
name = name.to_s.singularize
|
103
|
-
engines.send(name) if engines.available? name
|
104
|
-
end
|
105
|
-
|
106
|
-
def conf
|
107
|
-
CanTango::Configuration
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module CanTango
|
2
|
-
class Configuration
|
3
|
-
class Category
|
4
|
-
def initialize *subjects
|
5
|
-
@subjects = subjects.flatten
|
6
|
-
end
|
7
|
-
|
8
|
-
def subjects
|
9
|
-
@subjects ||= []
|
10
|
-
end
|
11
|
-
|
12
|
-
# test if a particular category has a certain subject
|
13
|
-
def has_any? subject, &block
|
14
|
-
found = subjects.include? subject
|
15
|
-
yield if found && block
|
16
|
-
found
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'singleton'
|
2
|
-
|
3
|
-
module CanTango
|
4
|
-
class Configuration
|
5
|
-
class Engine
|
6
|
-
include Singleton
|
7
|
-
include CanTango::Configuration::ExecutionModes
|
8
|
-
|
9
|
-
def set state = :on
|
10
|
-
raise ArgumentError, "Must be :on or :off" unless !state || [:on, :off].include?(state)
|
11
|
-
@state = state || :on
|
12
|
-
end
|
13
|
-
|
14
|
-
def reset!
|
15
|
-
@state = nil
|
16
|
-
end
|
17
|
-
|
18
|
-
def on?
|
19
|
-
@state == :on
|
20
|
-
end
|
21
|
-
|
22
|
-
def off?
|
23
|
-
!on?
|
24
|
-
end
|
25
|
-
|
26
|
-
protected
|
27
|
-
|
28
|
-
def ns
|
29
|
-
CanTango::Configuration::Engines
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
module CanTango
|
2
|
-
class Configuration
|
3
|
-
class Engines < Registry::Hash
|
4
|
-
include Singleton
|
5
|
-
include Enumerable
|
6
|
-
|
7
|
-
# engine registry is a simple hash
|
8
|
-
def register hash
|
9
|
-
hash.each_pair do |name, engine_class|
|
10
|
-
raise "Class must implement the CanTango Engine API. You can start by sublclassing CanTango::Engine" if !engine? engine_class
|
11
|
-
raise "Name of engine must be a String or Symbol" if !name.kind_of_label?
|
12
|
-
registered[name.to_s] = engine_class
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# defines the order of execution of engine in ability
|
17
|
-
def set_execution_order *names
|
18
|
-
@execution_order = names.flatten.uniq.map(&:to_s).select {|name| available? name }
|
19
|
-
end
|
20
|
-
|
21
|
-
def dont_execute name
|
22
|
-
execution_order.delete(name.to_s)
|
23
|
-
end
|
24
|
-
|
25
|
-
def execute_first name
|
26
|
-
dont_execute name
|
27
|
-
execution_order.insert(0, name.to_s)
|
28
|
-
end
|
29
|
-
|
30
|
-
def execute_last name
|
31
|
-
dont_execute name
|
32
|
-
execution_order.insert(-1, name.to_s)
|
33
|
-
end
|
34
|
-
|
35
|
-
def execute_before existing, name
|
36
|
-
dont_execute name
|
37
|
-
index = execution_order.index(existing.to_s) || 0
|
38
|
-
execution_order.insert(index, name.to_s)
|
39
|
-
execution_order.compact!
|
40
|
-
end
|
41
|
-
|
42
|
-
def execute_after existing, name
|
43
|
-
dont_execute name
|
44
|
-
index = execution_order.index(existing.to_s)
|
45
|
-
index ? execution_order.insert(index +1, name.to_s) : execute_last(name)
|
46
|
-
execution_order.compact!
|
47
|
-
end
|
48
|
-
|
49
|
-
def execution_order
|
50
|
-
@execution_order ||= (available - [:cache])
|
51
|
-
end
|
52
|
-
|
53
|
-
def available
|
54
|
-
registered_names
|
55
|
-
end
|
56
|
-
|
57
|
-
def available? name
|
58
|
-
available.include? name.to_s
|
59
|
-
end
|
60
|
-
|
61
|
-
def all state
|
62
|
-
available.each {|engine| send(engine).set state }
|
63
|
-
end
|
64
|
-
|
65
|
-
def any? state
|
66
|
-
available.any? {|engine| send(engine).send(:"#{state}?") if respond_to?(engine) }
|
67
|
-
end
|
68
|
-
|
69
|
-
def clear!
|
70
|
-
each {|engine| engine.reset! }
|
71
|
-
@registered = nil
|
72
|
-
@execution_order = nil
|
73
|
-
end
|
74
|
-
|
75
|
-
def each
|
76
|
-
available.each {|engine| yield send(engine) if respond_to?(engine) }
|
77
|
-
end
|
78
|
-
|
79
|
-
def active? name
|
80
|
-
active.include? name.to_sym
|
81
|
-
end
|
82
|
-
|
83
|
-
def active
|
84
|
-
available.select {|engine| send(engine).on? if respond_to?(engine) }
|
85
|
-
end
|
86
|
-
|
87
|
-
protected
|
88
|
-
|
89
|
-
# does it implement the basic Engine API?
|
90
|
-
def engine? engine_class
|
91
|
-
[:execute!, :ability].all? {|meth| engine_class.instance_methods.include? meth }
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module CanTango
|
2
|
-
class Configuration
|
3
|
-
module ExecutionModes
|
4
|
-
def modes
|
5
|
-
@modes ||= [:no_cache]
|
6
|
-
end
|
7
|
-
|
8
|
-
def mode= mode_name
|
9
|
-
mode_name = mode_name.to_sym
|
10
|
-
raise ArgumentError, "Not a valid mode name" if !valid_mode_names.include? mode_name
|
11
|
-
@modes = (mode_name == :both) ? [:cache, :no_cache] : [mode_name]
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def valid_mode_names
|
17
|
-
[:cache, :no_cache]
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,94 +0,0 @@
|
|
1
|
-
require 'singleton'
|
2
|
-
require 'sugar-high/kind_of'
|
3
|
-
|
4
|
-
module CanTango
|
5
|
-
class Configuration
|
6
|
-
module Registry
|
7
|
-
class Clazz
|
8
|
-
def register label, value
|
9
|
-
raise "first arg must be a label, was: #{label}" if !label.kind_of_label?
|
10
|
-
raise "second arg must be a valid Class, was: #{value}" if !valid? value
|
11
|
-
name_registry.register label.to_sym
|
12
|
-
class_registry.register value
|
13
|
-
end
|
14
|
-
alias_method :[]=, :register
|
15
|
-
|
16
|
-
def << hash
|
17
|
-
raise "Must be a hash" if !hash.is_a?(::Hash)
|
18
|
-
hash.each_pair do |key, value|
|
19
|
-
register key, value
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def registered
|
24
|
-
name_registry.registered
|
25
|
-
end
|
26
|
-
alias_method :registered_names, :registered
|
27
|
-
|
28
|
-
def clean!
|
29
|
-
name_registry.clean!
|
30
|
-
class_registry.clean!
|
31
|
-
end
|
32
|
-
alias_method :clear!, :clean!
|
33
|
-
|
34
|
-
def registered_classes
|
35
|
-
class_registry.registered
|
36
|
-
end
|
37
|
-
|
38
|
-
def registered? name
|
39
|
-
name_registry.registered? name
|
40
|
-
end
|
41
|
-
|
42
|
-
def registered_class? name
|
43
|
-
class_registry.registered? name
|
44
|
-
end
|
45
|
-
|
46
|
-
def name_registry
|
47
|
-
@name_registry ||=NameRegistry.new
|
48
|
-
end
|
49
|
-
|
50
|
-
def class_registry
|
51
|
-
@class_registry ||= ClassRegistry.new
|
52
|
-
end
|
53
|
-
|
54
|
-
def value_methods
|
55
|
-
class_registry.value_methods
|
56
|
-
end
|
57
|
-
|
58
|
-
def value_types
|
59
|
-
class_registry.types
|
60
|
-
end
|
61
|
-
|
62
|
-
class NameRegistry < Registry::Base
|
63
|
-
end
|
64
|
-
|
65
|
-
class ClassRegistry < Registry::Base
|
66
|
-
|
67
|
-
def types
|
68
|
-
[Class]
|
69
|
-
end
|
70
|
-
|
71
|
-
def value_methods
|
72
|
-
[]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
protected
|
77
|
-
|
78
|
-
def valid? value
|
79
|
-
valid_by_type?(value) && valid_by_methods?(value)
|
80
|
-
end
|
81
|
-
|
82
|
-
def valid_by_type? value
|
83
|
-
return true if value_types.blank?
|
84
|
-
value.any_kind_of?(*value_types)
|
85
|
-
end
|
86
|
-
|
87
|
-
def valid_by_methods? value
|
88
|
-
return true if value_methods.blank?
|
89
|
-
value_methods.all?{|m| value.respond_to(m)}
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'cantango/configuration/shared/execution_modes_ex'
|
3
|
-
|
4
|
-
class User
|
5
|
-
end
|
6
|
-
|
7
|
-
class MyAbility
|
8
|
-
include CanTango::Configuration::ExecutionModes
|
9
|
-
end
|
10
|
-
|
11
|
-
describe CanTango::Configuration::ExecutionModes do
|
12
|
-
subject { MyAbility.new }
|
13
|
-
|
14
|
-
it_should_behave_like "Execution Modes"
|
15
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
shared_examples_for 'Execution Modes' do
|
2
|
-
describe 'valid mode=' do
|
3
|
-
before do
|
4
|
-
subject.mode = :cache
|
5
|
-
end
|
6
|
-
specify { subject.modes.should == [:cache] }
|
7
|
-
end
|
8
|
-
|
9
|
-
describe 'invalid mode=' do
|
10
|
-
specify do
|
11
|
-
lambda { subject.mode = :cachy! }.should raise_error
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,112 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'fixtures/models'
|
3
|
-
|
4
|
-
@user = User.new('kris', 'kris@gmail.com')
|
5
|
-
|
6
|
-
class CanTango::CustomAbility < CanTango::Ability::Base
|
7
|
-
def initialize candidate, options = {}
|
8
|
-
'custom'
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class ApplicationController
|
13
|
-
end
|
14
|
-
|
15
|
-
describe CanTango::Configuration do
|
16
|
-
subject { CanTango.config }
|
17
|
-
|
18
|
-
describe 'ability' do
|
19
|
-
specify { subject.ability.should be_a CanTango::Configuration::Ability }
|
20
|
-
end
|
21
|
-
|
22
|
-
describe 'hooks' do
|
23
|
-
specify { subject.hooks.registered.should be_empty }
|
24
|
-
|
25
|
-
describe 'register hooks' do
|
26
|
-
before do
|
27
|
-
subject.hooks.register :nime => Proc.new { 2 }
|
28
|
-
end
|
29
|
-
specify { subject.hooks.registered.should_not be_empty }
|
30
|
-
specify { subject.hooks[:nime].should be_a Proc }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe 'include_models :default_guest_user' do
|
35
|
-
before do
|
36
|
-
subject.include_models :default_guest_user
|
37
|
-
end
|
38
|
-
specify { defined?(::Guest).should be_true }
|
39
|
-
end
|
40
|
-
|
41
|
-
describe 'enable defaults' do
|
42
|
-
before do
|
43
|
-
subject.enable_defaults!
|
44
|
-
end
|
45
|
-
specify { subject.engine(:permit).should be_nil }
|
46
|
-
specify { subject.engine(:permission).should be_nil }
|
47
|
-
end
|
48
|
-
|
49
|
-
describe 'enable_helpers' do
|
50
|
-
before do
|
51
|
-
subject.enable_helpers :rest
|
52
|
-
end
|
53
|
-
specify { ::ApplicationController.instance_methods.should include(:link_to_new) }
|
54
|
-
end
|
55
|
-
|
56
|
-
describe 'localhosts' do
|
57
|
-
specify { subject.localhosts.registered.should include('localhost') }
|
58
|
-
end
|
59
|
-
|
60
|
-
describe 'orms' do
|
61
|
-
specify { subject.orms.registered.should be_empty }
|
62
|
-
|
63
|
-
describe 'register' do
|
64
|
-
before do
|
65
|
-
subject.orms.register :mongoid
|
66
|
-
end
|
67
|
-
specify { subject.orms.registered.should include(:mongoid) }
|
68
|
-
end
|
69
|
-
|
70
|
-
describe '<<' do
|
71
|
-
before do
|
72
|
-
subject.orms << :mongo_mapper
|
73
|
-
end
|
74
|
-
specify { subject.orms.registered.should include(:mongo_mapper) }
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "engines DSL" do
|
79
|
-
before(:all) {
|
80
|
-
CanTango.configure do |config|
|
81
|
-
CanTango.config.engines.each do |engine|
|
82
|
-
engine.set :off
|
83
|
-
end
|
84
|
-
end
|
85
|
-
}
|
86
|
-
|
87
|
-
describe 'engine(name)' do
|
88
|
-
CanTango.config.engines.registered_names.each do |name|
|
89
|
-
specify { subject.engine(name).off?.should be_true}
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
describe 'each' do
|
94
|
-
CanTango.config.engines.each do |engine|
|
95
|
-
specify { engine.on?.should be_false}
|
96
|
-
specify { engine.off?.should be_true}
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
describe 'clear!' do
|
102
|
-
before do
|
103
|
-
subject.roles.exclude :user
|
104
|
-
subject.role_groups.exclude :admins
|
105
|
-
|
106
|
-
subject.clear!
|
107
|
-
end
|
108
|
-
|
109
|
-
specify { subject.roles.excluded.should be_empty }
|
110
|
-
specify { subject.role_groups.excluded.should be_empty }
|
111
|
-
end
|
112
|
-
end
|