Class: WaxTasks::Site

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = nil) ⇒ Site

Returns a new instance of Site.



11
12
13
# File 'lib/wax_tasks/site.rb', line 11

def initialize(config = nil)
  @config = WaxTasks::Config.new(config || WaxTasks.config_from_file)
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



7
8
9
# File 'lib/wax_tasks/site.rb', line 7

def config
  @config
end

Instance Method Details

#clobber(name) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/wax_tasks/site.rb', line 23

def clobber(name)
  collection = @config.find_collection name
  raise WaxTasks::Error::InvalidCollection if collection.nil?

  collection.clobber_pages
  collection.clobber_derivatives

  @config.self.fetch('search', {}).each do |_name, search|
    next unless search.key? 'index'
    index = Utils.safe_join @config.source, search['index']
    next unless File.exist? index
    puts Rainbow("Removing search index #{index}").cyan
    FileUtils.rm index
  end

  puts Rainbow("\nDone ✔").green
end

#collectionsObject



17
18
19
# File 'lib/wax_tasks/site.rb', line 17

def collections
  @config.collections
end

#generate_derivatives(name, type) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/wax_tasks/site.rb', line 70

def generate_derivatives(name, type)
  collection = @config.find_collection name
  raise WaxTasks::Error::InvalidCollection if collection.nil?
  raise WaxTasks::Error::InvalidConfig unless %w[iiif simple].include? type

  records = case type
            when 'iiif'
              collection.write_iiif_derivatives
            when 'simple'
              collection.write_simple_derivatives
            end

  collection. records
  puts Rainbow("\nDone ✔").green
end

#generate_pages(name) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/wax_tasks/site.rb', line 43

def generate_pages(name)
  result     = 0
  collection = @config.find_collection name
  raise WaxTasks::Error::InvalidCollection if collection.nil?

  collection..each do |record|
    result += record.write_to_page(collection.page_source)
  end

  puts Rainbow("#{result} pages were generated to #{collection.page_source}.").cyan
  puts Rainbow("\nDone ✔").green
end

#generate_static_search(name) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/wax_tasks/site.rb', line 58

def generate_static_search(name)
  search_config = @config.search name
  index = WaxTasks::Index.new(search_config)

  puts Rainbow("Generating #{name} search index to #{index.path}").cyan
  index.write_to @config.source

  puts Rainbow("\nDone ✔").green
end