subj_models 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53eaf6c138627290b0cd8bbf912c1fa781efa63e
4
- data.tar.gz: 89ac7b07fff94d0ecbda5cdf2fff6df2f9aeb6db
3
+ metadata.gz: e2bebc316aa2d96252a15f50ade1baef20e519be
4
+ data.tar.gz: 5d2c6b0bc3926553a5043fa7861049856703d389
5
5
  SHA512:
6
- metadata.gz: 40d142d1578accc7277bd56e6da5f8aa3e7a49a84700c610537e788a726ca248e8a06ceeb1ee9e774efd03f862f6d6205b98f022a35566188a73780bfec0d3b2
7
- data.tar.gz: f75a602320e4400280fd995b66cd640defa3b40750f6ae0e78927a837f8d1c14ad32fd93db9e47e9bbc7abb3a7bcde8d1ca2218a8f37aab1d6c19ea4a2849f0a
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
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  module SubjModels
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
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
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