Class: Infold::Build

Inherits:
Object
  • Object
show all
Defined in:
app/models/infold/build.rb

Instance Method Summary collapse

Instance Method Details

#generate_appsObject



20
21
22
23
24
25
26
# File 'app/models/infold/build.rb', line 20

def generate_apps
  Rails::Generators.invoke('infold:app', ['-1'])
  sleep 0.1
  App.all.each do |app|
    Rails::Generators.invoke('infold:app', [app.id.to_s], destination_root: Rails.root)
  end
end

#generate_modelsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/infold/build.rb', line 6

def generate_models
  Rails::Generators.invoke('infold:model', ['-1'])
  sleep 0.1
  direct_model_ids = App.all.pluck(:model_id)
  association_model_ids = Model.where(id: direct_model_ids).includes(:child_model_associations, :parent_model_associations).
    map{|m| [ m.child_model_associations.pluck(:model_id), m.parent_model_associations.pluck(:parent_model_id)] }.flatten.uniq
  # association先の更にassociationまでを対象にする
  over_association_model_ids = Model.where(id: association_model_ids).includes(:child_model_associations, :parent_model_associations).
    map{|m| [ m.child_model_associations.pluck(:model_id), m.parent_model_associations.pluck(:parent_model_id)] }.flatten.uniq
  Model.where(id: (direct_model_ids + association_model_ids + over_association_model_ids).uniq).each do |model|
    Rails::Generators.invoke('infold:model', [model.id.to_s], destination_root: Rails.root)
  end
end

#generate_projectObject



28
29
30
31
32
# File 'app/models/infold/build.rb', line 28

def generate_project
  Rails::Generators.invoke('infold:project', ['-1'])
  sleep 0.1
  Rails::Generators.invoke('infold:project', ['1'], destination_root: Rails.root)
end