Module: Identifiers
Constant Summary
- MAX_LENGTH =
 50
Class Method Summary (collapse)
Instance Method Summary (collapse)
- 
  
    
      - (Object) after_initialize 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) before_validation 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) id_0=(v) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) id_1=(v) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) id_2=(v) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) id_3=(v) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) validate 
    
    
  
  
  
  
  
  
  
  
  
    
 
Class Method Details
+ (Object) format(identifier)
      17 18 19  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 17 def self.format(identifier) identifier.compact.join("--") end  | 
  
+ (Object) included(base)
      11 12 13 14 15  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 11 def self.included(base) base.repo_unique_constraint(:identifier, :message => "That ID is already in use", :json_property => :id_0) end  | 
  
+ (Object) parse(identifier)
      22 23 24  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 22 def self.parse(identifier) ASUtils.json_parse(identifier || "[]") end  | 
  
Instance Method Details
- (Object) after_initialize
      27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 27 def after_initialize # Split the identifier into its components and add the individual pieces as # variables on this instance. if self[:identifier] identifier = Identifiers.parse(self[:identifier]) 4.times do |i| self.instance_eval { @values[:"id_#{i}"] = identifier[i] if identifier[i] and !identifier[i].empty? } instance_variable_set("@id_#{i}", identifier[i]) end end super end  | 
  
- (Object) before_validation
      45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 45 def before_validation # Combine the identifier into a single string and remove the instance variables we added previously. values = (0...4).map {|i| instance_variable_get("@id_#{i}")} if (values.reject{|v| v.nil? || v.empty?}.empty?) # None of the id_* fields were set, so the whole identifier is NULL. self.identifier = nil else self.identifier = JSON(values) end 4.times do |i| self.instance_eval { @values.delete(:"id_#{i}") } end super end  | 
  
- (Object) id_0=(v)
      5  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 5 def id_0=(v) @id_0 = v; self.modified! end  | 
  
- (Object) id_1=(v)
      6  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 6 def id_1=(v) @id_1 = v; self.modified! end  | 
  
- (Object) id_2=(v)
      7  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 7 def id_2=(v) @id_2 = v; self.modified! end  | 
  
- (Object) id_3=(v)
      8  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 8 def id_3=(v) @id_3 = v; self.modified! end  | 
  
- (Object) validate
      66 67 68 69 70 71 72 73 74 75  | 
    
      # File 'backend/app/model/mixins/identifiers.rb', line 66 def validate return super if self.class.table_name === :resource and self.identifier.nil? (0...4).each do |i| val = instance_variable_get("@id_#{i}") errors.add("id_#{i}".intern, "Max length is #{MAX_LENGTH} characters") if val && val.length > MAX_LENGTH end super end  |