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: 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