subj_models 0.2.4 → 0.2.5
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2bebc316aa2d96252a15f50ade1baef20e519be
|
4
|
+
data.tar.gz: 5d2c6b0bc3926553a5043fa7861049856703d389
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5161bdeafa156f2b10050091bc1cd7cd0d8e6f8af5fd082cda8d1d73de56ccee641394cd03cc3d8a22e2094c50c89290843a554952e363982986250486a9049
|
7
|
+
data.tar.gz: af60dee9c8d1142bde0393a34f0f840d68916d9ca5311d8d35084181c7e6aa5dade700c27a7c6548acbd413f1b2e6909a889ea3f31b8bed320e43b2106de9500
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module SubjModels
|
2
|
+
|
3
|
+
module ComprisingExternalId
|
4
|
+
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
validates :external_id, uniqueness: true, allow_nil: true, allow_blank: true
|
9
|
+
scope :external_id, -> id { where(external_id: id) }
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
def find_by_external_or_internal_id(id)
|
14
|
+
if is_integer?(id)
|
15
|
+
self.find(id)
|
16
|
+
else
|
17
|
+
self.find_by!(external_id: id)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def is_integer?(value)
|
22
|
+
return true if value.is_a?(Integer)
|
23
|
+
value.to_i.to_s == value
|
24
|
+
end
|
25
|
+
|
26
|
+
def parent_id_scope(parent, id)
|
27
|
+
if id.is_a?(Array) || is_integer?(id)
|
28
|
+
joins(parent.to_sym).where("#{parent.pluralize}.id = ?", id)
|
29
|
+
else
|
30
|
+
joins(parent.to_sym).where("#{parent.pluralize}.external_id = ?", id)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -1,11 +1,14 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
1
3
|
module SubjModels
|
4
|
+
|
2
5
|
module MeasureUnit
|
3
6
|
|
4
7
|
def self.included(including_class)
|
5
8
|
|
6
9
|
including_class.class_eval do
|
7
10
|
|
8
|
-
include ComprisingExternalId
|
11
|
+
include SubjModels::ComprisingExternalId
|
9
12
|
|
10
13
|
#belongs_to :attribute_value
|
11
14
|
|
data/lib/subj_models/user.rb
CHANGED
@@ -2,6 +2,7 @@ require 'digest/sha1'
|
|
2
2
|
require 'subj_models/services/values_checker'
|
3
3
|
require 'subj_models/services/types_support'
|
4
4
|
require 'subj_models/concerns/shared_scopes'
|
5
|
+
require 'subj_models/concerns/comprising_external_id'
|
5
6
|
|
6
7
|
module SubjModels
|
7
8
|
|
@@ -21,8 +22,8 @@ module SubjModels
|
|
21
22
|
including_class.extend ClassMethods
|
22
23
|
including_class.class_eval do
|
23
24
|
|
24
|
-
include ComprisingExternalId
|
25
25
|
include RademadeAdmin::UserModule
|
26
|
+
include SubjModels::ComprisingExternalId
|
26
27
|
include SubjModels::SharedScopes
|
27
28
|
|
28
29
|
enum user_type: USER_TYPES
|
data/lib/subj_models/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subj_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denys Dvoriashyn
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- bin/console
|
58
58
|
- bin/setup
|
59
59
|
- lib/subj_models.rb
|
60
|
+
- lib/subj_models/concerns/comprising_external_id.rb
|
60
61
|
- lib/subj_models/concerns/shared_scopes.rb
|
61
62
|
- lib/subj_models/document_file.rb
|
62
63
|
- lib/subj_models/measure_unit.rb
|