Class: Banis::ModDev::DevProject

Inherits:
Object
  • Object
show all
Includes:
Entagging, FsAttachable, ModelFact::ModelHelper, StateStep, TR::CondUtils
Defined in:
lib/banis/mod_dev/dev_project.rb

Defined Under Namespace

Modules: AfterSaveHelper

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ DevProject

Returns a new instance of DevProject.



173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/banis/mod_dev/dev_project.rb', line 173

def initialize(opts = {})

  opts = {} if opts.nil?
  if not opts[:instance].nil?
    _mdl = opts[:instance]
    _mdl.did = SecureRandom.uuid if is_empty?(_mdl.did)
    set_model_instance(_mdl)
  else
    _mdl = ModelFact.new_instance(_model_key)
    _mdl.did = SecureRandom.uuid
    _mdl.send("name=", opts[:name]) if not_empty?(opts[:name])
    set_model_instance(_mdl)
    init_default_status
  end

  self.extend(AfterSaveHelper) if not _mdl.new_record?

  @_logger = opts[:logger] if not opts[:logger].nil?

  ensure_attributes_defined

  @subProjects = []

  self.class.init_model
end

Class Method Details

.init_modelObject



157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/banis/mod_dev/dev_project.rb', line 157

def self.init_model
  self.record_translator do |val|
    case val
    when Array, ActiveRecord::Relation
      val.collect { |e| DevProject.new(instance: e) }
    else
      if not val.nil?
        DevProject.new(instance: val)
      else
        val
      end
    end
  end
end

Instance Method Details

#saveObject



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/banis/mod_dev/dev_project.rb', line 199

def save

  recType = :existing
  if model.new_record?
    recType = :new
    raise DuplicatedRecordDetected, "Name '#{self.name}' already taken" if self.class.find_record(name: self.name).length > 0
  else
    raise DuplicatedRecordDetected, "Name '#{self.name}' already taken" if self.class.find_record(name: self.name).length > 1
  end

  res = model.save

  if res and recType == :existing
    save_develements
    save_repos
  end
  
  res

end