rolify 4.1.0 → 5.3.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.
- checksums.yaml +5 -5
- data/.hakiri.yml +1 -0
- data/.travis.yml +40 -31
- data/Appraisals +54 -0
- data/CHANGELOG.rdoc +44 -8
- data/CONTRIBUTORS +11 -0
- data/Gemfile +5 -13
- data/LICENSE +1 -1
- data/README.md +74 -26
- data/Rakefile +6 -1
- data/gemfiles/activerecord_4.gemfile +21 -0
- data/gemfiles/activerecord_5.gemfile +28 -0
- data/gemfiles/activerecord_6.gemfile +28 -0
- data/gemfiles/mongoid_5.gemfile +21 -0
- data/gemfiles/mongoid_6.gemfile +20 -0
- data/gemfiles/mongoid_7.gemfile +21 -0
- data/lib/generators/active_record/rolify_generator.rb +45 -11
- data/lib/generators/active_record/templates/migration.rb +2 -3
- data/lib/generators/active_record/templates/model.rb +15 -0
- data/lib/generators/rolify/templates/initializer.rb +4 -1
- data/lib/rolify.rb +3 -4
- data/lib/rolify/adapters/active_record/resource_adapter.rb +14 -8
- data/lib/rolify/adapters/active_record/role_adapter.rb +26 -9
- data/lib/rolify/adapters/mongoid/role_adapter.rb +24 -1
- data/lib/rolify/configure.rb +4 -2
- data/lib/rolify/dynamic.rb +2 -17
- data/lib/rolify/matchers.rb +2 -2
- data/lib/rolify/role.rb +11 -2
- data/lib/rolify/version.rb +1 -1
- data/rolify.gemspec +14 -7
- data/spec/common_helper.rb +16 -0
- data/spec/generators/rolify/rolify_activerecord_generator_spec.rb +112 -6
- data/spec/generators_helper.rb +9 -2
- data/spec/rolify/config_spec.rb +2 -0
- data/spec/rolify/custom_spec.rb +1 -1
- data/spec/rolify/resource_spec.rb +6 -0
- data/spec/rolify/shared_examples/shared_examples_for_has_role.rb +65 -0
- data/spec/rolify/utils_spec.rb +19 -0
- data/spec/spec_helper.rb +19 -6
- data/spec/support/adapters/active_record.rb +4 -3
- data/spec/support/adapters/mongoid.rb +19 -2
- data/spec/support/adapters/{mongoid.yml → mongoid_5.yml} +2 -2
- data/spec/support/adapters/mongoid_6.yml +6 -0
- data/spec/support/adapters/mongoid_7.yml +6 -0
- data/spec/support/adapters/utils/active_record.rb +12 -0
- data/spec/support/adapters/utils/mongoid.rb +13 -0
- metadata +41 -22
- data/gemfiles/Gemfile.rails-3.2 +0 -27
- data/gemfiles/Gemfile.rails-4.0 +0 -33
- data/gemfiles/Gemfile.rails-4.1 +0 -37
@@ -0,0 +1,19 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Rolify::Utils do
|
4
|
+
class Harness
|
5
|
+
extend Rolify::Utils
|
6
|
+
define_method(:new_method) { |*_args| true }
|
7
|
+
deprecate :old_method, :new_method
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:harness) { Harness.new }
|
11
|
+
|
12
|
+
context '#deprecate' do
|
13
|
+
it 'calls new method with same arguments' do
|
14
|
+
expect(harness).to receive(:warn).once
|
15
|
+
expect(harness).to receive(:new_method).once.with(1, 2, 3)
|
16
|
+
harness.old_method(1, 2, 3)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require "
|
2
|
-
|
1
|
+
require "simplecov"
|
2
|
+
SimpleCov.start
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require "bundler/setup"
|
@@ -11,6 +11,8 @@ begin
|
|
11
11
|
require 'its'
|
12
12
|
rescue LoadError
|
13
13
|
end
|
14
|
+
require 'database_cleaner'
|
15
|
+
|
14
16
|
require 'coveralls'
|
15
17
|
Coveralls.wear_merged!
|
16
18
|
|
@@ -19,10 +21,7 @@ ENV['ADAPTER'] ||= 'active_record'
|
|
19
21
|
load File.dirname(__FILE__) + "/support/adapters/#{ENV['ADAPTER']}.rb"
|
20
22
|
load File.dirname(__FILE__) + '/support/data.rb'
|
21
23
|
|
22
|
-
|
23
|
-
require 'pry'
|
24
|
-
rescue LoadError
|
25
|
-
end
|
24
|
+
|
26
25
|
|
27
26
|
def reset_defaults
|
28
27
|
Rolify.use_defaults
|
@@ -47,3 +46,17 @@ def silence_warnings(&block)
|
|
47
46
|
$VERBOSE = warn_level
|
48
47
|
result
|
49
48
|
end
|
49
|
+
|
50
|
+
RSpec.configure do |config|
|
51
|
+
config.expect_with(:rspec) { |c| c.syntax = [:should, :expect] }
|
52
|
+
|
53
|
+
config.before(:suite) do
|
54
|
+
DatabaseCleaner.strategy = :truncation
|
55
|
+
DatabaseCleaner.start
|
56
|
+
end
|
57
|
+
|
58
|
+
config.after(:suite) do |example|
|
59
|
+
DatabaseCleaner.clean
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
-
|
1
|
+
load File.dirname(__FILE__) + '/utils/active_record.rb'
|
2
|
+
|
3
|
+
extend_rspec_with_activerecord_specific_matchers
|
4
|
+
establish_connection
|
2
5
|
|
3
|
-
RSpec::Matchers::BuiltIn::OperatorMatcher.register(ActiveRecord::Relation, '=~', RSpec::Matchers::BuiltIn::MatchArray)
|
4
|
-
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
|
5
6
|
ActiveRecord::Base.extend Rolify
|
6
7
|
|
7
8
|
load File.dirname(__FILE__) + '/../schema.rb'
|
@@ -1,6 +1,11 @@
|
|
1
|
-
|
1
|
+
load File.dirname(__FILE__) + '/utils/mongoid.rb'
|
2
2
|
|
3
|
-
|
3
|
+
load_mongoid_config
|
4
|
+
|
5
|
+
begin
|
6
|
+
Mongo::Logger.logger.level = ::Logger::FATAL
|
7
|
+
rescue NameError
|
8
|
+
end
|
4
9
|
|
5
10
|
::Mongoid::Document.module_eval do
|
6
11
|
def self.included(base)
|
@@ -13,6 +18,8 @@ Rolify.use_mongoid
|
|
13
18
|
# Standard user and role classes
|
14
19
|
class User
|
15
20
|
include Mongoid::Document
|
21
|
+
default_scope -> { order_by id: 'asc' }
|
22
|
+
|
16
23
|
rolify
|
17
24
|
|
18
25
|
field :login, :type => String
|
@@ -21,6 +28,7 @@ end
|
|
21
28
|
# Standard user and role classes
|
22
29
|
class StrictUser
|
23
30
|
include Mongoid::Document
|
31
|
+
default_scope -> { order_by id: 'asc' }
|
24
32
|
rolify strict: true
|
25
33
|
|
26
34
|
field :login, :type => String
|
@@ -48,6 +56,7 @@ end
|
|
48
56
|
# Resourcifed and rolifed at the same time
|
49
57
|
class HumanResource
|
50
58
|
include Mongoid::Document
|
59
|
+
default_scope -> { order_by id: 'asc' }
|
51
60
|
resourcify :resources
|
52
61
|
rolify
|
53
62
|
|
@@ -74,6 +83,7 @@ end
|
|
74
83
|
# Custom role and class names
|
75
84
|
class Customer
|
76
85
|
include Mongoid::Document
|
86
|
+
default_scope -> { order_by id: 'asc' }
|
77
87
|
rolify :role_cname => "Privilege"
|
78
88
|
|
79
89
|
field :login, :type => String
|
@@ -81,6 +91,7 @@ end
|
|
81
91
|
|
82
92
|
class Privilege
|
83
93
|
include Mongoid::Document
|
94
|
+
default_scope -> { order_by id: 'asc' }
|
84
95
|
has_and_belongs_to_many :customers
|
85
96
|
belongs_to :resource, :polymorphic => true
|
86
97
|
scopify
|
@@ -100,6 +111,7 @@ end
|
|
100
111
|
module Admin
|
101
112
|
class Moderator
|
102
113
|
include Mongoid::Document
|
114
|
+
default_scope -> { order_by id: 'asc' }
|
103
115
|
rolify :role_cname => "Admin::Right"
|
104
116
|
|
105
117
|
field :login, :type => String
|
@@ -107,6 +119,7 @@ module Admin
|
|
107
119
|
|
108
120
|
class Right
|
109
121
|
include Mongoid::Document
|
122
|
+
default_scope -> { order_by id: 'asc' }
|
110
123
|
has_and_belongs_to_many :moderators, :class_name => 'Admin::Moderator'
|
111
124
|
belongs_to :resource, :polymorphic => true
|
112
125
|
scopify
|
@@ -126,6 +139,7 @@ end
|
|
126
139
|
# Resources classes
|
127
140
|
class Forum
|
128
141
|
include Mongoid::Document
|
142
|
+
default_scope -> { order_by id: 'asc' }
|
129
143
|
#resourcify done during specs setup to be able to use custom user classes
|
130
144
|
|
131
145
|
field :name, :type => String
|
@@ -133,6 +147,7 @@ end
|
|
133
147
|
|
134
148
|
class Group
|
135
149
|
include Mongoid::Document
|
150
|
+
default_scope -> { order_by id: 'asc' }
|
136
151
|
#resourcify done during specs setup to be able to use custom user classes
|
137
152
|
|
138
153
|
field :name, :type => String
|
@@ -145,6 +160,7 @@ end
|
|
145
160
|
|
146
161
|
class Team
|
147
162
|
include Mongoid::Document
|
163
|
+
default_scope -> { order_by id: 'asc' }
|
148
164
|
#resourcify done during specs setup to be able to use custom user classes
|
149
165
|
|
150
166
|
field :team_code, :type => Integer
|
@@ -153,6 +169,7 @@ end
|
|
153
169
|
|
154
170
|
class Organization
|
155
171
|
include Mongoid::Document
|
172
|
+
default_scope -> { order_by id: 'asc' }
|
156
173
|
end
|
157
174
|
|
158
175
|
class Company < Organization
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
|
3
|
+
def establish_connection
|
4
|
+
ActiveRecord::Base.establish_connection(
|
5
|
+
:adapter => "sqlite3",
|
6
|
+
:database => ":memory:"
|
7
|
+
)
|
8
|
+
end
|
9
|
+
|
10
|
+
def extend_rspec_with_activerecord_specific_matchers
|
11
|
+
RSpec::Matchers::BuiltIn::OperatorMatcher.register(ActiveRecord::Relation, '=~', RSpec::Matchers::BuiltIn::ContainExactly)
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
def mongoid_major_version
|
4
|
+
Mongoid::VERSION.split('.').first.to_i
|
5
|
+
end
|
6
|
+
|
7
|
+
def mongoid_config
|
8
|
+
"spec/support/adapters/mongoid_#{mongoid_major_version}.yml"
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_mongoid_config
|
12
|
+
Mongoid.load!(mongoid_config, :test)
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rolify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florent Monbillard
|
8
|
+
- Wellington Cordeiro
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-06-01 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: ammeter
|
@@ -16,67 +17,70 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.1
|
20
|
+
version: '1.1'
|
20
21
|
type: :development
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.1
|
27
|
+
version: '1.1'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: bundler
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- - "
|
32
|
+
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
+
version: '2.0'
|
34
35
|
type: :development
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
|
-
- - "
|
39
|
+
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
+
version: '2.0'
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: rake
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
+
version: '12.3'
|
48
49
|
type: :development
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
53
|
- - "~>"
|
53
54
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
+
version: '12.3'
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
57
|
name: rspec-rails
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- -
|
60
|
+
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
+
version: '3.8'
|
62
63
|
type: :development
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- -
|
67
|
+
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
+
version: '3.8'
|
69
70
|
description: Very simple Roles library without any authorization enforcement supporting
|
70
71
|
scope on resource objects (instance or class). Supports ActiveRecord and Mongoid
|
71
72
|
ORMs.
|
72
73
|
email:
|
73
74
|
- f.monbillard@gmail.com
|
75
|
+
- wellington@wellingtoncordeiro.com
|
74
76
|
executables: []
|
75
77
|
extensions: []
|
76
78
|
extra_rdoc_files: []
|
77
79
|
files:
|
78
80
|
- ".gitignore"
|
81
|
+
- ".hakiri.yml"
|
79
82
|
- ".travis.yml"
|
83
|
+
- Appraisals
|
80
84
|
- CHANGELOG.rdoc
|
81
85
|
- CONTRIBUTORS
|
82
86
|
- Gemfile
|
@@ -84,12 +88,16 @@ files:
|
|
84
88
|
- README.md
|
85
89
|
- Rakefile
|
86
90
|
- UPGRADE.rdoc
|
87
|
-
- gemfiles/
|
88
|
-
- gemfiles/
|
89
|
-
- gemfiles/
|
91
|
+
- gemfiles/activerecord_4.gemfile
|
92
|
+
- gemfiles/activerecord_5.gemfile
|
93
|
+
- gemfiles/activerecord_6.gemfile
|
94
|
+
- gemfiles/mongoid_5.gemfile
|
95
|
+
- gemfiles/mongoid_6.gemfile
|
96
|
+
- gemfiles/mongoid_7.gemfile
|
90
97
|
- lib/generators/active_record/rolify_generator.rb
|
91
98
|
- lib/generators/active_record/templates/README
|
92
99
|
- lib/generators/active_record/templates/migration.rb
|
100
|
+
- lib/generators/active_record/templates/model.rb
|
93
101
|
- lib/generators/mongoid/rolify_generator.rb
|
94
102
|
- lib/generators/mongoid/templates/README-mongoid
|
95
103
|
- lib/generators/rolify/rolify_generator.rb
|
@@ -117,6 +125,7 @@ files:
|
|
117
125
|
- lib/rolify/version.rb
|
118
126
|
- rolify.gemspec
|
119
127
|
- spec/README.rdoc
|
128
|
+
- spec/common_helper.rb
|
120
129
|
- spec/generators/rolify/rolify_activerecord_generator_spec.rb
|
121
130
|
- spec/generators/rolify/rolify_mongoid_generator_spec.rb
|
122
131
|
- spec/generators_helper.rb
|
@@ -142,10 +151,15 @@ files:
|
|
142
151
|
- spec/rolify/shared_examples/shared_examples_for_remove_role.rb
|
143
152
|
- spec/rolify/shared_examples/shared_examples_for_roles.rb
|
144
153
|
- spec/rolify/shared_examples/shared_examples_for_scopes.rb
|
154
|
+
- spec/rolify/utils_spec.rb
|
145
155
|
- spec/spec_helper.rb
|
146
156
|
- spec/support/adapters/active_record.rb
|
147
157
|
- spec/support/adapters/mongoid.rb
|
148
|
-
- spec/support/adapters/
|
158
|
+
- spec/support/adapters/mongoid_5.yml
|
159
|
+
- spec/support/adapters/mongoid_6.yml
|
160
|
+
- spec/support/adapters/mongoid_7.yml
|
161
|
+
- spec/support/adapters/utils/active_record.rb
|
162
|
+
- spec/support/adapters/utils/mongoid.rb
|
149
163
|
- spec/support/data.rb
|
150
164
|
- spec/support/schema.rb
|
151
165
|
- spec/support/stream_helpers.rb
|
@@ -161,20 +175,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
175
|
requirements:
|
162
176
|
- - ">="
|
163
177
|
- !ruby/object:Gem::Version
|
164
|
-
version: '
|
178
|
+
version: '2.3'
|
165
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
180
|
requirements:
|
167
181
|
- - ">="
|
168
182
|
- !ruby/object:Gem::Version
|
169
183
|
version: '0'
|
170
184
|
requirements: []
|
171
|
-
|
172
|
-
rubygems_version: 2.4.5
|
185
|
+
rubygems_version: 3.1.2
|
173
186
|
signing_key:
|
174
187
|
specification_version: 4
|
175
188
|
summary: Roles library with resource scoping
|
176
189
|
test_files:
|
177
190
|
- spec/README.rdoc
|
191
|
+
- spec/common_helper.rb
|
178
192
|
- spec/generators/rolify/rolify_activerecord_generator_spec.rb
|
179
193
|
- spec/generators/rolify/rolify_mongoid_generator_spec.rb
|
180
194
|
- spec/generators_helper.rb
|
@@ -200,10 +214,15 @@ test_files:
|
|
200
214
|
- spec/rolify/shared_examples/shared_examples_for_remove_role.rb
|
201
215
|
- spec/rolify/shared_examples/shared_examples_for_roles.rb
|
202
216
|
- spec/rolify/shared_examples/shared_examples_for_scopes.rb
|
217
|
+
- spec/rolify/utils_spec.rb
|
203
218
|
- spec/spec_helper.rb
|
204
219
|
- spec/support/adapters/active_record.rb
|
205
220
|
- spec/support/adapters/mongoid.rb
|
206
|
-
- spec/support/adapters/
|
221
|
+
- spec/support/adapters/mongoid_5.yml
|
222
|
+
- spec/support/adapters/mongoid_6.yml
|
223
|
+
- spec/support/adapters/mongoid_7.yml
|
224
|
+
- spec/support/adapters/utils/active_record.rb
|
225
|
+
- spec/support/adapters/utils/mongoid.rb
|
207
226
|
- spec/support/data.rb
|
208
227
|
- spec/support/schema.rb
|
209
228
|
- spec/support/stream_helpers.rb
|
data/gemfiles/Gemfile.rails-3.2
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
platforms :rbx do
|
4
|
-
gem 'psych'
|
5
|
-
gem 'rubinius-coverage', '~> 2.0'
|
6
|
-
end
|
7
|
-
|
8
|
-
group :test do
|
9
|
-
gem 'railties', '~> 3.2', '< 4.0'
|
10
|
-
case ENV['ADAPTER']
|
11
|
-
when nil, 'active_record'
|
12
|
-
gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0.rc', :platform => 'jruby'
|
13
|
-
#Fix sqlite3 version for rbx until rubinus is updated
|
14
|
-
#https://github.com/travis-ci/travis-ci/issues/2006
|
15
|
-
gem 'sqlite3', '1.3.8', :platform => 'ruby'
|
16
|
-
gem 'activerecord', '~> 3.2.0', :require => 'active_record'
|
17
|
-
when 'mongoid'
|
18
|
-
gem 'mongoid', '>= 3.1'
|
19
|
-
gem 'bson_ext', :platform => 'ruby'
|
20
|
-
else
|
21
|
-
raise "Unknown model adapter: #{ENV['ADAPTER']}"
|
22
|
-
end
|
23
|
-
|
24
|
-
gem 'coveralls', :require => false
|
25
|
-
end
|
26
|
-
|
27
|
-
gemspec :path => '../'
|
data/gemfiles/Gemfile.rails-4.0
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
platforms :rbx do
|
4
|
-
gem 'psych'
|
5
|
-
gem 'rubinius-coverage', '~> 2.0'
|
6
|
-
end
|
7
|
-
|
8
|
-
group :test do
|
9
|
-
gem 'railties', '~> 4.0.1', '< 4.1'
|
10
|
-
gem 'ammeter'
|
11
|
-
gem 'rake'
|
12
|
-
gem 'rspec'
|
13
|
-
gem 'its'
|
14
|
-
gem 'rspec-rails'
|
15
|
-
gem 'fuubar'
|
16
|
-
gem 'bundler'
|
17
|
-
|
18
|
-
gem 'coveralls', :require => false
|
19
|
-
|
20
|
-
case ENV['ADAPTER']
|
21
|
-
when nil, 'active_record'
|
22
|
-
gem 'activerecord', '~> 4.0.1', :require => 'active_record'
|
23
|
-
gem 'activerecord-jdbcsqlite3-adapter', '~> 1.3.5', :platform => 'jruby'
|
24
|
-
#Fix sqlite3 version for rbx until rubinus is updated
|
25
|
-
#https://github.com/travis-ci/travis-ci/issues/2006
|
26
|
-
gem 'sqlite3', '1.3.8', :platform => 'ruby'
|
27
|
-
when 'mongoid'
|
28
|
-
gem 'mongoid', github: 'mongoid/mongoid'
|
29
|
-
gem 'bson_ext', :platform => 'ruby'
|
30
|
-
else
|
31
|
-
raise "Unknown model adapter: #{ENV['ADAPTER']}"
|
32
|
-
end
|
33
|
-
end
|