Class: Adocsite::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/adocsite/site.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(engine) ⇒ Site

Returns a new instance of Site.



4
5
6
7
8
9
10
11
12
13
# File 'lib/adocsite/site.rb', line 4

def initialize(engine)
  # Internal
  @engine = engine

  # files to copy
  @styles = Array.new
  @scripts = Array.new
  @images = Array.new
  @files = Array.new
end

Instance Attribute Details

#filesObject (readonly)

Returns the value of attribute files.



3
4
5
# File 'lib/adocsite/site.rb', line 3

def files
  @files
end

#imagesObject (readonly)

Returns the value of attribute images.



3
4
5
# File 'lib/adocsite/site.rb', line 3

def images
  @images
end

#scriptsObject (readonly)

Returns the value of attribute scripts.



3
4
5
# File 'lib/adocsite/site.rb', line 3

def scripts
  @scripts
end

#stylesObject (readonly)

Returns the value of attribute styles.



3
4
5
# File 'lib/adocsite/site.rb', line 3

def styles
  @styles
end

Instance Method Details

#copy_contentObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/adocsite/site.rb', line 40

def copy_content
  root_output_folder = Adocsite::config[:OUTPUT_FOLDER]
  styles_folder = File.join(root_output_folder, Adocsite::config[:STYLES_FOLDER])
  images_folder = File.join(root_output_folder, Adocsite::config[:IMAGES_FOLDER])
  scripts_folder = File.join(root_output_folder, Adocsite::config[:SCRIPTS_FOLDER])
  files_folder = File.join(root_output_folder)

  # theme resources folder has to be copied verbatim, so we first do that
  copy_resources(root_output_folder)

  Dir.mkdir(files_folder) unless Dir.exists?(files_folder)
  Dir.mkdir(styles_folder) unless Dir.exists?(styles_folder)
  Dir.mkdir(scripts_folder) unless Dir.exists?(scripts_folder)
  Dir.mkdir(images_folder) unless Dir.exists?(images_folder)

  FileUtils.copy(@engine.content_loader.styles, styles_folder)
  FileUtils.copy(@engine.content_loader.scripts, scripts_folder)
  FileUtils.copy(@engine.content_loader.images, images_folder)
  FileUtils.copy(@engine.content_loader.files, files_folder)

  FileUtils.copy(@engine.templates.styles, styles_folder)
  FileUtils.copy(@engine.templates.scripts, scripts_folder)
  FileUtils.copy(@engine.templates.images, images_folder)
  FileUtils.copy(@engine.templates.files, files_folder)
end

#copy_content_preserve_path(src, dst) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/adocsite/site.rb', line 27

def copy_content_preserve_path(src, dst)
  src_folder = Pathname.new(src).realpath.dirname
  # quick and ugly
  source_folder = src_folder.to_s.partition("resources").last
  destination_folder = File.join(dst, source_folder)
  FileUtils.mkdir_p(destination_folder)
  FileUtils.cp(src, destination_folder)
end

#copy_resources(root_output_folder) ⇒ Object



36
37
38
# File 'lib/adocsite/site.rb', line 36

def copy_resources(root_output_folder)
  @engine.templates.resources.each {|src| copy_content_preserve_path(src, root_output_folder)}
end

#prepare_outputObject



15
16
17
18
19
# File 'lib/adocsite/site.rb', line 15

def prepare_output
  output_folder = File.join(Adocsite::config[:OUTPUT_FOLDER])
  Dir.mkdir(output_folder) unless Dir.exists?(output_folder)
  FileUtils.rm_rf(Dir.glob(File.join(output_folder,'*')))
end

#write(content, name) ⇒ Object



21
22
23
24
25
# File 'lib/adocsite/site.rb', line 21

def write(content, name)
  f = File.new(File.join(Adocsite::config[:OUTPUT_FOLDER], name), "w")
  f.write(content)
  f.close()
end