Class: Exo::Config

Inherits:
Object
  • Object
show all
Defined in:
app/services/exo/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_slug, options) ⇒ Config

Returns a new instance of Config.



4
5
6
7
# File 'app/services/exo/config.rb', line 4

def initialize config_slug, options
  self.config_slug = config_slug
  self.options = options
end

Instance Attribute Details

#config_slugObject

Returns the value of attribute config_slug.



3
4
5
# File 'app/services/exo/config.rb', line 3

def config_slug
  @config_slug
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'app/services/exo/config.rb', line 3

def options
  @options
end

Instance Method Details

#install!Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/services/exo/config.rb', line 9

def install!
  raise 'Target missing! specify it this way "seed[site_name]"' if config_slug.blank?

  _site_conf = load_site_config config_slug
  _site = up_site config_slug, _site_conf
  _site.save!

  if path = ViewGenerator.ensure_site_layout(_site)
    puts " + #{path}".colorize(:green)
  end

  (_site_conf[:resources] || []).each do |_slug, _conf|
    r = up_resource _slug, _site, _conf
    r = r.save!
  end

  (_site_conf[:routes] || []).each do |_slug, _conf|
    r = up_route _slug, _site, _conf
    r.save!
    if r.class == Exo::Route::Page
      if path = ViewGenerator.ensure_page_view(r)
        puts " + #{path}".colorize(:green) 
      end
    end
    #FIXME: r.clean_item_fields
  end
end