Class: Vapid::Builder

Inherits:
Object show all
Defined in:
lib/vapid/builder.rb

Overview

Scrapes templates, and builds data models

Class Method Summary collapse

Class Method Details

.build!(template_files, &block) ⇒ Object



5
6
7
8
9
# File 'lib/vapid/builder.rb', line 5

def build!(template_files, &block)
  groups = generate_tree(template_files, &block)
  update_data_model(groups)
  remove_unused_groups(groups)
end

.generate_tree(template_files, &block) ⇒ Object



11
12
13
14
# File 'lib/vapid/builder.rb', line 11

def generate_tree(template_files, &block)
  project_tree = build_project_tree(template_files, &block)
  consolidate_into_groups(project_tree)
end

.remove_unused_groups(used_groups) ⇒ Object



24
25
26
# File 'lib/vapid/builder.rb', line 24

def remove_unused_groups(used_groups)
  Models::Group.where.not(name: used_groups.keys).destroy_all
end

.update_data_model(groups) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/vapid/builder.rb', line 16

def update_data_model(groups)
  groups.each do |name, attributes|
    group = Models::Group.named(name) || Models::Group.new(name: name)
    group.update_attributes attributes
    prune_orphaned_content(group)
  end
end