roles_active_record 0.1.0 → 0.2.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.
- data/.document +0 -0
- data/.gitignore +0 -0
- data/.rspec +0 -0
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.markdown +1 -1
- data/Rakefile +0 -0
- data/VERSION +1 -1
- data/development.sqlite3 +0 -0
- data/lib/generators/active_record/roles/roles_generator.rb +58 -29
- data/lib/generators/active_record/roles_migration/roles_migration_generator.rb +7 -6
- data/lib/generators/active_record/roles_migration/templates/add_admin_flag_strategy.erb +0 -0
- data/lib/generators/active_record/roles_migration/templates/add_many_roles_strategy.erb +0 -0
- data/lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb +0 -0
- data/lib/generators/active_record/roles_migration/templates/add_role_string_strategy.erb +0 -0
- data/lib/generators/active_record/roles_migration/templates/{add_roles_mask_to_users_migration.erb → add_roles_mask_strategy.erb} +0 -0
- data/lib/generators/active_record/setup/setup_generator.rb +0 -0
- data/lib/roles_active_record/base.rb +0 -0
- data/lib/roles_active_record/namespaces.rb +0 -0
- data/lib/roles_active_record/role.rb +1 -1
- data/lib/roles_active_record/strategy/multi/many_roles.rb +0 -0
- data/lib/roles_active_record/strategy/multi/roles_mask.rb +0 -0
- data/lib/roles_active_record/strategy/single/admin_flag.rb +0 -0
- data/lib/roles_active_record/strategy/single/one_role.rb +0 -0
- data/lib/roles_active_record/strategy/single/role_string.rb +0 -0
- data/lib/roles_active_record/strategy.rb +0 -0
- data/lib/{roles_for_active_record.rb → roles_active_record.rb} +1 -1
- data/lib/views/_multi_role_selector.erb.html +0 -0
- data/lib/views/_single_role_selector.erb.html +0 -0
- data/logging.log +26 -0
- data/roles_active_record.gemspec +20 -7
- data/roles_for_ar.gemspec +0 -0
- data/sandbox/Rakefile +0 -0
- data/sandbox/add_role_to_users_migration.erb +0 -0
- data/sandbox/create_roles_migration.erb +0 -0
- data/sandbox/create_user_roles_migration.erb +0 -0
- data/sandbox/database.log +0 -0
- data/sandbox/database.yml +0 -0
- data/sandbox/development.sqlite3 +0 -0
- data/sandbox/migrate/201002508_create_roles.rb +0 -0
- data/sandbox/migrate/20102507_create_users.rb +0 -0
- data/sandbox/model_base.rb +0 -0
- data/sandbox/test.rb +0 -0
- data/spec/db/database.yml +0 -0
- data/spec/fixtures/many_roles_setup.rb +0 -0
- data/spec/fixtures/one_role_setup.rb +0 -0
- data/spec/generator_spec_helper.rb +13 -0
- data/spec/migration_spec_helper.rb +20 -0
- data/spec/migrations/admin_flag/004_add_admin_flag_to_users.rb +0 -0
- data/spec/migrations/many_roles/002_create_roles.rb +0 -0
- data/spec/migrations/many_roles/003_create_user_roles.rb +0 -0
- data/spec/migrations/one_role/002_create_roles.rb +0 -0
- data/spec/migrations/one_role/003_add_role_to_users.rb +0 -0
- data/spec/migrations/role_string/002_add_role_string_to_users.rb +0 -0
- data/spec/migrations/roles_mask/005_add_roles_mask_to_users.rb +0 -0
- data/spec/migrations/users/001_create_users.rb +0 -0
- data/spec/roles_active_record/admin_flag_spec.rb +0 -0
- data/spec/roles_active_record/generators/roles_generator_spec.rb +75 -0
- data/spec/roles_active_record/generators/roles_migration/admin_flag_spec.rb +38 -36
- data/spec/roles_active_record/generators/roles_migration/many_roles_spec.rb +26 -28
- data/spec/roles_active_record/generators/roles_migration/one_role_spec.rb +21 -28
- data/spec/roles_active_record/generators/roles_migration/role_string_spec.rb +29 -15
- data/spec/roles_active_record/generators/roles_migration/roles_mask_spec.rb +12 -14
- data/spec/roles_active_record/generators/setup_generator_spec.rb +0 -0
- data/spec/roles_active_record/many_roles_spec.rb +0 -0
- data/spec/roles_active_record/one_role_spec.rb +0 -0
- data/spec/roles_active_record/role_string_spec.rb +0 -0
- data/spec/roles_active_record/roles_mask_spec.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/tmp/rails/app/models/user.rb +7 -0
- data/tmp/rails/config/routes.rb +2 -0
- data/tmp/rails/db/migrations/20100912101428_add_admin_flag_strategy.rb +14 -0
- data/tmp/rails/db/migrations/20100912101429_remove_admin_flag_strategy.rb +14 -0
- data/tmp/rails/db/migrations/20100912105055_add_many_roles_strategy.rb +40 -0
- data/tmp/rails/db/migrations/20100912105323_add_one_role_strategy.rb +40 -0
- data/tmp/rails/db/migrations/20100912110044_add_role_string_strategy.rb +13 -0
- data/tmp/rails/db/migrations/20100912110249_add_roles_mask_strategy.rb +13 -0
- metadata +20 -7
- data/spec/roles_active_record/generators/migration_spec_helper.rb +0 -17
data/.document
CHANGED
File without changes
|
data/.gitignore
CHANGED
File without changes
|
data/.rspec
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/README.markdown
CHANGED
@@ -19,7 +19,7 @@ It also implements the following Role strategies:
|
|
19
19
|
|
20
20
|
## Rails generator
|
21
21
|
|
22
|
-
|
22
|
+
Will create admin and guest roles by default
|
23
23
|
|
24
24
|
<code>$ rails g active_record:roles User --strategy admin_flag --roles admin guest</code>
|
25
25
|
|
data/Rakefile
CHANGED
File without changes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/development.sqlite3
CHANGED
File without changes
|
@@ -1,46 +1,75 @@
|
|
1
|
+
require 'rails3_artifactor'
|
2
|
+
require 'logging_assist'
|
3
|
+
|
1
4
|
module ActiveRecord
|
2
5
|
module Generators
|
3
|
-
class RolesGenerator < Rails::Generators::NamedBase
|
4
|
-
desc "
|
6
|
+
class RolesGenerator < Rails::Generators::NamedBase
|
7
|
+
desc "Add role strategy to a model"
|
5
8
|
|
6
|
-
|
9
|
+
class_option :strategy, :type => :string, :aliases => "-s", :default => 'role_string',
|
10
|
+
:desc => "Role strategy to use (admin_flag, role_string, roles_string, role_strings, one_role, many_roles, roles_mask)"
|
7
11
|
|
8
|
-
hook_for :orm
|
9
|
-
|
10
|
-
def self.source_root
|
11
|
-
@source_root ||= File.expand_path("../../templates", __FILE__)
|
12
|
-
end
|
13
12
|
|
14
|
-
|
15
|
-
|
13
|
+
class_option :roles, :type => :array, :aliases => "-r", :default => [], :desc => "Valid roles"
|
14
|
+
|
15
|
+
class_option :default_roles, :type => :boolean, :default => true, :desc => "Use default roles :admin and :base"
|
16
|
+
|
17
|
+
|
18
|
+
def apply_role_strategy
|
19
|
+
log.add_logfile
|
20
|
+
log.debug "apply_role_strategy for : #{strategy} in model #{name}"
|
21
|
+
begin
|
22
|
+
insert_into_model name do
|
23
|
+
insertion_text
|
24
|
+
end
|
25
|
+
rescue
|
26
|
+
say "Model #{name} not found"
|
27
|
+
end
|
16
28
|
end
|
17
29
|
|
18
30
|
protected
|
19
31
|
|
20
|
-
|
21
|
-
|
22
|
-
|
32
|
+
extend Rails3::Assist::UseMacro
|
33
|
+
use_orm :active_record
|
34
|
+
include Rails::Assist::BasicLogging
|
23
35
|
|
36
|
+
def orm
|
37
|
+
:active_record
|
38
|
+
end
|
39
|
+
|
40
|
+
def default_roles
|
41
|
+
options[:default_roles] ? [:admin, :guest] : []
|
42
|
+
end
|
43
|
+
|
44
|
+
def roles_to_add
|
45
|
+
@roles_to_add ||= default_roles.concat(options[:roles]).to_symbols.uniq
|
46
|
+
end
|
47
|
+
|
48
|
+
def roles
|
49
|
+
roles_to_add.map{|r| ":#{r}" }
|
50
|
+
end
|
51
|
+
|
24
52
|
def role_strategy_statement
|
25
|
-
"
|
53
|
+
"strategy :#{strategy}, :default\n#{role_class_stmt}"
|
26
54
|
end
|
27
55
|
|
28
|
-
def
|
29
|
-
|
56
|
+
def role_class_stmt
|
57
|
+
" role_class :role" if [:one_role, :many_roles].include? (strategy.to_sym)
|
58
|
+
end
|
59
|
+
|
60
|
+
def roles_statement
|
61
|
+
roles ? "valid_roles_are #{roles.join(', ')}" : ''
|
62
|
+
end
|
63
|
+
|
64
|
+
def insertion_text
|
65
|
+
%Q{include Roles::#{orm.to_s.camelize}
|
66
|
+
#{role_strategy_statement}
|
67
|
+
#{roles_statement}}
|
68
|
+
end
|
69
|
+
|
70
|
+
def strategy
|
71
|
+
options[:strategy]
|
30
72
|
end
|
31
|
-
|
32
|
-
def model_file(name)
|
33
|
-
File.join(Rails.root, "app/models/#{name}.rb")
|
34
|
-
end
|
35
|
-
|
36
|
-
def insert_into_model(model_name, insert_text)
|
37
|
-
model_name = model_name.to_s
|
38
|
-
file = File.new(model_file(model_name))
|
39
|
-
return if (file.read =~ /#{insert_text}/)
|
40
|
-
gsub_file model_file(model_name), match_expr do |match|
|
41
|
-
match << insert_text
|
42
|
-
end
|
43
|
-
end
|
44
73
|
end
|
45
74
|
end
|
46
75
|
end
|
@@ -1,12 +1,9 @@
|
|
1
|
-
|
2
|
-
# require 'generators/role_migrations'
|
3
|
-
# require 'auth_assistant/model/user_config'
|
1
|
+
require 'migration_assist'
|
4
2
|
|
5
3
|
module ActiveRecord
|
6
4
|
module Generators
|
7
5
|
class RolesMigrationGenerator < Rails::Generators::NamedBase
|
8
|
-
include Rails::
|
9
|
-
include RSpec::Rails::App
|
6
|
+
include Rails::Migration::Assist
|
10
7
|
|
11
8
|
desc "Generates user role migrations"
|
12
9
|
|
@@ -22,7 +19,7 @@ module ActiveRecord
|
|
22
19
|
end
|
23
20
|
|
24
21
|
def valid_strategy?
|
25
|
-
if !
|
22
|
+
if !strategies.include?(strategy.to_sym)
|
26
23
|
info "Unknown role strategy #{strategy}"
|
27
24
|
raise ArgumentError, "Unknown role strategy #{strategy}"
|
28
25
|
end
|
@@ -37,6 +34,10 @@ module ActiveRecord
|
|
37
34
|
end
|
38
35
|
|
39
36
|
protected
|
37
|
+
|
38
|
+
def strategies
|
39
|
+
[:admin_flag, :role_string, :one_role, :many_roles, :roles_mask]
|
40
|
+
end
|
40
41
|
|
41
42
|
def reverse?
|
42
43
|
options[:reverse]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/logging.log
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
[Rails::Assist::Logging]
|
2
|
+
apply_role_strategy for : admin_flag in model User
|
3
|
+
[Rails::Assist::Logging]
|
4
|
+
apply_role_strategy for : one_role in model User
|
5
|
+
[Rails::Assist::Logging]
|
6
|
+
apply_role_strategy for : admin_flag in model User
|
7
|
+
[Rails::Assist::Logging]
|
8
|
+
apply_role_strategy for : admin_flag in model User
|
9
|
+
[Rails::Assist::Logging]
|
10
|
+
apply_role_strategy for : one_role in model User
|
11
|
+
[Rails::Assist::Logging]
|
12
|
+
apply_role_strategy for : admin_flag in model User
|
13
|
+
[Rails::Assist::Logging]
|
14
|
+
apply_role_strategy for : admin_flag in model User
|
15
|
+
[Rails::Assist::Logging]
|
16
|
+
apply_role_strategy for : admin_flag in model User
|
17
|
+
[Rails::Assist::Logging]
|
18
|
+
apply_role_strategy for : admin_flag in model User
|
19
|
+
[Rails::Assist::Logging]
|
20
|
+
apply_role_strategy for : admin_flag in model User
|
21
|
+
[Rails::Assist::Logging]
|
22
|
+
apply_role_strategy for : admin_flag in model User
|
23
|
+
[Rails::Assist::Logging]
|
24
|
+
apply_role_strategy for : admin_flag in model User
|
25
|
+
[Rails::Assist::Logging]
|
26
|
+
apply_role_strategy for : one_role in model User
|
data/roles_active_record.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{roles_active_record}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-12}
|
13
13
|
s.description = %q{Makes it easy to set a role strategy on your User model in Active Record}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -32,8 +32,9 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/generators/active_record/roles_migration/templates/add_many_roles_strategy.erb",
|
33
33
|
"lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb",
|
34
34
|
"lib/generators/active_record/roles_migration/templates/add_role_string_strategy.erb",
|
35
|
-
"lib/generators/active_record/roles_migration/templates/
|
35
|
+
"lib/generators/active_record/roles_migration/templates/add_roles_mask_strategy.erb",
|
36
36
|
"lib/generators/active_record/setup/setup_generator.rb",
|
37
|
+
"lib/roles_active_record.rb",
|
37
38
|
"lib/roles_active_record/base.rb",
|
38
39
|
"lib/roles_active_record/namespaces.rb",
|
39
40
|
"lib/roles_active_record/role.rb",
|
@@ -43,9 +44,9 @@ Gem::Specification.new do |s|
|
|
43
44
|
"lib/roles_active_record/strategy/single/admin_flag.rb",
|
44
45
|
"lib/roles_active_record/strategy/single/one_role.rb",
|
45
46
|
"lib/roles_active_record/strategy/single/role_string.rb",
|
46
|
-
"lib/roles_for_active_record.rb",
|
47
47
|
"lib/views/_multi_role_selector.erb.html",
|
48
48
|
"lib/views/_single_role_selector.erb.html",
|
49
|
+
"logging.log",
|
49
50
|
"roles_active_record.gemspec",
|
50
51
|
"roles_for_ar.gemspec",
|
51
52
|
"sandbox/Rakefile",
|
@@ -62,6 +63,8 @@ Gem::Specification.new do |s|
|
|
62
63
|
"spec/db/database.yml",
|
63
64
|
"spec/fixtures/many_roles_setup.rb",
|
64
65
|
"spec/fixtures/one_role_setup.rb",
|
66
|
+
"spec/generator_spec_helper.rb",
|
67
|
+
"spec/migration_spec_helper.rb",
|
65
68
|
"spec/migrations/admin_flag/004_add_admin_flag_to_users.rb",
|
66
69
|
"spec/migrations/many_roles/002_create_roles.rb",
|
67
70
|
"spec/migrations/many_roles/003_create_user_roles.rb",
|
@@ -71,7 +74,7 @@ Gem::Specification.new do |s|
|
|
71
74
|
"spec/migrations/roles_mask/005_add_roles_mask_to_users.rb",
|
72
75
|
"spec/migrations/users/001_create_users.rb",
|
73
76
|
"spec/roles_active_record/admin_flag_spec.rb",
|
74
|
-
"spec/roles_active_record/generators/
|
77
|
+
"spec/roles_active_record/generators/roles_generator_spec.rb",
|
75
78
|
"spec/roles_active_record/generators/roles_migration/admin_flag_spec.rb",
|
76
79
|
"spec/roles_active_record/generators/roles_migration/many_roles_spec.rb",
|
77
80
|
"spec/roles_active_record/generators/roles_migration/one_role_spec.rb",
|
@@ -82,7 +85,15 @@ Gem::Specification.new do |s|
|
|
82
85
|
"spec/roles_active_record/one_role_spec.rb",
|
83
86
|
"spec/roles_active_record/role_string_spec.rb",
|
84
87
|
"spec/roles_active_record/roles_mask_spec.rb",
|
85
|
-
"spec/spec_helper.rb"
|
88
|
+
"spec/spec_helper.rb",
|
89
|
+
"tmp/rails/app/models/user.rb",
|
90
|
+
"tmp/rails/config/routes.rb",
|
91
|
+
"tmp/rails/db/migrations/20100912101428_add_admin_flag_strategy.rb",
|
92
|
+
"tmp/rails/db/migrations/20100912101429_remove_admin_flag_strategy.rb",
|
93
|
+
"tmp/rails/db/migrations/20100912105055_add_many_roles_strategy.rb",
|
94
|
+
"tmp/rails/db/migrations/20100912105323_add_one_role_strategy.rb",
|
95
|
+
"tmp/rails/db/migrations/20100912110044_add_role_string_strategy.rb",
|
96
|
+
"tmp/rails/db/migrations/20100912110249_add_roles_mask_strategy.rb"
|
86
97
|
]
|
87
98
|
s.homepage = %q{http://github.com/kristianmandrup/roles_for_dm}
|
88
99
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -92,6 +103,8 @@ Gem::Specification.new do |s|
|
|
92
103
|
s.test_files = [
|
93
104
|
"spec/fixtures/many_roles_setup.rb",
|
94
105
|
"spec/fixtures/one_role_setup.rb",
|
106
|
+
"spec/generator_spec_helper.rb",
|
107
|
+
"spec/migration_spec_helper.rb",
|
95
108
|
"spec/migrations/admin_flag/004_add_admin_flag_to_users.rb",
|
96
109
|
"spec/migrations/many_roles/002_create_roles.rb",
|
97
110
|
"spec/migrations/many_roles/003_create_user_roles.rb",
|
@@ -101,7 +114,7 @@ Gem::Specification.new do |s|
|
|
101
114
|
"spec/migrations/roles_mask/005_add_roles_mask_to_users.rb",
|
102
115
|
"spec/migrations/users/001_create_users.rb",
|
103
116
|
"spec/roles_active_record/admin_flag_spec.rb",
|
104
|
-
"spec/roles_active_record/generators/
|
117
|
+
"spec/roles_active_record/generators/roles_generator_spec.rb",
|
105
118
|
"spec/roles_active_record/generators/roles_migration/admin_flag_spec.rb",
|
106
119
|
"spec/roles_active_record/generators/roles_migration/many_roles_spec.rb",
|
107
120
|
"spec/roles_active_record/generators/roles_migration/one_role_spec.rb",
|
data/roles_for_ar.gemspec
CHANGED
File without changes
|
data/sandbox/Rakefile
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/sandbox/database.log
CHANGED
File without changes
|
data/sandbox/database.yml
CHANGED
File without changes
|
data/sandbox/development.sqlite3
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/sandbox/model_base.rb
CHANGED
File without changes
|
data/sandbox/test.rb
CHANGED
File without changes
|
data/spec/db/database.yml
CHANGED
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec/autorun'
|
3
|
+
require 'rails3_artifactor'
|
4
|
+
require 'generator-spec'
|
5
|
+
require 'roles_generic'
|
6
|
+
|
7
|
+
RSpec::Generator.configure do |config|
|
8
|
+
config.debug = false
|
9
|
+
config.remove_temp_dir = false # true
|
10
|
+
config.default_rails_root(__FILE__)
|
11
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
12
|
+
config.logger = :stdout
|
13
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rspec/autorun'
|
3
|
+
require 'active_record'
|
4
|
+
require 'yaml'
|
5
|
+
require 'logger'
|
6
|
+
require 'database_cleaner'
|
7
|
+
require 'roles_active_record'
|
8
|
+
require 'migration-spec'
|
9
|
+
require 'generator-spec'
|
10
|
+
|
11
|
+
Rails::Migration::Assist.rails_root_dir = File.expand_path(File.dirname(__FILE__) + '/../tmp/rails')
|
12
|
+
|
13
|
+
RSpec::Generator.configure do |config|
|
14
|
+
config.debug = true
|
15
|
+
config.remove_temp_dir = false # true
|
16
|
+
config.default_rails_root(__FILE__)
|
17
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
18
|
+
config.logger = :stdout
|
19
|
+
end
|
20
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'generator_spec_helper'
|
2
|
+
require_generator :active_record => :roles
|
3
|
+
|
4
|
+
# root_dir = Rails3::Assist::Directory.rails_root
|
5
|
+
root_dir = File.join(Rails.application.config.root_dir, 'rails')
|
6
|
+
|
7
|
+
describe 'role strategy generator: admin_flag' do
|
8
|
+
describe 'ORM: active_record' do
|
9
|
+
use_orm :active_record
|
10
|
+
|
11
|
+
before do
|
12
|
+
setup_generator 'datamapper_roles_generator' do
|
13
|
+
tests ActiveRecord::Generators::RolesGenerator
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
before :each do
|
18
|
+
remove_model :user
|
19
|
+
end
|
20
|
+
|
21
|
+
after :each do
|
22
|
+
# remove_model :user
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should configure 'admin_flag' strategy without default roles" do
|
26
|
+
create_model :user do
|
27
|
+
'# content'
|
28
|
+
end
|
29
|
+
with_generator do |g|
|
30
|
+
arguments = "User --strategy admin_flag --roles special --no-default-roles"
|
31
|
+
puts "arguments: #{arguments}"
|
32
|
+
g.run_generator arguments.args
|
33
|
+
root_dir.should have_model :user do |clazz|
|
34
|
+
clazz.should include_module 'Roles::ActiveRecord'
|
35
|
+
clazz.should have_call :valid_roles_are, :args => ':special'
|
36
|
+
clazz.should have_call :strategy, :args => ":admin_flag"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should configure 'admin_flag' strategy" do
|
42
|
+
create_model :user do
|
43
|
+
'# content'
|
44
|
+
end
|
45
|
+
with_generator do |g|
|
46
|
+
arguments = "User --strategy admin_flag --roles admin user"
|
47
|
+
puts "arguments: #{arguments}"
|
48
|
+
g.run_generator arguments.args
|
49
|
+
root_dir.should have_model :user do |clazz|
|
50
|
+
clazz.should include_module 'Roles::ActiveRecord'
|
51
|
+
clazz.should have_call :valid_roles_are, :args => ':admin, :guest, :user'
|
52
|
+
clazz.should have_call :strategy, :args => ":admin_flag"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should configure 'one_role' strategy" do
|
58
|
+
create_model :user do
|
59
|
+
'# content'
|
60
|
+
end
|
61
|
+
with_generator do |g|
|
62
|
+
arguments = "User --strategy one_role --roles admin user"
|
63
|
+
puts "arguments: #{arguments}"
|
64
|
+
g.run_generator arguments.args
|
65
|
+
root_dir.should have_model :user do |clazz|
|
66
|
+
clazz.should include_module 'Roles::ActiveRecord'
|
67
|
+
clazz.should have_call :valid_roles_are, :args => ':admin, :guest, :user'
|
68
|
+
clazz.should have_call :role_class, :args => ":role"
|
69
|
+
clazz.should have_call :strategy, :args => ":one_role"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
@@ -1,12 +1,18 @@
|
|
1
|
-
require
|
1
|
+
require 'migration_spec_helper'
|
2
2
|
|
3
3
|
require_generator :active_record => :roles_migration
|
4
4
|
|
5
|
+
root_dir = Rails::Migration::Assist.rails_root_dir
|
6
|
+
Rails3::Assist::Directory.rails_root = root_dir
|
7
|
+
Rails::Migration::Assist.orm = :active_record
|
8
|
+
|
9
|
+
puts "root_dir: #{root_dir}"
|
10
|
+
|
5
11
|
describe 'roles_migration_generator' do
|
6
|
-
use_orm
|
7
|
-
|
12
|
+
use_orm :active_record
|
13
|
+
use_helper :migration
|
8
14
|
|
9
|
-
before
|
15
|
+
before do
|
10
16
|
setup_generator 'roles_migration_generator' do
|
11
17
|
tests ActiveRecord::Generators::RolesMigrationGenerator
|
12
18
|
end
|
@@ -15,28 +21,26 @@ describe 'roles_migration_generator' do
|
|
15
21
|
after :each do
|
16
22
|
end
|
17
23
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# end # with
|
39
|
-
# end
|
24
|
+
it "should generate migration 'add_admin_flag_strategy' for role strategy 'admin_flag'" do
|
25
|
+
with_generator do |g|
|
26
|
+
remove_migration :add_admin_flag_strategy
|
27
|
+
g.run_generator "User --strategy admin_flag".args
|
28
|
+
|
29
|
+
g.should generate_migration :add_admin_flag_strategy do |content|
|
30
|
+
content.should have_up do |up|
|
31
|
+
up.should have_change_table :users do |tbl_content|
|
32
|
+
tbl_content.should have_add_column :admin_flag, :boolean
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
content.should have_down do |down|
|
37
|
+
down.should have_change_table :users do |tbl_content|
|
38
|
+
tbl_content.should have_remove_column :admin_flag
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end # with
|
43
|
+
end
|
40
44
|
|
41
45
|
it "should generate reverse migration 'remove_admin_flag_strategy' for role strategy 'admin_flag'" do
|
42
46
|
with_generator do |g|
|
@@ -44,17 +48,15 @@ describe 'roles_migration_generator' do
|
|
44
48
|
g.run_generator "User --strategy admin_flag --reverse".args
|
45
49
|
|
46
50
|
g.should generate_migration :remove_admin_flag_strategy do |content|
|
47
|
-
content.should
|
48
|
-
|
49
|
-
|
50
|
-
tbl_content.should have_add_column :admin_flag, :boolean
|
51
|
-
end
|
51
|
+
content.should have_down do |down|
|
52
|
+
down.should have_change_table :users do |tbl_content|
|
53
|
+
tbl_content.should have_add_column :admin_flag, :boolean
|
52
54
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
end
|
56
|
+
|
57
|
+
content.should have_up do |up|
|
58
|
+
up.should have_change_table :users do |tbl_content|
|
59
|
+
tbl_content.should have_remove_column :admin_flag
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require 'migration_spec_helper'
|
2
2
|
require_generator :active_record => :roles_migration
|
3
3
|
|
4
4
|
describe 'roles_migration_generator' do
|
5
5
|
use_orm :active_record
|
6
|
-
|
6
|
+
use_helper :migration
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
setup_generator 'roles_migration_generator' do
|
@@ -20,36 +20,34 @@ describe 'roles_migration_generator' do
|
|
20
20
|
g.run_generator "User --strategy many_roles".args
|
21
21
|
|
22
22
|
g.should generate_migration :add_many_roles_strategy do |content|
|
23
|
-
content.should
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
tbl_content.should have_timestamps
|
35
|
-
end
|
23
|
+
content.should have_class_self do |class_self|
|
24
|
+
class_self.should have_method :up do |up|
|
25
|
+
up.should have_call :create_user_roles
|
26
|
+
up.should have_call :create_roles
|
27
|
+
end
|
28
|
+
|
29
|
+
class_self.should have_method :create_user_roles do |method|
|
30
|
+
method.should have_create_table :user_roles do |tbl_content|
|
31
|
+
tbl_content.should have_add_column :role_id, :integer
|
32
|
+
tbl_content.should have_add_column :user_id, :integer
|
33
|
+
tbl_content.should have_timestamps
|
36
34
|
end
|
35
|
+
end
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
37
|
+
class_self.should have_method :create_roles do |method|
|
38
|
+
method.should have_create_table :roles do |tbl_content|
|
39
|
+
tbl_content.should have_add_column :name, :string
|
40
|
+
tbl_content.should have_timestamps
|
43
41
|
end
|
44
|
-
|
45
|
-
class_self.should have_method :down do |down|
|
46
|
-
down.should have_call :drop_user_roles
|
47
|
-
down.should have_call :drop_roles
|
48
|
-
end
|
49
|
-
|
50
|
-
class_self.should have_method :drop_user_roles
|
51
|
-
class_self.should have_method :drop_roles
|
52
42
|
end
|
43
|
+
|
44
|
+
class_self.should have_method :down do |down|
|
45
|
+
down.should have_call :drop_user_roles
|
46
|
+
down.should have_call :drop_roles
|
47
|
+
end
|
48
|
+
|
49
|
+
class_self.should have_method :drop_user_roles
|
50
|
+
class_self.should have_method :drop_roles
|
53
51
|
end
|
54
52
|
end
|
55
53
|
end # with
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require 'migration_spec_helper'
|
2
2
|
require_generator :active_record => :roles_migration
|
3
3
|
|
4
4
|
describe 'roles_migration_generator' do
|
5
5
|
use_orm :active_record
|
6
|
-
|
6
|
+
use_helper :migration
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
setup_generator 'roles_migration_generator' do
|
@@ -21,36 +21,29 @@ describe 'roles_migration_generator' do
|
|
21
21
|
|
22
22
|
g.run_generator [:user, %w{--strategy one_role}].args
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
# def up
|
25
|
+
# create_roles
|
26
|
+
# add_user_role
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# def down
|
30
|
+
# drop_roles
|
31
|
+
# remove_user_role
|
32
|
+
# end
|
33
|
+
|
34
|
+
g.should generate_migration :add_one_role_strategy do |content|
|
35
|
+
content.should have_class_self do |class_self|
|
36
|
+
class_self.should have_method :up do |up|
|
37
|
+
up.should have_call :create_roles
|
38
|
+
up.should have_call :add_user_role
|
30
39
|
end
|
31
40
|
|
32
|
-
|
33
|
-
down.should
|
34
|
-
|
35
|
-
end
|
41
|
+
class_self.should have_method :down do |down|
|
42
|
+
down.should have_call :drop_roles
|
43
|
+
down.should have_call :remove_user_role
|
36
44
|
end
|
37
45
|
end
|
38
|
-
end
|
39
|
-
|
40
|
-
g.should generate_migration :create_roles do |content|
|
41
|
-
content.should have_migration :create_roles do |klass|
|
42
|
-
klass.should have_up do |up|
|
43
|
-
up.should have_create_table :roles do |tbl_content|
|
44
|
-
tbl_content.should have_add_column :name, :string
|
45
|
-
tbl_content.should have_timestamps
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
klass.should have_down do |down|
|
50
|
-
down.should have_drop_table :roles
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
46
|
+
end
|
54
47
|
end # with
|
55
48
|
end
|
56
49
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require 'migration_spec_helper'
|
2
2
|
require_generator :active_record => :roles_migration
|
3
3
|
|
4
4
|
describe 'roles_migration_generator' do
|
5
5
|
use_orm :active_record
|
6
|
-
|
6
|
+
use_helper :migration
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
setup_generator 'roles_migration_generator' do
|
@@ -15,26 +15,40 @@ describe 'roles_migration_generator' do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
|
18
|
-
it "should generate migration '
|
18
|
+
it "should generate migration 'add_role_string_strategy' for role strategy 'role_string'" do
|
19
|
+
|
20
|
+
# class AddRoleStringStrategy < ActiveRecord::Migration
|
21
|
+
# def self.up
|
22
|
+
# change_table :users do |t|
|
23
|
+
# t.string :role, :default => 'guest'
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# def self.down
|
28
|
+
# change_table :users do |t|
|
29
|
+
# t.remove :role
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
|
34
|
+
|
19
35
|
with_generator do |g|
|
20
|
-
remove_migration :
|
36
|
+
remove_migration :add_role_string_strategy
|
21
37
|
g.run_generator [:user, %w{--strategy role_string}].args
|
22
38
|
|
23
|
-
g.should generate_migration :
|
24
|
-
content.should
|
25
|
-
|
26
|
-
|
27
|
-
tbl_content.should have_add_column :role, :string
|
28
|
-
end
|
39
|
+
g.should generate_migration :add_role_string_strategy do |content|
|
40
|
+
content.should have_up do |up|
|
41
|
+
up.should have_change_table :users do |tbl_content|
|
42
|
+
tbl_content.should have_add_column :role, :string
|
29
43
|
end
|
44
|
+
end
|
30
45
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
46
|
+
content.should have_down do |down|
|
47
|
+
down.should have_change_table :users do |tbl_content|
|
48
|
+
tbl_content.should have_remove_column :role
|
35
49
|
end
|
36
50
|
end
|
37
|
-
end
|
51
|
+
end
|
38
52
|
end # with
|
39
53
|
end
|
40
54
|
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require 'migration_spec_helper'
|
2
2
|
require_generator :active_record => :roles_migration
|
3
3
|
|
4
4
|
describe 'roles_migration_generator' do
|
5
5
|
use_orm :active_record
|
6
|
-
|
6
|
+
use_helper :migration
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
setup_generator 'roles_migration_generator' do
|
@@ -11,23 +11,21 @@ describe 'roles_migration_generator' do
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
it "should generate migration '
|
14
|
+
it "should generate migration 'add_roles_mask_strategy' for role strategy 'roles_mask'" do
|
15
15
|
with_generator do |g|
|
16
|
-
remove_migration :
|
16
|
+
remove_migration :add_roles_mask_strategy
|
17
17
|
g.run_generator [:user, %w{--strategy roles_mask}].args
|
18
18
|
|
19
|
-
g.should generate_migration :
|
20
|
-
content.should
|
21
|
-
|
22
|
-
|
23
|
-
tbl_content.should have_add_column :roles_mask, :integer
|
24
|
-
end
|
19
|
+
g.should generate_migration :add_roles_mask_strategy do |content|
|
20
|
+
content.should have_up_method do |up|
|
21
|
+
up.should have_change_table :users do |tbl_content|
|
22
|
+
tbl_content.should have_add_column :roles_mask, :integer
|
25
23
|
end
|
24
|
+
end
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
26
|
+
content.should have_down_method do |down|
|
27
|
+
down.should have_change_table :users do |tbl_content|
|
28
|
+
tbl_content.should have_remove_column :roles_mask
|
31
29
|
end
|
32
30
|
end
|
33
31
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/spec_helper.rb
CHANGED
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class AddManyRolesStrategy < ActiveRecord::Migration
|
2
|
+
class << self
|
3
|
+
|
4
|
+
def up
|
5
|
+
create_roles
|
6
|
+
create_user_roles
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
drop_roles
|
11
|
+
drop_user_roles
|
12
|
+
end
|
13
|
+
|
14
|
+
protected
|
15
|
+
|
16
|
+
def create_user_roles
|
17
|
+
create_table :user_roles do |t|
|
18
|
+
t.integer :user_id
|
19
|
+
t.integer :role_id
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def drop_user_roles
|
25
|
+
drop_table :user_roles
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def create_roles
|
30
|
+
create_table :roles do |t|
|
31
|
+
t.string :name
|
32
|
+
t.timestamps
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def drop_roles
|
37
|
+
drop_table :roles
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class AddOneRoleStrategy < ActiveRecord::Migration
|
2
|
+
class << self
|
3
|
+
|
4
|
+
def up
|
5
|
+
create_roles
|
6
|
+
add_user_role
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
drop_roles
|
11
|
+
remove_user_role
|
12
|
+
end
|
13
|
+
|
14
|
+
protected
|
15
|
+
|
16
|
+
def add_user_role
|
17
|
+
change_table :users do |t|
|
18
|
+
t.integer :role_id
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def remove_user_role
|
23
|
+
change_table :users do |t|
|
24
|
+
t.remove :role_id
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def create_roles
|
30
|
+
create_table :roles do |t|
|
31
|
+
t.string :name
|
32
|
+
t.timestamps
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def drop_roles
|
37
|
+
drop_table :roles
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-09-
|
17
|
+
date: 2010-09-12 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -209,8 +209,9 @@ files:
|
|
209
209
|
- lib/generators/active_record/roles_migration/templates/add_many_roles_strategy.erb
|
210
210
|
- lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb
|
211
211
|
- lib/generators/active_record/roles_migration/templates/add_role_string_strategy.erb
|
212
|
-
- lib/generators/active_record/roles_migration/templates/
|
212
|
+
- lib/generators/active_record/roles_migration/templates/add_roles_mask_strategy.erb
|
213
213
|
- lib/generators/active_record/setup/setup_generator.rb
|
214
|
+
- lib/roles_active_record.rb
|
214
215
|
- lib/roles_active_record/base.rb
|
215
216
|
- lib/roles_active_record/namespaces.rb
|
216
217
|
- lib/roles_active_record/role.rb
|
@@ -220,9 +221,9 @@ files:
|
|
220
221
|
- lib/roles_active_record/strategy/single/admin_flag.rb
|
221
222
|
- lib/roles_active_record/strategy/single/one_role.rb
|
222
223
|
- lib/roles_active_record/strategy/single/role_string.rb
|
223
|
-
- lib/roles_for_active_record.rb
|
224
224
|
- lib/views/_multi_role_selector.erb.html
|
225
225
|
- lib/views/_single_role_selector.erb.html
|
226
|
+
- logging.log
|
226
227
|
- roles_active_record.gemspec
|
227
228
|
- roles_for_ar.gemspec
|
228
229
|
- sandbox/Rakefile
|
@@ -239,6 +240,8 @@ files:
|
|
239
240
|
- spec/db/database.yml
|
240
241
|
- spec/fixtures/many_roles_setup.rb
|
241
242
|
- spec/fixtures/one_role_setup.rb
|
243
|
+
- spec/generator_spec_helper.rb
|
244
|
+
- spec/migration_spec_helper.rb
|
242
245
|
- spec/migrations/admin_flag/004_add_admin_flag_to_users.rb
|
243
246
|
- spec/migrations/many_roles/002_create_roles.rb
|
244
247
|
- spec/migrations/many_roles/003_create_user_roles.rb
|
@@ -248,7 +251,7 @@ files:
|
|
248
251
|
- spec/migrations/roles_mask/005_add_roles_mask_to_users.rb
|
249
252
|
- spec/migrations/users/001_create_users.rb
|
250
253
|
- spec/roles_active_record/admin_flag_spec.rb
|
251
|
-
- spec/roles_active_record/generators/
|
254
|
+
- spec/roles_active_record/generators/roles_generator_spec.rb
|
252
255
|
- spec/roles_active_record/generators/roles_migration/admin_flag_spec.rb
|
253
256
|
- spec/roles_active_record/generators/roles_migration/many_roles_spec.rb
|
254
257
|
- spec/roles_active_record/generators/roles_migration/one_role_spec.rb
|
@@ -260,6 +263,14 @@ files:
|
|
260
263
|
- spec/roles_active_record/role_string_spec.rb
|
261
264
|
- spec/roles_active_record/roles_mask_spec.rb
|
262
265
|
- spec/spec_helper.rb
|
266
|
+
- tmp/rails/app/models/user.rb
|
267
|
+
- tmp/rails/config/routes.rb
|
268
|
+
- tmp/rails/db/migrations/20100912101428_add_admin_flag_strategy.rb
|
269
|
+
- tmp/rails/db/migrations/20100912101429_remove_admin_flag_strategy.rb
|
270
|
+
- tmp/rails/db/migrations/20100912105055_add_many_roles_strategy.rb
|
271
|
+
- tmp/rails/db/migrations/20100912105323_add_one_role_strategy.rb
|
272
|
+
- tmp/rails/db/migrations/20100912110044_add_role_string_strategy.rb
|
273
|
+
- tmp/rails/db/migrations/20100912110249_add_roles_mask_strategy.rb
|
263
274
|
has_rdoc: true
|
264
275
|
homepage: http://github.com/kristianmandrup/roles_for_dm
|
265
276
|
licenses: []
|
@@ -295,6 +306,8 @@ summary: Implementation of Roles generic API for Active Record
|
|
295
306
|
test_files:
|
296
307
|
- spec/fixtures/many_roles_setup.rb
|
297
308
|
- spec/fixtures/one_role_setup.rb
|
309
|
+
- spec/generator_spec_helper.rb
|
310
|
+
- spec/migration_spec_helper.rb
|
298
311
|
- spec/migrations/admin_flag/004_add_admin_flag_to_users.rb
|
299
312
|
- spec/migrations/many_roles/002_create_roles.rb
|
300
313
|
- spec/migrations/many_roles/003_create_user_roles.rb
|
@@ -304,7 +317,7 @@ test_files:
|
|
304
317
|
- spec/migrations/roles_mask/005_add_roles_mask_to_users.rb
|
305
318
|
- spec/migrations/users/001_create_users.rb
|
306
319
|
- spec/roles_active_record/admin_flag_spec.rb
|
307
|
-
- spec/roles_active_record/generators/
|
320
|
+
- spec/roles_active_record/generators/roles_generator_spec.rb
|
308
321
|
- spec/roles_active_record/generators/roles_migration/admin_flag_spec.rb
|
309
322
|
- spec/roles_active_record/generators/roles_migration/many_roles_spec.rb
|
310
323
|
- spec/roles_active_record/generators/roles_migration/one_role_spec.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'rspec/autorun'
|
3
|
-
require 'active_record'
|
4
|
-
require 'yaml'
|
5
|
-
require 'logger'
|
6
|
-
require 'database_cleaner'
|
7
|
-
require 'roles_for_ar'
|
8
|
-
require 'generator_spec'
|
9
|
-
|
10
|
-
RSpec::Generator.configure do |config|
|
11
|
-
config.debug = true
|
12
|
-
config.remove_temp_dir = true
|
13
|
-
config.default_rails_root(__FILE__)
|
14
|
-
config.lib = File.dirname(__FILE__) + '/../../../lib'
|
15
|
-
config.logger = :stdout
|
16
|
-
end
|
17
|
-
|