Sha256: be69ac0181902367a50d0fef5cc7adffb3526857e900a2dfcac72ed2c16c535d

Contents?: true

Size: 969 Bytes

Versions: 3

Compression:

Stored size: 969 Bytes

Contents

require 'subj_models/services/values_checker'
require 'subj_models/services/types_support'
require 'subj_models/concerns/shared_scopes'
require 'subj_models/concerns/comprising_external_id'

module SubjModels

  module NomenclatureFile

    include SubjModels::TypesSupport::FileTypes
    include SubjModels::ValuesChecker

    def self.included(including_class)

      including_class.class_eval do

        include SubjModels::SharedScopes
        include SubjModels::ComprisingExternalId

        enum file_type: FILE_TYPES

        belongs_to :nomenclature
        belongs_to :document_file

        validates :file_type, inclusion: { in: file_types.keys }
        validates :name, :document_file, presence: true

        scope :nomenclature_id, -> (nomenclature_id) { parent_id_scope("nomenclature", nomenclature_id) }

      end

    end

    def to_s
      name.to_s
    end

    def file_type=(value)
      super(check_string_for_int(value))
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
subj_models-0.4.1 lib/subj_models/nomenclature_file.rb
subj_models-0.4 lib/subj_models/nomenclature_file.rb
subj_models-0.3.8 lib/subj_models/nomenclature_file.rb