baza_models 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +35 -0
- data/Gemfile +9 -3
- data/Gemfile.lock +90 -51
- data/README.md +98 -3
- data/Rakefile +20 -17
- data/VERSION +1 -1
- data/baza_models.gemspec +149 -0
- data/config/best_project_practice_rubocop.yml +2 -0
- data/config/best_project_practice_rubocop_todo.yml +35 -0
- data/lib/baza_models.rb +15 -0
- data/lib/baza_models/autoloader.rb +135 -0
- data/lib/baza_models/baza_orm_adapter.rb +39 -0
- data/lib/baza_models/can_can_adapter.rb +9 -0
- data/lib/baza_models/class_translation.rb +44 -0
- data/lib/baza_models/errors.rb +24 -2
- data/lib/baza_models/model.rb +236 -115
- data/lib/baza_models/model/belongs_to_relations.rb +49 -0
- data/lib/baza_models/model/custom_validations.rb +24 -0
- data/lib/baza_models/model/delegation.rb +21 -0
- data/lib/baza_models/model/has_many_relations.rb +85 -0
- data/lib/baza_models/model/has_one_relations.rb +93 -0
- data/lib/baza_models/model/manipulation.rb +123 -0
- data/lib/baza_models/model/queries.rb +45 -0
- data/lib/baza_models/model/scopes.rb +19 -0
- data/lib/baza_models/model/translation_functionality.rb +30 -0
- data/lib/baza_models/model/validations.rb +95 -0
- data/lib/baza_models/query.rb +447 -0
- data/lib/baza_models/query/inspector.rb +74 -0
- data/lib/baza_models/query/not.rb +34 -0
- data/lib/baza_models/ransacker.rb +30 -0
- data/lib/baza_models/test_database_cleaner.rb +23 -0
- data/lib/baza_models/validators/base_validator.rb +14 -0
- data/lib/baza_models/validators/confirmation_validator.rb +12 -0
- data/lib/baza_models/validators/format_validator.rb +11 -0
- data/lib/baza_models/validators/length_validator.rb +16 -0
- data/lib/baza_models/validators/uniqueness_validator.rb +21 -0
- data/shippable.yml +3 -1
- data/spec/baza_models/autoloader_spec.rb +57 -0
- data/spec/baza_models/baza_orm_adapter_spec.rb +52 -0
- data/spec/baza_models/class_translation_spec.rb +25 -0
- data/spec/baza_models/factory_girl_spec.rb +13 -0
- data/spec/baza_models/model/belongs_to_relations_spec.rb +26 -0
- data/spec/baza_models/model/custom_validations_spec.rb +18 -0
- data/spec/baza_models/model/delgation_spec.rb +16 -0
- data/spec/baza_models/model/has_many_relations_spec.rb +68 -0
- data/spec/baza_models/model/has_one_relations_spec.rb +35 -0
- data/spec/baza_models/model/manipulation_spec.rb +25 -0
- data/spec/baza_models/model/queries_spec.rb +59 -0
- data/spec/baza_models/model/scopes_spec.rb +23 -0
- data/spec/baza_models/model/translate_functionality_spec.rb +13 -0
- data/spec/baza_models/model/validations_spec.rb +52 -0
- data/spec/baza_models/model_spec.rb +75 -98
- data/spec/baza_models/query/not_spec.rb +16 -0
- data/spec/baza_models/query_spec.rb +155 -0
- data/spec/baza_models/ransacker_spec.rb +15 -0
- data/spec/baza_models/validators/confirmation_validator_spec.rb +28 -0
- data/spec/baza_models/validators/format_validator_spec.rb +17 -0
- data/spec/baza_models/validators/length_validator_spec.rb +19 -0
- data/spec/baza_models/validators/uniqueness_validator_spec.rb +24 -0
- data/spec/factories/organization.rb +5 -0
- data/spec/factories/user.rb +7 -0
- data/spec/spec_helper.rb +17 -5
- data/spec/support/database_helper.rb +87 -0
- data/spec/test_classes/organization.rb +3 -0
- data/spec/test_classes/person.rb +3 -0
- data/spec/test_classes/role.rb +12 -0
- data/spec/test_classes/user.rb +40 -0
- data/spec/test_classes/user_passport.rb +3 -0
- metadata +146 -7
- data/spec/test_classes/user_test.rb +0 -17
@@ -0,0 +1,40 @@
|
|
1
|
+
class User < BazaModels::Model
|
2
|
+
attr_accessor :custom_valid, :before_save_block_called, :validate_confirmation, :validate_uniqueness
|
3
|
+
|
4
|
+
belongs_to :organization
|
5
|
+
has_one :person, dependent: :restrict_with_error
|
6
|
+
has_one :user_passport, dependent: :destroy
|
7
|
+
|
8
|
+
has_many :roles, dependent: :destroy
|
9
|
+
has_many :admin_roles, -> { where(role: "administrator") }, class_name: "Role", dependent: :restrict_with_error
|
10
|
+
|
11
|
+
validates :email, presence: true, length: {minimum: 2, maximum: 100}, format: {with: /\A(.+)@(.+)\.(.+)\Z/}
|
12
|
+
validate :validate_custom_errors
|
13
|
+
validates_uniqueness_of :email, scope: :organization_id, if: :validate_uniqueness
|
14
|
+
validates_confirmation_of :email, if: :validate_confirmation
|
15
|
+
|
16
|
+
scope :admin_roles_scope, -> { joins(:roles).where(roles: {role: "administrator"}) }
|
17
|
+
|
18
|
+
before_save do
|
19
|
+
self.before_save_block_called ||= 0
|
20
|
+
self.before_save_block_called += 1
|
21
|
+
end
|
22
|
+
|
23
|
+
# Used to test callbacks.
|
24
|
+
BazaModels::Model::CALLBACK_TYPES.each do |callback_type|
|
25
|
+
attr_reader "#{callback_type}_called"
|
26
|
+
__send__(callback_type, :add_callback, callback_type)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def add_callback(callback_type)
|
32
|
+
variable_name = "@#{callback_type}_called"
|
33
|
+
instance_variable_set(variable_name, 0) unless instance_variable_get(variable_name)
|
34
|
+
instance_variable_set(variable_name, instance_variable_get(variable_name) + 1)
|
35
|
+
end
|
36
|
+
|
37
|
+
def validate_custom_errors
|
38
|
+
errors.add(:base, "Custom validate failed") if custom_valid == false
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baza_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaspernj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: array_enumerator
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: baza
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.
|
33
|
+
version: 0.0.20
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.
|
40
|
+
version: 0.0.20
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: string-cases
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +58,14 @@ dependencies:
|
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 3.3.0
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 3.3.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rdoc
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,20 @@ dependencies:
|
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: 2.0.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: factory_girl
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: sqlite3
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +136,62 @@ dependencies:
|
|
108
136
|
- - ">="
|
109
137
|
- !ruby/object:Gem::Version
|
110
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: jdbc-sqlite3
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: best_practice_project
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: orm_adapter
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
111
195
|
description: ActiveRecord like models for the Baza database framework
|
112
196
|
email: k@spernj.org
|
113
197
|
executables: []
|
@@ -118,22 +202,77 @@ extra_rdoc_files:
|
|
118
202
|
files:
|
119
203
|
- ".document"
|
120
204
|
- ".rspec"
|
205
|
+
- ".rubocop_todo.yml"
|
121
206
|
- Gemfile
|
122
207
|
- Gemfile.lock
|
123
208
|
- LICENSE.txt
|
124
209
|
- README.md
|
125
210
|
- Rakefile
|
126
211
|
- VERSION
|
212
|
+
- baza_models.gemspec
|
213
|
+
- config/best_project_practice_rubocop.yml
|
214
|
+
- config/best_project_practice_rubocop_todo.yml
|
127
215
|
- lib/baza_models.rb
|
216
|
+
- lib/baza_models/autoloader.rb
|
217
|
+
- lib/baza_models/baza_orm_adapter.rb
|
218
|
+
- lib/baza_models/can_can_adapter.rb
|
219
|
+
- lib/baza_models/class_translation.rb
|
128
220
|
- lib/baza_models/errors.rb
|
129
221
|
- lib/baza_models/model.rb
|
222
|
+
- lib/baza_models/model/belongs_to_relations.rb
|
223
|
+
- lib/baza_models/model/custom_validations.rb
|
224
|
+
- lib/baza_models/model/delegation.rb
|
225
|
+
- lib/baza_models/model/has_many_relations.rb
|
226
|
+
- lib/baza_models/model/has_one_relations.rb
|
227
|
+
- lib/baza_models/model/manipulation.rb
|
228
|
+
- lib/baza_models/model/queries.rb
|
229
|
+
- lib/baza_models/model/scopes.rb
|
230
|
+
- lib/baza_models/model/translation_functionality.rb
|
231
|
+
- lib/baza_models/model/validations.rb
|
232
|
+
- lib/baza_models/query.rb
|
233
|
+
- lib/baza_models/query/inspector.rb
|
234
|
+
- lib/baza_models/query/not.rb
|
235
|
+
- lib/baza_models/ransacker.rb
|
236
|
+
- lib/baza_models/test_database_cleaner.rb
|
130
237
|
- lib/baza_models/validators/base_validator.rb
|
238
|
+
- lib/baza_models/validators/confirmation_validator.rb
|
239
|
+
- lib/baza_models/validators/format_validator.rb
|
240
|
+
- lib/baza_models/validators/length_validator.rb
|
131
241
|
- lib/baza_models/validators/presence_validator.rb
|
242
|
+
- lib/baza_models/validators/uniqueness_validator.rb
|
132
243
|
- shippable.yml
|
244
|
+
- spec/baza_models/autoloader_spec.rb
|
245
|
+
- spec/baza_models/baza_orm_adapter_spec.rb
|
246
|
+
- spec/baza_models/class_translation_spec.rb
|
247
|
+
- spec/baza_models/factory_girl_spec.rb
|
248
|
+
- spec/baza_models/model/belongs_to_relations_spec.rb
|
249
|
+
- spec/baza_models/model/custom_validations_spec.rb
|
250
|
+
- spec/baza_models/model/delgation_spec.rb
|
251
|
+
- spec/baza_models/model/has_many_relations_spec.rb
|
252
|
+
- spec/baza_models/model/has_one_relations_spec.rb
|
253
|
+
- spec/baza_models/model/manipulation_spec.rb
|
254
|
+
- spec/baza_models/model/queries_spec.rb
|
255
|
+
- spec/baza_models/model/scopes_spec.rb
|
256
|
+
- spec/baza_models/model/translate_functionality_spec.rb
|
257
|
+
- spec/baza_models/model/validations_spec.rb
|
133
258
|
- spec/baza_models/model_spec.rb
|
259
|
+
- spec/baza_models/query/not_spec.rb
|
260
|
+
- spec/baza_models/query_spec.rb
|
261
|
+
- spec/baza_models/ransacker_spec.rb
|
262
|
+
- spec/baza_models/validators/confirmation_validator_spec.rb
|
263
|
+
- spec/baza_models/validators/format_validator_spec.rb
|
264
|
+
- spec/baza_models/validators/length_validator_spec.rb
|
265
|
+
- spec/baza_models/validators/uniqueness_validator_spec.rb
|
134
266
|
- spec/baza_models_spec.rb
|
267
|
+
- spec/factories/organization.rb
|
268
|
+
- spec/factories/user.rb
|
135
269
|
- spec/spec_helper.rb
|
136
|
-
- spec/
|
270
|
+
- spec/support/database_helper.rb
|
271
|
+
- spec/test_classes/organization.rb
|
272
|
+
- spec/test_classes/person.rb
|
273
|
+
- spec/test_classes/role.rb
|
274
|
+
- spec/test_classes/user.rb
|
275
|
+
- spec/test_classes/user_passport.rb
|
137
276
|
homepage: http://github.com/kaspernj/baza_models
|
138
277
|
licenses:
|
139
278
|
- MIT
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class UserTest < BazaModels::Model
|
2
|
-
validates :email, presence: true
|
3
|
-
|
4
|
-
# Used to test callbacks.
|
5
|
-
BazaModels::Model::CALLBACK_TYPES.each do |callback_type|
|
6
|
-
attr_reader "#{callback_type}_called"
|
7
|
-
__send__(callback_type, :set_callback, callback_type)
|
8
|
-
end
|
9
|
-
|
10
|
-
private
|
11
|
-
|
12
|
-
def set_callback(callback_type)
|
13
|
-
variable_name = "@#{callback_type}_called"
|
14
|
-
instance_variable_set(variable_name, 0) unless instance_variable_get(variable_name)
|
15
|
-
instance_variable_set(variable_name, instance_variable_get(variable_name) + 1)
|
16
|
-
end
|
17
|
-
end
|